標籤:
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首頁有分頁和查詢功能
修改 可以刪除
目前只是一個雛形,還有很多功能需要完善,如果你有興趣可以一起參與幫忙。
asp.net MVC 5 Scaffolding多層架構代碼產生嚮導開源項目(邀請你的參與)