繁体   English   中英

使用ASP.NET 5的N层架构(MVC 6)

[英]N-Tier Architecture using ASP.NET 5 ( MVC 6 )

我正在阅读有关ASP.NET核心功能的内容,我决定将当前的解决方案(MVC 5)转移到MVC 6,但我对集成DI有点困惑。 目前我有这种架构

目前的架构

CemaManager(代表层)引用了Helpers,Resource,ViewModel和BLL。 Bll引用了ViewModel,Database和DLL。 Dll引用了Database。

使用DI和存储库模式的典型N层架构。

当我调查MVC6时,有启动,其中DI初始化。 这意味着如果我想分离BLL和DAL,它们将全部引用MVC6并且所有逻辑都将通过该层? 到时候它会变得沉重,难以维持和扩展,还是我错了?

有没有办法将startup.cs或DI方法导出到另一层? 也许有人知道要阅读的文章或例子?

就个人而言,我会对整体结构有一些改变,但我猜测完整的设计评审并不是你所要求的。 在您的实际问题上,不 - 您的其他图层不需要引用MVC。

对于大多数应用程序,需要在表示层中配置和初始化IoC。 最终,您的表示层需要一个参考链(直接或间接引用)到您想要注册的所有内容,但这一直都是正确的。

您已经引用了Helpers,Resource,ViewModel和BLL,因此您可以轻松地在这些层中注册接口的实现。 您还可以添加对DLL的引用以注册该层的实现。

您还可以使用间接路由并在每个层中添加一个类,该类引用您的IoC容器并处理其自己的注册。 在Autofac中,这是使用模块完成的,但是使用其他IoC容器有相同的方法来完成相同的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM