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首頁有分頁和查詢功能
修改 可以刪除
目前只是一個雛形,還有很多功能需要完善,如果你有興趣可以一起參與幫忙。