應用程式框架實戰三十七:Util最新程式碼更新說明
離上一篇又過去了一個月,時間比較緊,後續估計會更緊,所以這次將放出更多公共操作類及配套的CodeSmith模板,本篇將簡要介紹新放出的重要功能,供有興趣的同學參考。
重要更新
這一次對兩個VS解決方案均做了大量調整,包含專案結構及名稱空間。
Util解決方案的目錄截圖如下。
除了少數需要配置的整合測試外,大部分單元測試已放出。
Applications專案示例的目錄截圖如下。
Applications專案示例雖然包含的東西不多,卻建了不少專案,可能並不符合你的胃口,我將在下一篇文章向你演示其它專案結構組織方式。
CodeSmith程式碼生成專案的目錄截圖如下,這是生成前的模板,除了實體類、EF對映配置等常規程式碼外,我還按EASYUI的三種介面操作方式生成相關的CRUD介面,另外我也嘗試生成一些測試程式碼,不過目前效果並不理想,大家可以先參考。
02-Result目錄為生成的程式碼。
由於修改了專案名稱空間規則,目前放出的模板名稱空間有些錯誤,後續會進行修正。對於CodeSmith的使用,還沒有學習過的同學可以先自行安裝軟體,我會在後續幾天進行介紹。
公共操作類方面,更新了隨機數生成器Util.RandomBuilder,用於生成簡單的隨機測試資料。
根據部分同學的建議,增加了Autofac和Ef的自動裝配功能。
單元測試模擬框架已從原先的RhinoMocks改成了NSubStitute。
最近封裝了快取模組的部分功能,主要參考蘑菇先生的《那些年我們一起追過的快取寫法
為了防止快取過期時有大量併發請求訪問資料庫,我使用了單元測試進行模擬,並封裝了一個簡單的併發模擬操作類。
本次更新了對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