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


==== 目錄 ====

  跟我學: 使用 fireasy 搭建 asp.net core 項目系列之一 —— 開篇

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

  跟我學: 使用 fireasy 搭建 asp.net core 項目系列之三 —— 配置

 

    上篇對 fireasy 大致作了介紹,接下來的幾天里,fireasy 將帶領大家一起通過實例來學習如何搭建一個小型的項目,以及實現一些系統管理的功能,在此過程中,會對所使用的技術作一些剖析和分享,希望大家能夠喜歡。

 

    一、設計項目結構

    這里主要講解的是 fireasy 的使用方法,因此對於項目的分層,沒有那么多講究,因此使用了精簡至上的原則,采用最簡單的方案,數據服務層即業務層。

項目名稱 角色和用途
Fireasy.Zero.Web asp.net core web 項目
Firesay.Zero.Models 數據實體模型,定義ORM的實體類型
Fireasy.Zero.Services 數據服務層,提供數據交互
Fireasy.Zero.Infrastructure 基礎設施層
Fireasy.Zero.Helpers 輔助類庫

                

    二、創建項目

    按照上表中給定的項目,在解決方案里添加各項目,這里除 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 包,因此,它就不需要再安裝包了。

 

    三、數據庫設計

    一個系統的權限管理后台是必不可少的,因此我就拿這個例子來說說,后台權限管理功能包括模塊(菜單)管理、機構管理、用戶管理、角色管理、權限管理等等。數據表的設計圖如下:

    各表的含義如下:

表名稱 含義
 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.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM