代碼生成工具介紹和使用
RUF MVC5 Repositories Framework Generator代碼生成工具介紹和使用
功能介紹
這個項目經過了大半年的持續更新到目前的階段基本穩定
所有源代碼都是開源的,在github https://github.com/neozhu/MVC5-Scaffolder 共享
整個項目結構,技術框架完全是基於http://genericunitofworkandrepositories.codeplex.com/ 實現。
輕量級的N層架構,Unit Of Work and Repository 設計模式,Entity Framework Code-first的實現方式,這樣的技術架構非常簡潔和完美。
而我做的就是通過visual studio 2013提供的 Scaffolder代碼生成向導的擴展接口上進行自定義開發通過實體類生成這些數據架構所需要源代碼,把大量重復的代碼利用工具自動生成實現快速開發的同時又有利於規范開發人員的編程習慣。
已經實現的基本功能
-
單個實體類的增刪改查,都是通過easyui datagrid實現
-
實體類中定義了有外鍵關鍵字的字段,會自動生成combox的查詢和編輯操作控件
-
實體類中定義了一對多,主從表結構的,系統自動主從表同時編輯操作查詢的頁面和功能
-
編輯功能,會根據字段類型,驗證規則生成不同的編輯模式,比如日期類型用datebox,數字類型就用numberbox,必填的驗證可以實現
-
查詢功能,會根據字段類型的不同生成不同的控件方便操作,datebox,combox
-
Excel導入功能,目前只能實現簡單表導入的配置


使用向導
-
新建一個Controller

-
選擇 RUF MVC5 Repositories Framework Generator

-
選擇你要生成的Model,Data Context
Generate views選項說明
-
Over write existing pages 覆蓋已經存在的view
-
Generate Master-Detail relationship Action and PageView 如果實體類中定義了外鍵和一對N的集合類型,那么會自動生成主從關系的操作頁面和對應的Controller
-
Set Form Layout Columns 選擇生成編輯頁面是字段排列成幾列在一行上

-
定義實體驗證規則和中文說明

-
更新數據庫
這里使用的EntityFramework 的code-first模式創建的數據訪問類,因此當你修改了實體類的字段屬性系統會重新更新到實體數據庫
-
打開 Package Manager Console
-
運行 add-migration 系統會生成對應修改的腳本
-
運行 update-database –script 系統會把腳本更新到物理數據庫同時生產一個sql腳本用於更新你的生產環節或其他數據庫



-
完成系統生成
-
需要的源代碼文件
以下就是標准的MVC N層架構規范代碼
-
/Controllers/ProductsController.cs(控制類)
-
/Models/ProductMetadata.cs(實體類)
-
/Repositories/Products/ProductQuery.cs(數據訪問類)
-
/Repositories/Products/ProductRepository.cs(數據訪問類)
-
/Services/Products/IProductService.cs(業務邏輯類)
-
/Services/Products/ProductService.cs(業務邏輯類)
-
/Views/Products/Index.cshtml(視圖)
-
/Views/Products/Edit.cshtml(視圖)
-
/Views/Products/EditForm.cshtml(視圖)
-
/Views/Products/_PopupSearch.cshtml(視圖)
-
/Views/Products/Create.cshtml(視圖)
-
注冊服務
修改/App_Start/UnityConfig.cs
將新生成的服務類注冊一下才能使用,這就用UnitOfWork設計模式實現依賴注入

-
運行測試
編譯成功后運行的界面如下
所有增刪改查都是通過easyui datagrid實現
包括必填的驗證規則都已經生成


針對一對N的結構生成的視圖如下
上半部分為主表操作區,下半部分是明細表操作區。

Demo截屏



