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截圖