以下是我目前的项目结构:
MyProject.Domain(Class Libary)
MyProject.WebUI(MVC5) 引用MyProject.Domain并使用Ninject进行依赖注入。在CustomersController.cs中,我能够访问EFCustomerRepository核心数据库函数,例如SelectAll()
我的问题/疑虑解释 考虑到这种结构,我正在讨论是否需要业务逻辑类库。如果我要添加一个,我需要引用MyProject.Domain并将Ninject安装到BLL以访问域类型中的存储库函数,就像我目前在我的CustomersController中所做的那样。我也假设然后WebUI需要引用BLL,Ninject也会像现在一样安装到MyProject.WebUI。
我会离开这个: WebUI(Ninject) - >域
对此: WebUI(Ninject) - > BLL(Ninject) - >域
这有意义吗?另外,如果我不包括BLL类库,我会在WebUI项目中为所有业务逻辑创建类似Services文件夹的内容吗?
任何建议都会很棒。我非常接近理解用于MVC5的良好项目结构,但是想要一点澄清。
我遇到的另一个小问题是:当使用内置的MVC5身份验证时,我应该只使用自己的ApplicationDbConext,然后在我的域中为我的所有实体创建另一个EFDbConext?只是想知道是否值得以某种方式合并它们,所以我不必拥有2套迁移。