我已经使用 ASP.NET MVC 几个月了,但我仍然对我的项目解决方案的布局不满意。我正在尝试构建一个尽可能便携和可重复使用的中型网站 CMS,但它的设计存在一些明显的问题。考虑到关注点分离,我正在寻找一些关于我应该如何构建我的解决方案的建议。我在这里发现了一个类似的问题,但它并没有真正针对我面临的一些问题。
现在这就是我的解决方案的布局方式:
+Project.Controllers - 所有控制器类 P+项目.控制器.测试 +Project.Core - 实用类,包括重复性任务和一些配置处理程序(这个项目需要更好地充实) +Project.Core.Tests +Project.Models - 模型类、实体框架上下文和存储库类 +项目.模型.测试 +Project.Web - 所有视图和内容
我目前缺少的一件主要事情是放置我的业务逻辑的地方,我觉得我一直错误地将业务逻辑放置在我的存储库类中,并将其混合到控制器操作中。显然,我非常清楚这个问题,我只是不确定我应该将我的业务逻辑放在那个解决方案布局中的哪个位置。我的解决方案结构是否需要更改,或者我可以安全地将业务逻辑保留在我的模型项目中?此外,我真的不喜欢我的 EF 上下文位于模型类中,但我不知道如何将数据层代码与模型中所需的实体类隔离开来。
其他人如何布置他们的生产 ASP.NET MVC 解决方案?