是否有任何标准方法可以在ASP.NET MVC解决方案中定义项目?

时间:2013-03-07 09:34:16

标签: asp.net-mvc entity-framework

我应该如何逻辑定义ASP.NET MVC解决方案?我必须分成多少项目才能解决问题?对此有标准的方法吗?例如,模型类库,MVC Web应用程序(包括控制器和视图),单元测试项目,存储库项目等......可以提出哪些不同类型的项目?

2 个答案:

答案 0 :(得分:1)

答案真的取决于。取决于您的项目规模。你可以在一个项目(主MVC)中拥有它,你可以进一步分割它。这个项目的标准形式是这样的:

project.WEB
project.Common (here belongs common functionality between projects, so helpers, utilities, even some extension methods belong there)
project.Model (Data entities)
project.BL //(Business Logic)
project.DAL //(Data Access Layer or Persistence)
project.Tests

*请注意“项目”是您的命名空间根目录。如何处理名称空间命名,您可以在那里检查它:namespace naming conventions

你可以进一步分裂它。但是,我建议你不要夸大其进一步分裂。当你必须这样做时,你会知道(一个项目增长太多,有逻辑分离......)。您尝试遵循原则YAGNI

还有一件事。如果你想“按书”出现,请查看DDD - Domain Driven Desing:http://msdn.microsoft.com/en-us/magazine/dd419654.aspx

答案 1 :(得分:0)

这是一个非常广泛的问题,但我将举例说明我在之前的项目中所做的工作。首先,它将取决于整体应用程序的复杂性和开发人员的个人偏好。一个简单的应用程序可以很好地适应单个MVC 4应用程序。

Web Project - for the views using MVC4
Application - for business logic)
Data - for repositories and webservice methods)
Domain - for the objects used in the app
Utilities - for common functionality that needs to be used in more than one project

上面的例子很好地使我能够将所有关注点分开,使其更易于维护。