==== 目錄 ====
跟我學: 使用 fireasy 搭建 asp.net core 專案系列之一 —— 開篇
跟我學: 使用 fireasy 搭建 asp.net core 專案系列之二 —— 準備
上篇對 fireasy 大致作了介紹,接下來的幾天裡,fireasy 將帶領大家一起通過例項來學習如何搭建一個小型的專案,以及實現一些系統管理的功能,在此過程中,會對所使用的技術作一些剖析和分享,希望大家能夠喜歡。
一、設計專案結構
這裡主要講解的是 fireasy 的使用方法,因此對於專案的分層,沒有那麼多講究,因此使用了精簡至上的原則,採用最簡單的方案,資料服務層即業務層。
專案名稱 | 角色和用途 |
Fireasy.Demo.Web | asp.net core web 專案 |
Firesay.Demo.Models | 資料實體模型,定義ORM的實體型別 |
Fireasy.Demo.Services | 資料服務層,提供資料互動 |
Fireasy.Demo.Infrastructure | 基礎設施層 |
Fireasy.Demo.Helpers | 輔助類庫 |
二、建立專案
按照上表中給定的專案,在解決方案裡新增各專案,這裡除 Fireasy.Demo.Web 之外的專案其他,可以建成 .net standard,也可以建成 .net core,建成 ..net standard 的好處是,不僅僅 .net core 可以用,也可以使 .net framework 4.5 及以下的框架所使用,所以,如果你還有 asp.net mvc 5 的專案,可以考慮建成 .net standard 類庫。
按照下圖為專案新增 nuget package,同時建立專案之間的引用關係。注,.net core 專案有個好處,互有依賴的包可以只需新增最末的那個,它們之間就會建立依賴關係了,比如 Web 需要新增 Fireasy.Web.Mvc 和 Fireasy.Web.EasyUI 兩個包,但是由於 Fireasy.Web.EasyUI 依賴於 Fireasy.Web.Mvc 因此,只需新增後者即可。再比如 Services,它是需要引用 Fireasy.Data.Entity 的,但是它所引用的 Models 已經安裝了 Fireasy.Data.Entity 包,因此,它就不需要再安裝包了。
三、資料庫設計
一個系統的許可權管理後臺是必不可少的,因此我就拿這個例子來說說,後臺許可權管理功能包括模組(選單)管理、機構管理、使用者管理、角色管理、許可權管理等等。資料表的設計圖如下:
各表的含義如下:
表名稱 | 含義 |
sys_org | 機構表 |
sys_user | 使用者表 |
sys_module | 模組(選單)表 |
sys_operate | 操作(工具欄選單)表 |
sys_role | 角色表 |
sys_module_permission | 模組許可權表,即角色具有的模組許可權 |
sys_operate_permission | 操作許可權表,即角色具有的操作許可權 |
sys_org_permission | 資料許可權表,即角色具有哪些機構的資料檢視許可權 |
sys_user_role | 使用者角色對應表,即使用者擁有哪些角色 |
sys_dict_type | 字典類別表 |
sys_dict_item | 字典項表 |
sys_log | 日誌表 |
四、生成程式碼
設計好資料庫後,使用程式碼生成工具生成實體類的程式碼(這些先說說 DBFirst 模式,後面會介紹 CodeFirlst 模式),這裡推薦使用 CodeBuilder 來生成,它可以生成實體類,以及 DbContext ,甚至是 mvc 的 View 和 Controller。
CodeBuilder 的下載地址為 http://www.fireasy.cn/soft/codebuilder/CodeBuilder2setup.exe。
開啟 CodeBuilder,配置一個資料來源(你的資料來源可以是 SqlServer、MySql,也可以是 PowerDesign 的設計文件),然後連線資料來源選擇要生成的表。在生成程式碼之前,要設定以下幾個引數:
NameMode 是命名規則,一般是使用 Pascal,剛剛資料模型你也看到了,所有表和欄位的名稱都是小寫加下劃線的,我希望生成的程式碼還是遵循 Pascal 命名規範,因此只需要將這個 NameMode 設為 Pascal 就行了,如果要沿用原來的命名,則改為 Inherit。
Namespace 是專案的名稱空間,是前面一級的,這裡設定為 Fireasy.Demo,它會以此為字首,生成 Models 專案中實體類檔案。
ProjectName 和 Author 是在備註中生成專案的名稱以及作者。
TableRegex 是對錶名的正則替換,如果表名稱中有字首,如 TB_ ,我們可以把這些字首去掉,比如現在,所有表都是以 sys 開頭,那麼我們可以設 TableRegex 為 sys_ 。
接下來,從模板裡選擇 T4 Template 中的 Fireasy for C# 模板,最後點生成即可。
這個模板會生成 Models 下的所有實體類檔案,以及 DbContext,還有 MVC 下的 View 和 Controller,當然後兩者只提供一個參考,具體的業務程式碼還是自己動手去實現。你可以自己去寫 T4 模板來滿足你的生成需要。
生成的檔案如下:
將生成的 Models 裡的所有檔案拷貝到 Fireasy.Demo.Models 專案下,將生成的 Data 目錄下的 DbContext 拷貝到 Fireasy.Demo.Services 專案下。MVC 的 View 和 Controller 就不使用了,僅作參考。
好了,準備工作都完成了,接下來就要開始一步一步地來實現業務功能。敬請期待下一篇。