ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#-使用ASP.NET 5(MVC 6)的N层体系结构

2019-10-26 22:06:00  阅读:194  来源: 互联网

标签:asp-net-core asp-net-core-mvc n-tier-architecture c asp-net-mvc


我正在阅读有关ASP.NET Core的功能,因此决定将当前的解决方案(MVC 5)转移到MVC 6,但是对于集成DI感到有些困惑.
目前我有这个架构

Current architecture

CemaManager(代表层)具有对Helper,Resource,ViewModel和BLL的引用.
Bll引用了ViewModel,Database和DLL.
DLL引用了数据库.

使用DI和存储库模式的典型N层体系结构.

当我调查MVC6时,有DI初始化的startup.cs.
那意味着如果我要分离BLL和DAL,它们将全部引用MVC6,并且所有逻辑都将通过该层?到那时,它将变得沉重,难以维护和扩展,还是我错了?

有什么方法可以将startup.cs或DI方法导出到另一层?
也许有人知道要阅读的文章或示例?

解决方法:

就个人而言,我会更改整体结构,但我猜测全面的设计审查并不是您真正想要的.关于您的实际问题,不,您的其他层不需要引用MVC.

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

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

您还可以使用间接路由,并在每层中添加一个类,该类引用您的IoC容器并处理其自己的注册.在Autofac中,这是使用modules完成的,但是也存在使用其他IoC容器完成相同任务的等效方法.

标签:asp-net-core,asp-net-core-mvc,n-tier-architecture,c,asp-net-mvc
来源: https://codeday.me/bug/20191026/1939720.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有