離上一篇又過去了一個月,時間比較緊,后續估計會更緊,所以這次將放出更多公共操作類及配套的CodeSmith模板,本篇將簡要介紹新放出的重要功能,供有興趣的同學參考。
重要更新
這一次對兩個VS解決方案均做了大量調整,包含項目結構及命名空間。
Util解決方案的目錄截圖如下。
除了少數需要配置的集成測試外,大部分單元測試已放出。
Applications項目示例的目錄截圖如下。
Applications項目示例雖然包含的東西不多,卻建了不少項目,可能並不符合你的胃口,我將在下一篇文章向你演示其它項目結構組織方式。
CodeSmith代碼生成項目的目錄截圖如下,這是生成前的模板,除了實體類、EF映射配置等常規代碼外,我還按EASYUI的三種界面操作方式生成相關的CRUD界面,另外我也嘗試生成一些測試代碼,不過目前效果並不理想,大家可以先參考。
02-Result目錄為生成的代碼。
由於修改了項目命名空間規則,目前放出的模板命名空間有些錯誤,后續會進行修正。對於CodeSmith的使用,還沒有學習過的同學可以先自行安裝軟件,我會在后續幾天進行介紹。
公共操作類方面,更新了隨機數生成器Util.RandomBuilder,用於生成簡單的隨機測試數據。
根據部分同學的建議,增加了Autofac和Ef的自動裝配功能。
單元測試模擬框架已從原先的RhinoMocks改成了NSubStitute。
最近封裝了緩存模塊的部分功能,主要參考蘑菇先生的《那些年我們一起追過的緩存寫法》以及Jusfr.W的《一步步實現一個基本的緩存模塊》,我畫了簡單的類圖和順序圖來幫助理解,目前只實現了部分功能,后續會進行完善。
為了防止緩存過期時有大量並發請求訪問數據庫,我使用了單元測試進行模擬,並封裝了一個簡單的並發模擬操作類。
本次更新了對SqlBulkCopy的封裝,EF元數據通過EntityFramework.Extended擴展獲取,不過遺憾的是該擴展對元數據的支持並不夠理想,不支持值對象,即ComplexType,我簡單修改了下,目前僅支持一級,比如user.Address,傳說EF7在元數據方面開放了很多東西,后續將直接在EF7上擴展。
SqlBuilkCopy配合隨機生成器,可以為簡單的表快速創建測試數據,復雜的情況暫末測試。
另一個重要更新是對SQL查詢的支持,通過對Dapper的簡單包裝即可完成查詢,該模塊主要實現了對SQL Where條件的拼接,自動完成空值判斷,同時支持分頁,目前實現了Sql Server基於RowNumber和Offset兩種分頁方式,Offset是Sql Server 2012特有語法,分頁效率比RowNumber有大幅提升,特別是點擊分頁最后幾頁時,效果尤其明顯。
EasyUi方面,更新了查找帶回等功能。
功能模塊方面,更新了資源管理模塊,資源管理模塊尚未完成,也先放出來供大家參考。
資源管理模塊涉及圖標選擇,采用查找帶回方式操作,效果圖如下。
注意,使用圖標管理模塊上傳圖標時,會自動更新相關的CSS文件,由於目前該文件是靜態引用,所以上傳的圖標在圖標選擇界面中無法顯示,請上傳后Ctrl +R刷新,后續會將引用方式改成動態,每次上傳成功都需要更新CSS文件引用。
表現層引入了ValidateAntiForgeryToken特性,所有公共JS均已更新。
本次更新大量類,有興趣自己看看,不一一介紹了。
版權申明
1. 本應用程序框架版權歸作者何鎮汐所有。
2. 本框架代碼可免費使用,允許用於商業目的。
3. 如果您的開源項目中采用了本框架少量代碼,不需要注明出處。
4. 如果您的開源項目中采用了本框架大量代碼,請注明出處。
5. 嚴重鄙視某些人直接修改本框架命名空間后開源,本人保留追究法律責任的權利。
6. 禁止直接銷售本框架源碼騙錢,本人保留追究法律責任的權利。
結束語
本篇介紹了重要的更新內容,下一篇介紹VS解決方案的創建。
QQ群
應用程序框架交流QQ群1:386092459(已滿)
應用程序框架交流QQ群2:376124781
EasyUi交流QQ群:157809322
源碼下載:(下載時順手推薦)
框架源碼:http://files.cnblogs.com/files/xiadao521/Framework.2015.5.20.1.rar
項目示例源碼:http://files.cnblogs.com/files/xiadao521/Applications.2015.5.20.1.rar
數據庫備份:http://files.cnblogs.com/files/xiadao521/Data.2015.5.20.1.rar
Codesmith生成器模板:http://files.cnblogs.com/files/xiadao521/CodeGenerator.2015.5.20.1.rar