我已经和ASP.NET MVC一起工作了几个月,但是我仍然对我的项目解决方案的布局不满意。我正在尝试构建一个中型网站CMS,该CMS尽可能便携和可重用,但是设计上存在一些明显的问题。我正在寻求关于如何考虑关注点分离来构造我的解决方案结构的建议。我发现这里有一个类似的问题,但它并没有针对我面临的一些问题。
目前我的解决方案布局如下:
+Project.Controllers - 所有控制器类 P+roject.Controllers.Tests
+Project.Core - 实用程序类,包括重复任务和一些配置处理程序(这个项目需要更好地完善) +Project.Core.Tests
+Project.Models - 模型类,Entity Framework上下文和存储库类 +Project.Models.Tests
+Project.Web - 所有视图和内容
我目前缺少的一个重要部分是放置业务逻辑的地方,我感觉将业务逻辑错误地放在了我的存储库类中,并将其混杂在控制器操作中。显然,我非常清楚这个问题,但是我不确定应该在哪里放置我的业务逻辑。我的解决方案结构需要改变吗?还是我可以安全地将业务逻辑放在我的模型项目中?此外,我真的不喜欢我的EF上下文在模型类中,但我不知道如何隔离数据层代码以及我的模型中需要的实体类。
其他人如何布置他们的生产ASP.NET MVC解决方案呢?