ASP.NET Core模块化前后端分离快速开发框架介绍
源碼地址
GitHub:https://github.com/iamoldli/NetModular
演示地址
地址:http://118.24.75.170:6220/
賬戶:admin
密碼:admin
前端框架演示地址(臨時)
地址:http://progqx5cu.bkt.clouddn.com/skins/index.html#/
賬戶:admin
密碼:admin
我想要的模塊化
1、采用前后端分離。
2、將業務拆分成獨立的模塊,后端代碼打包并發布到公司內部的NuGet包管理平臺,前端代碼打包發布到公司內部的NPM包管理平臺。
3、項目中用到了哪個模塊,直接通過包的形式安裝對應的包。
4、開發人員只需要關心自己負責的模塊,不需要知道依賴的業務模塊代碼邏輯。
項目架構圖
塊化原理
實現模塊化首先要解決的就是如何將多個模塊集成到一個系統里面,因為我們用的是WebApi,也就是說要解決怎么把每個模塊的控制器注冊到系統中。好在ASP.NET Core提供了對應的功能,可以讓我們很方便的實現這個效果,那就是ASP.NET Core 中的應用程序部件,它能夠讓我們動態的從一個程序集中發現并加載我們需要的控制器
var assembly = typeof(Startup).GetTypeInfo().Assembly;
services.AddMvc()
.AddApplicationPart(assembly);
var assembly = typeof(Startup).GetTypeInfo().Assembly;
var part = new AssemblyPart(assembly);
services.AddMvc()
.ConfigureApplicationPartManager(apm => apm.ApplicationParts.Add(part));
需要注意的是,在系統啟動的時候,ASP.NET Core默認會自動從入口程序集開始,遍歷所有的依賴程序集并添加系統中。
var entryAssembly = Assembly.Load(new AssemblyName(entryAssemblyName));var assembliesProvider = new ApplicationAssembliesProvider();
var applicationAssemblies = assembliesProvider.ResolveAssemblies(entryAssembly);
foreach (var assembly in applicationAssemblies)
{
var partFactory = ApplicationPartFactory.GetApplicationPartFactory(assembly);
foreach (var part in partFactory.GetApplicationParts(assembly))
{
ApplicationParts.Add(part);
}
}
因為所有模塊都是通過包安裝到項目中的,所有模塊都是有依賴的,也就不需要我們手動添加了。
使用代碼生成器快速開發
基本上每一個框架都會提供代碼生成器的功能,NetModular也不例外,與別的代碼生成器不同,NetModular的代碼生成器是作為一個模塊存在的它可以集成到任何項目當中。
大部分代碼生成器都是根據先創建數據庫,在根據數據庫來生成代碼,而NetModular的代碼生成器則是在線創建項目、實體、屬性等,然后根據這些數據生成代碼以及數據庫文件。
具體的不在演示,大家有興趣的話可以訪問上面的Demo地址自己體驗一下~
結尾
這邊文章只是簡單做個介紹,后續希望自己能夠寫一個系列的文章來詳細的講解基礎框架的各個模塊、前端框架模塊以及已有的業務模塊。
原文地址:https://www.cnblogs.com/oldli/p/10895001.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的ASP.NET Core模块化前后端分离快速开发框架介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Try.NET创建可交互.NET文档
- 下一篇: 使用命令行导出 SQL Server 数