==== 目錄 ====

  跟我學: 使用 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 的檢視的控制器。

    CodeBuilder 的下載地址為  http://www.fireasy.cn/soft/codebuilder/CodeBuilder2setup.exe。

    開啟 CodeBuilder,配置一個數據源(你的資料來源可以是 SqlServer、MySql,也可以是 PowerDesign 的設計文件),然後連線資料來源選擇要生成的表。在生成程式碼之前,要設定以下幾個引數:

  

    NameMode 是命名規則,一般是使用 Pascal,剛剛資料模型你也看到了,所有表和欄位的名稱都是小寫加下劃線的,我希望生成的程式碼還是遵循 Pascal 命名規範,因此只需要將這個 NameMode 設為 Pascal 就行了,如果要沿用原來的命名,則改為 Inherit。

    Namespace 是專案的名稱空間,是前面一級的,這裡設定為 Fireasy.Zero ,它會以此為字首,生成 Models 專案中實體類檔案。

    ProjectName 和 Author 是在備註中生成專案的名稱以及作者。

    TableRegex 是對錶名的正則替換,如果表名稱中有字首,如 TB_ ,我們可以把這些字首去掉,比如現在,所有表都是以 sys 開頭,那麼我們可以設 TableRegex 為 sys_ 。

 

    接下來,從模板裡選擇 T4 Template 中的 Fireasy for C# 模板,最後點生成即可。

    這個模板會生成 Models 下的所有實體類檔案,以及 DbContext,還有 MVC 下的 View 和 Controller,當然後兩者只提供一個參考,具體的業務程式碼還是自己動手去實現。你可以自己去寫 T4 模板來滿足你的生成需要。

    生成的檔案如下:

 

    將生成的 Models 裡的所有檔案拷貝到 Fireasy.Zero.Models 專案下,將生成的 Data 目錄下的 DbContext 拷貝到 Fireasy.Zero.Services 專案下。MVC 的 View 和 Controller 就不使用了,僅作參考。

 

    好了,準備工作都完成了,接下來就要開始一步一步地來實現業務功能。敬請期待下一