【发布时间】:2016-11-22 10:50:41
【问题描述】:
我正在阅读有关 ASP.NET Core 功能的信息,并决定将我当前的解决方案 (MVC 5) 转移到 MVC 6,但我对集成 DI 有点困惑。 目前我有这个架构
CemaManager(代表层)引用了 Helpers、Resource、ViewModel 和 BLL。 Bll 引用了 ViewModel、Database 和 DLL。 Dll 引用了数据库。
使用 DI 和存储库模式的典型 N 层架构。
当我调查 MVC6 时,有 DI 初始化的 startup.cs。 这意味着如果我想将 BLL 和 DAL 分开,它们将全部引用 MVC6,并且所有逻辑都将通过该层?到时候它会很重,很难维护和扩展,还是我错了?
有没有办法将startup.cs或DI方法导出到另一层? 也许有人知道任何要阅读的文章或示例?
【问题讨论】:
-
为什么他们必须参考与 MVC6 相关的任何内容?您只需像以前一样实例化事物,框架将处理其余部分。
-
使用集成的 MVC DI 会很好。我可以像在早期解决方案中使用的那样使用 Unity DI。但我的目标是尝试使用 MVC DI 达到相同的结果。 “为什么他们必须参考有关 MVC6 的任何内容?”因为在另一种情况下,MVC DI 既看不到 BLL 也看不到 DAL 类。
-
你不必在业务层或数据层引用 mvc,ViewModel 是 MVC 的概念,但它与业务层中的模型不同,通常你会在控制器中检索业务层对象和使用它来填充 ViewModel。
-
另一个关于如何将数据访问代码保留在 UI/mvc 代码之外的类似问题 stackoverflow.com/questions/38356990/…
标签: c# asp.net-mvc asp.net-core asp.net-core-mvc n-tier-architecture