【问题标题】:ASP.NET MVC Developing a Layered ArchitectureASP.NET MVC 开发分层架构
【发布时间】:2015-05-16 21:43:26
【问题描述】:

我是 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,而另外两个是类库。
好吧,从技术上讲,我知道这个架构是如何工作的,但我想知道如何从头开始制作它,我的意思是,哪些是自动生成的,哪些是单独编写的等等。我还想了解 ViewModel 是如何工作的,因为在 Project.Web 中有一个 ViewModels 文件夹,它代表视图中使用的模型集合。

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



注意:我知道这不是一个适合在这里发布的问题,但我很绝望,并寻求有经验的人的帮助,为我指明某个地方。

【问题讨论】:

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


    【解决方案1】:

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

    • 1- Project.web:网站将自己投射到您想要的位置 将您的所有视图、css、脚本……都放在“理想的实现”中 的 MVC”(取决于你在和谁说话)网站项目 根本不应该有逻辑,唯一的责任应该是 将信息呈现给用户。所以它基本上是 V 的一部分 MVC。
    • 2- Project.DataAccess:这就是 M ;该项目应 管理项目的所有数据部分,其中包括:DAL, ORM、存储库、UoW...
    • 3- Project.Business C 部分,所有业务逻辑都在其中 正在发生,基本上你所有的班级都在努力 工作,我认为它是 CPU。

    您提到这 2 个项目是类库项目,而 Web 是一个网站项目,这是我用来组织我的项目/解决方案的架构。

    请注意,这是一种用于组织项目的架构设计,绝不是唯一的或最好的。但是对于您可能遵循的任何设计,请尝试尊重 MVC 模式的 SoC(关注点分离)目标。

    【讨论】:

    • 是的,这正是这个项目/解决方案所做的,我被告知重写它以理解它,好吧,我理解它是如何工作的,但不知道如何制作它。你能给我推荐一些阅读材料,让我了解如何按照这种做法从头开始构建网络应用程序。
    • 我头顶上什么都没有。根据我自己的经验,您应该始终牢记 SoC 方面,项目的组织将遵循这一点。 Scott Allen 的 Asp.net 视频是很好的参考
    • @super-user 上面的答案还不错。我建议添加另一个名为 Common 的类库,在这个项目中,您可以创建所有 Enum、数据传输对象、ViewModel、Helper 等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2014-11-22
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多