ASP.NET Core模塊化先後端分離快速開發框架介紹之一、開篇

源碼地址

GitHub:https://github.com/iamoldli/NetModularcss

演示地址

地址:https://nm.iamoldli.com
帳戶:admin
密碼:adminhtml

前端框架演示地址(臨時)

地址:http://nm.demo.iamoldli.com/index.html
帳戶:admin
密碼:admin前端

目錄

一、開篇
二、快速建立一個業務模塊
三、數據訪問模塊介紹
四、模塊化實現思路git

我想要的模塊化

一、採用先後端分離。
二、將業務拆分紅獨立的模塊,後端代碼打包併發布到公司內部的NuGet包管理平臺,前端代碼打包發佈到公司內部的NPM包管理平臺。
三、項目中用到了哪一個模塊,直接經過包的形式安裝對應的包。
四、開發人員只須要關心本身負責的模塊,不須要知道依賴的業務模塊代碼邏輯。github

項目架構圖

架構圖

模塊化原理

實現模塊化首先要解決的就是如何將多個模塊集成到一個系統裏面,由於咱們用的是WebApi,也就是說要解決怎麼把每一個模塊的控制器註冊到系統中。好在ASP.NET Core提供了對應的功能,可讓咱們很方便的實現這個效果,那就是ASP.NET Core 中的應用程序部件,它可以讓咱們動態的從一個程序集中發現並加載咱們須要的控制器數據庫

// create an assembly part from a class's assembly
var assembly = typeof(Startup).GetTypeInfo().Assembly;
services.AddMvc()
    .AddApplicationPart(assembly);

// OR
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://iamoldli.github.io/2019/05/20/net-core-mo-kuai-hua-kai-fa-kuang-jia/1-kai-pian/

相關文章
相關標籤/搜索