==== 目錄 ====html
跟我學: 使用 fireasy 搭建 asp.net core 項目系列之一 —— 開篇git
跟我學: 使用 fireasy 搭建 asp.net core 項目系列之二 —— 準備github
跟我學: 使用 fireasy 搭建 asp.net core 項目系列之三 —— 配置web
上篇對 fireasy 大體做了介紹,接下來的幾天裏,fireasy 將帶領你們一塊兒經過實例來學習如何搭建一個小型的項目,以及實現一些系統管理的功能,在此過程當中,會對所使用的技術做一些剖析和分享,但願你們可以喜歡。數據庫
1、設計項目結構mvc
這裏主要講解的是 fireasy 的使用方法,所以對於項目的分層,沒有那麼多講究,所以使用了精簡至上的原則,採用最簡單的方案,數據服務層即業務層。框架
項目名稱 | 角色和用途 |
Fireasy.Zero.Web | asp.net core web 項目 |
Firesay.Zero.Models | 數據實體模型,定義ORM的實體類型 |
Fireasy.Zero.Services | 數據服務層,提供數據交互 |
Fireasy.Zero.Infrastructure | 基礎設施層 |
Fireasy.Zero.Helpers | 輔助類庫 |
2、建立項目asp.net
按照上表中給定的項目,在解決方案裏添加各項目,這裏除 Fireasy.Zero.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 包,所以,它就不須要再安裝包了。工具
3、數據庫設計
一個系統的權限管理後臺是必不可少的,所以我就拿這個例子來講說,後臺權限管理功能包括模塊(菜單)管理、機構管理、用戶管理、角色管理、權限管理等等。數據表的設計圖以下:
各表的含義以下:
表名稱 | 含義 |
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 | 日誌表 |
4、生成代碼
設計好數據庫後,使用代碼生成工具生成實體類的代碼(這些先說說 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.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 就不使用了,僅做參考。
好了,準備工做都完成了,接下來就要開始一步一步地來實現業務功能。敬請期待下一篇。
==================================相關資源==================================
fireasy源碼: https://github.com/faib920/fireasy2,
zero源碼: https://github.com/faib920/zero
代碼生成器: http://www.fireasy.cn/soft/codebuilder/CodeBuilder2setup.exe