asp.net MVC 5 Scaffolding多層架構代碼生成向導開源項目(邀請你的參與)


Visual Studio.net 2013 asp.net MVC 5 Scaffolding代碼生成向導開源項目

提高開發效率,規范代碼編寫,最好的方式就是使用簡單的設計模式(MVC , Repoistory Pattern)+ 模板生成工具。每個小型的軟件公司似乎都有自己的基礎開發平台,大部分都是基於數據字典+模板動態生成CRUD的操作頁面;一般的項目80%代碼都可以通過模板生成但並不意味着可以縮短80%的項目開發時間,畢竟很多的業務操作還是要根據用戶的需求去定制開發還是需要不少時間去理解和開發的。但隨着項目經驗積累和沉淀,可以為以后的項目提供幫助。

現在隨着移動互聯網,手機APP,IPAD等移動設備的流行,似乎所有的需求都需要移動端的應用,我想這也是為什么最近MVC越來越火的原因。不單單是因為MVC的簡潔(相對web Form),還有MVC確實要比Web Form更適合在不同的設備上瀏覽,也更容易封裝和復用(Partial View,LayoutTemplate)。

 

最近抽空開發一個居於MVC的代碼生成工具,其實也是在別人基礎修改的,如果你也有興趣可以一起參與完善,github是個好東西就是國內訪問速度太慢。

我的項目地址 https://github.com/neozhu/MVC5-Scaffolder

 

項目階段

目前基本實現了對單個實體的增刪改查功能

下一步實現導航菜單動態配置動態創建

頁面部分全部是現實Ajax局部刷新

頂部導航欄通知功能

添加登陸注冊頁面模板

一對多的新增編輯模板

MVC5-Scaffolder開源項目

這個工具的功能通過模板自動生成EntityFramework + UnitOfWork Repository Framework 項目代碼,整體項目架構完全參考《Generic Unit of Work and Repositories (lightweight fluent) Framework with Sample Northwind ASP.NET MVC 5 Application》如下圖所示,非常完美的架構。

 

  • UI (Presentation) Layer
    • ASP.NET MVC - (Sample app: Northwind.Web)
    • Kendo UI - (Sample app: Northwind.Web)
    • AngularJS - (Sample app: Northwind.Web)
  • Service and Data Layer
    • Repository Pattern - Framework (Repository.Pattern, Repository.Pattern.Ef6, Northwind.Repository)
    • Unit of Work Pattern - Framework (Repository.Pattern, Repository.Pattern.EF6, Northwind.Repository)
    • Entity Framework
    • Service Pattern - Framework (Service.Pattern, Northwind.Service)
  • Domain Driven Design (*slated for release v4.0.0)
    • Domain Events
    • *more to come

運行起來大致的樣式如下采用Boostrap sb-admin.css

 

MVC5-Scaffolder項目結構和組成

Demo

---UnitOfWorkFramework –從網上下載的源代碼(http://genericunitofworkandrepositories.codeplex.com/

--WebApp -Web項目

MVC5Scaffloding -Vs.net 2013代碼生成向導插件項目

---Templates ---所有代碼生成的模板包括View,Controller,Repoistory,Service,依賴的外部類

 

MVC5Scaffloding.vsix –安裝項目

 

代碼模板

MvcControllerWithContext –Controller代碼模板

_layout –主頁面模板

_SideNavBar –主菜單導航欄

_TopNavBa —主頁面頂部導航欄

Sb-admin --css樣式網上下載的最簡單的樣式

MvcView --CRUD模板

Repoistories -生成擴展方法可以理解成數據訪問層

Services –生成業務邏輯層代碼

 

實體類結構

Metadata原數據類也是通過向導生成必要驗證規則

也可以很方便修改

 

 

Repoistories,Services 代碼結構

模板會生成與該實體相關聯的實體方法比如通過外鍵獲取關聯的實體對象集合

 

Service層同樣會生成與之相關的所有方法和實體

 

Service層在Repoistory層之上,如果業務邏輯復雜需要多個Repository實現那么一個service中會包含多個Repository

 

Controller代碼結構

 

除了基本的增刪改查,Index方法實現了分頁查詢,排序還沒有實現

IProductService,IUnitOfWorkAsync則是通過Unity依賴注入創建

 

配置Unity注冊信息

首先項目要通過nuget安裝Unity boostrapper for asp.net mvc

把創建的Repoistory,Service類注冊進去

 

運行調試

基本生成樣式就是這樣

Index首頁有分頁和查詢功能

修改 可以刪除

 

目前只是一個雛形,還有很多功能需要完善,如果你有興趣可以一起參與幫忙。


免責聲明!

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



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