本人用的是vs2019,目前好像最高是预览版,建议大家就当前版本来说,正式开发工作还是要慎用,稳定性比较差。还是老套路,我可能只会抽取框架里面1-2个重要的模块实现加以详细介绍。顾及可能有些朋友接触ASPNETCORE时间不长,同时我也会针对框架里面使用的某些基础技术点做详细介绍,比如DI容器、路由、中间件、视图View等。这篇博客主要是介绍模块化框架的具体实现,思路方面可以参考我的上一篇文章。先上图解决方案目录结构
整个工程主要分三大模块,Infrastructure顾名思义就是整个项目的基础功能和实现。Modules为项目所有子模块,根据业务划分的相关模块。UI里面包含了ASPNETCOREMVC的基础扩展和布局。
可能有些朋友会问,为什么Modules目录下面的模块工程有对应的Abstractions工程对应?不要误解不是所有都是一一对应。我们在阅读NETCORE和OrchardCore源码的时候也经常会看到有对应的Abstractions工程,主要是针对基础模块更高层次的抽象。下面直接解读代码实现。 模块化实现
我们先看看框架入口,Program.cs文件的main函数,看代码