跟我學: 使用 fireasy 搭建 asp.net core 項目系列之二 —— 準備

==== 目錄 ====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

相關文章
相關標籤/搜索