首页 文章

不使用实体框架的MVC应用程序的体系结构

提问于
浏览
0

我是MVC应用程序开发的新手 . 我愿意使用MVC开发一个新项目,我看了很多适合MVC应用程序的架构 . 在阅读了很多文章和博客后,我才知道可以使用存储库模式 .
基于我在开始实际项目之前的理解,我创建了一个虚拟项目结构,如下所述[不使用EDMX文件,项目中的实体框架,定义自定义DAL]

我的虚拟应用程序的名称是Repository.I以国家,州和城市关系为例来开发虚拟应用程序:

Repository_DAL_V1 类库这个库有如下类:
SQLHelper.cs:此类具有为ExecutenonQuery等查询执行的方法 .

Repository_DTO_V1 类库这个库有如下类:
CountryDTO.cs:这个类从CountryModel.cs继承为[CountryDTO:CountryModel] . 这将用于在所有应用层之间移动数据 . 如果有任何应该在业务中使用的属性,那么这将被创建在DTO中没有在模型中 .
CountryDTOMapper.cs:用于将DataTable形式的数据库中的数据映射到DTO对象的集合 .

Repository_Implementation web mvc project这是UI Layer .

Repository_IRepositories_V1 类库这个库有如下类:
ICountryRepository.cs:这是一个具有SaveCountry()等声明函数的接口 .

Repository_Models 类库这个库有如下类:
CountryModel.cs:此类具有完全适用于数据库中表的所有列的属性 .

Repository_Repositories_V1 类库这个库有如下类:
CountryRepository.cs:这是一个具有已定义函数的存储库类,如SaveCountry()等 .

Repository_ViewModel_V1 类库这个库有如下类:
CountryViewModel.cs:这将在屏幕上为Country View构建 .

以上项目参考详情:

Repository_DTO_V1引用了Repository_Models .
Repository_IRepositories_V1引用了Repository_DTO_V1,Repository_Models .
Repository_Repositories_V1引用了Repository_IRepositories_V1,Repository_DAL_V1,Repository_DTO_V1,Repository_Models .
Repository_ViewModel_V1引用了Repository_Repositories_V1,Repository_IRepositories_V1,Repository_DTO_V1,Repository_Models .

我需要你们所有人的指导,引导我朝着正确的方向前进 .

2 回答

  • 0

    我不知道为什么不使用EF会与你所做的任何其他项目有任何不同 . 如果您对使用多个图层感到舒服,那么您的结构没有任何问题 . 我不知道你的项目是什么,但你应该考虑更好的命名,比如Project name(Repository)和Implementations更好地命名为Web .

    EDIT
    我建议您将Codeity Framework 5与Code First一起使用,即如果您想使用ORM?

  • 0

    我肯定和你在一起,希望给EF一个小姐 .

    正如@ Dejan.S所说,您需要的架构取决于项目的大小 .

    我会从简单开始,也许有3个项目:

    • 一个网络项目 .

    • 控制器用于访问模型和业务逻辑的服务项目 .

    • 包含模型和数据访问权限的域项目 .

    如果你需要分开的东西(比如DAL),你仍然可以在以后再做 .

    另外,查看ServiceStack的MVC Power Pack . 你可以得到一个很棒的微型ORM,IoC,缓存,快速序列化器等等 .

相关问题