ASP.NET MVC开发分层架构

时间:2015-05-16 21:43:27

标签: asp.net-mvc asp.net-mvc-5

我是ASP.NET MVC的新手,现在我对MVC的工作原理有了基本的了解。我创建了一个简单的mvc网站,它只使用了一个利用模型 - 视图 - 控制器模式的项目。
但我想学习如何制作一个使用特定架构的mvc Web应用程序,并且很难在线查找参考资料以帮助我理解它。
我得到了一个项目,学习和重写它,但我不想一个接一个地复制每个类而不理解它是如何完成的,我打算从头开始重写它,只是使用现有项目作为指南。

我真正需要的是,如果有人能指出我从哪里开始阅读以了解该项目的架构:

ProjectSolution
 Project.Web
  //An MVC web application

 Project.DataAccess
  //An edmx file (database first)
  Contracts
    IRepository.cs
    IUnitOfWork
  Repositories
    GenericRepository.cs
  UnitOfWork

 Project.Business
  Contracts
    IService1.cs
    IService2.cs
    ....so on
  Services
   Service1.cs
   Service2.cs
   ....so on

从仅仅依靠我的个人代码阅读能力,我可以看到,从这个设置,它包含3个不同的项目,Project.Web是一个MVC webapp,而另外2个是类库。
好吧,从技术上讲,我知道这个架构是如何工作的,但我想知道如何从头开始,我的意思是哪些是自动生成的,哪些是单独编写的等等。我还想了解ViewModel的工作原理,因为在Project.Web中有一个文件夹ViewModels,它表示视图中使用的模型集合。

Gahh!我迷路了,我不知道从哪里开始阅读。 我不需要解释每个,但你可以指出我在哪里找到一个教程或类似于这个项目的东西让我知道如何构建它。请帮忙!谢谢!



注意:我知道这不是一个适当的问题要发布在这里,但我很绝望,并寻求有经验的人的帮助指出我。

1 个答案:

答案 0 :(得分:2)

从您发布的结构看起来,解决方案(一个解决方案)有三个不同的项目:

  • 1- Project.web :网站将自己投射到您自己的位置 拥有你所有的观点,css,脚本......在理想的实现中 MVC" (取决于你在说谁)网站项目 应该没有任何逻辑,它的唯一责任应该是 向用户呈现信息。所以它基本上是 V 的一部分 MVC。
  • 2- Project.DataAccess M ;该项目应该 管理项目的所有数据部分,包括:DAL, ORM,存储库,UoW ......
  • 3- Project.Business C 部分,其中包含所有业务逻辑 正在发生,基本上所有课程都在努力 工作,我认为它是CPU。

您提到2个项目是类库项目,Web是WebSite项目,这是我按照组织我的项目/解决方案的架构。

请注意,这是一个用于组织项目的架构设计,绝不是唯一或最好的项目。但是你可能会遵循任何设计,试着尊重MVC模式的SoC(Separation of Concerns)目标。