MVC Scaffolding SmartCode-Engine 更新
概述
通過擴充套件visual studio.net scaffolding元件,添加了一套功能完善的程式碼模板,包括Controller,Model,View,Businessd等各種功能的程式碼,配合Entity Framework Code-Frist功能實現快速構建業務系統的一套開發工具.
主要優勢
市面上類似的程式碼生成工具有很多,但完全整合在visual studio.net以外掛形式存在的幾乎沒有,大部分都是通過先定義表結構(資料字典)再執行工具生成對應的程式碼.然後再手工拷貝到對應的專案中,而改專案就是簡單的多,只需要把實體物件定義出清楚,直接再專案中執行新增controller後選擇需要的實體物件就可以.非常快捷.
不足之處
目前scaffolding元件只能在一個solution中的單個project中新增原始碼檔案,還沒有辦法降不同層的程式碼新建到對應的project中去,比如根據實體對應分別新建不同的project,對大型專案的分工會更好.
主要功能
與Visual Studio.Net 2017無縫整合
快速生成標準的C.R.U.D程式碼
符合經典的Asp.Net MVC5 N層架構
執行環境.Net framework 4.7.1+
支援Sql Server,MySql,Oracle等主流資料庫
前端Javascript採用ES6規範
Github download Demo
細節提升
專案開始與2014年
Controller升級非同步執行採用(async/await)
使用Microsoft Unity DI & IoC
前端採用Smart Admin模板
前端控制元件一律採用Easyui元件
前端Js Callback改成箭頭函式(Arrow Function)加入(async/await)方法
新增對資料編輯模式的設定一種是彈出視窗操作,一種是直接在datagrid內部開啟編輯狀態
更友好更詳細的操作資訊的提示
為什麼使用EasyUI而不使用Smart Admin模板自帶的標準Input.主要標準的Input雖然樣式更漂亮,但功能比較單一,很多操作不是很方便,EasyUI社群比較活躍文件比較全面入手比較簡單.但不足之處就是與responsive htmj相容性不好,這裡主要是我對easyui css不熟導致
程式碼模板
模板 功能
Controller.cs.t4 控制層程式碼與View層所有操作包括增刪改查的全部功能
EntityQuery.cs.t4 查詢邏輯的封裝類參考URF.NET中的功能
EntityRepositoryExtension.cs.t4 對實體物件的增刪改查的封裝參考URF.NET中的功能
IEntityService.cs.t4 業務邏輯層程式碼參考URF.NET中的功能
EntityService.cs.t4 業務邏輯層具體實現的程式碼參考URF.NET中的功能
Index.cs.t4 主View程式碼包括datagrid現實,增刪改查的功能實現
<context:component-scan base-package="com.anqi">
<context:exclude-www.gouyiflb.cn filter type=www.xiaomiyulezc.com "annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--1、 建立目標類 -->
<bean id="arithmeticCalculator" class="com.anqi.testAop.ArithmeticCalculatorImpl"></bean>
<!--2、建立切面類(通知) -->
<bean id="logAspect" class="com.anqi.testAop.MyLogger"></bean>
<aop:config>
<aop:aspect ref="logAspect">
<!-- 切入點表示式 也可以在通知內部分別設定切入點表示式 -->
<aop:pointcut expression="execution(www.michenggw.com* com.anqi.testAop.*.*(..))" id="myPointCut"/>
<!-- 配置前置通知,注意 method 的值要和 對應切面的類方法名稱相同 -->
<aop:before method="before" pointcut-ref="myPointCut" />
<aop:after method="after" pointcut-ref="myPointCut" />
<aop:after-returning method="testAfterReturn" returning="result" pointcut-ref="myPointCut"/>
<aop:after-throwing method=www.dasheng178.com"testException" throwing="e" pointcut="execution(* com.anqi.testAop.ArithmeticCalculator.div(..))"/>
<!--<aop:around method="testRound" pointcut-ref="myPointCut" /> 最強大,但是一般不使用-->
</aop:aspect>
</aop:config>
_PopupDetailFormView.cs.t4 彈出框操作表單
... 輔助功能程式碼
...