ASP.NET Core模塊化先後端分離快速開發框架介紹之二、快速建立一個業務模塊

源碼地址

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

演示地址

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

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

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

1、目錄

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

2、實現快速開發的前提條件

NetModular實現快速開發有兩個前提條件:web

一、約定優於配置的開發原則數據庫

二、代碼生成器npm

約定優於配置是如今處處可見的一種開發原則,好比ASP.NET MVC中的HttpGetHttpPost等特性限制請求方式,好比控制器都以Controller結尾,好比SpringBoot中各類註解等,都屬於約定優於配置,這種開發原則的好處在於能夠減小開發人員須要作決定的次數,使開發變得簡單、快速,只是這是對於老手來講的,對於新手則提升了學習成本。json

基本上每一個開源的框架都會有配套的代碼生成器,而代碼生成器其實就是以約定優於配置爲基礎的,只有先約定好了項目結構和開發規範,你才能實現一個代碼生成器。與其它代碼生成器不一樣,NetModular的代碼生成器不是根據數據庫來生成代碼,而是提供了一個單獨的模塊,能夠很方便的集成到任何項目當中,經過Web的形式在線配置項目、實體、屬性、模型、枚舉等內容,而後能夠一鍵生成項目代碼並下載。後端

其實,個人最終目標是但願可以有一個強大的可視化編輯頁面,能夠靈活配置前端的視圖頁面以及後端的實體信息,最後直接在線編譯並熱加載到當前項目中。後端熱加載還有點思路,可是前端由於要打包的緣由,如今還沒想好解決,之後努力~瀏覽器

3、模塊的結構

上面說了,代碼生成器是依賴與約定的,因此咱們先來看下一個模塊的項目結構

模塊的結構

上圖中的Blog目錄,就是一個模塊的示例,自己就是經過代碼生成器生成後放到項目當中的(不少人第一眼看到覺得是DDD架構的,其實不是,頂多就是個DDDLite~),先說一下每層的做用

一、Domain:領域層,包含實體、實體擴展、實體相關的枚舉、倉儲接口

實體都已Entity結尾
倉儲接口都已Repository結尾,且必須繼承IRepository<>泛型接口
實體包含擴展屬性的,須要把實體設置爲部分類,且擴展類須要以Extend.cs結尾

二、Infrastructure:基礎設施層,包含倉儲實現以及一些當前模塊特有的類,像配置項等

倉儲實現位於Repositories目錄下,不一樣數據庫放到不一樣的目錄下面
模塊特有的配置項放在Options目錄下

三、Application:應用服務層、包含全部的業務邏輯

每一個實體對應一個目錄,目錄名稱爲實體名稱+Service
每一個目錄下包含有服務接口和實現、視圖模型、對象映射配置、模型驗證配置等信息

四、Web:接口層、包含控制器、模塊初始化配置等

必須建立ModuleInitializer類,且該類必須繼承IModuleInitializer接口
必須建立ModuleController基類控制器,繼承ModuleControllerAbstract抽象類,並配置Area特性用於配置區域

五、WebHost:Web主機,包含配置文件,用於安裝所需的模塊以及啓動項目

必須建立Startup類,而且繼承StartupAbstract抽象類
ProgramMain函數中,使用WebHostCreator.Run<Startup>(args);方式啓動

六、WebHost.Electron:客戶端主機,用於啓動基於 Electron.js 的客戶端程序

以上就是NetModular框架中一個模塊的結構,有了約定,那麼接下來就演示一下如何經過代碼生成器來建立項目吧。

4、代碼生成

一、建立項目

已我的博客爲例,項目須要填名稱車和編碼

建立項目

二、添加枚舉

由於文章有多媒體信息,因此先添加一個多媒體的枚舉MediaType

添加枚舉

三、添加實體

添加文章Article、分類Category、標籤Tag三個實體

添加實體

四、配置實體屬性

以文章Article爲例

配置實體屬性

五、生成

在項目列表中,點擊生成按鈕生成代碼並下載。

六、測試

打開生成的代碼,進入Blog/data目錄,按需建立數據庫,由於模塊默認依賴Nm_Admin模塊,因此也要建立Nm_Admin的數據庫

進入Blog/src/WebHost/config目錄,打開db.json配置數據庫鏈接

回到Blog/src/WebHost目錄,代開命令行輸入如下命令啓動服務端

dotnet watch run --environment Development

進入Blog/src/UI/nm-module-blog目錄,執行如下命令來啓動前端代碼

npm install

npm update

npm run serve

最後在瀏覽器中輸入 http://localhost:6220 進行瀏覽

接口文檔地址 http://localhost:6220/swagger/index.html

若是沒有意外的話,應該能夠了~

原文首發:ASP.NET Core模塊化先後端分離快速開發框架介紹之二、快速建立一個業務模塊

相關文章
相關標籤/搜索