我应该如何逻辑定义ASP.NET MVC解决方案?我必须分成多少项目才能解决问题?对此有标准的方法吗?例如,模型类库,MVC Web应用程序(包括控制器和视图),单元测试项目,存储库项目等......可以提出哪些不同类型的项目?
答案 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
上面的例子很好地使我能够将所有关注点分开,使其更易于维护。