這段時間一直在充電,拜讀了園子中大神們的博文(wayfarer的《設計之道》、TerryLee的《.NET設計模式系列文章》、卡奴達摩的《設計模式》還有其他一些零散的文章),獲益良多,雖然對大部分設計模式還是有點蒙,不過還是大長見識了。另外還購買了園子里范鋼大神的大作《大話重構》和其他大神推薦的《重構:改善既有代碼的設計》,每天早上早起一小時看書,感覺這個時間頭腦清晰,看書的效率特別高,向大家推薦一下,這些書籍都屬於需要精讀的書籍,有時間的話要反復觀看與練習。
按開發計划,5號開始進入代碼編寫階段,開始編寫框架代碼,在編寫的同時一直在考慮怎么才能比較通俗的講清楚整個代碼編寫過程與相關細節呢?對於代碼講解的編寫不是三兩句話就說得清楚的,用視頻的確可以說得明白不過自己又沒有經驗不知怎么弄,所以認真考慮后覺得,如果一次性將實現好的代碼發出來,內容太多不方便大家對一些細節的了解,還是按平時編寫代碼的開發方法,將代碼實現的一個個步驟按順序寫出來,功能不一次性實現,要用到相關功能時再對類或代碼進行重構來添加功能,大家從中也可以了解開發過程與思路。
本架構最終實現后,代碼的偶合性會比較高,不過對於中小型項目來說問題不是很大,因為多數代碼都是直接使用T4模板生成,有變化只要在模板函數里修改就可以了。
模板函數是為了減少開發工作量為目的來實現的,對於獨立的功能需要自行開發自定義函數來實現,這些會在后面章節中詳細說明。
由於以前開發的項目代碼版權屬於公司所有,所以本項目會使用網上的一些開源源碼,而相關的一些功能函數也會進行重寫。
另外,雖然已經制定了開發計划,不過編碼與文章編寫肯定不會同步,所以有時候文章會發表得晚一些,也請大家見諒。
就不再繼續羅嗦了,上圖上代碼
1、首先創建一個空白的解決方案,並添加4個解決方案文件夾(主要是為了以后項目多了后可以清晰的進行分類存放,如果項目中含有服務、Winform、測試等項,可以另外建立更多的文件夾)
2、進入sufeinet網,下載大神蘇飛共享的C#基類庫大全,非常感謝蘇飛和眾多網友共享出這么多優秀的工具類出來。
3、將C#基類類庫、SubSonic3.0插件項目、DAL層代碼和常用DLL文件放到剛創建好的解決方案文件夾中
4、將C#基類類庫和SubSonic3.0插件項目添加到Common文件夾中,Solution.DataAccess添加到DataAccess文件夾中
5、將DotNet.Utilities項目屬性改為.NET Framework 4
6、DotNet.Utilities添加Newtonsoft.Json.dll引用,SubSonic.Core添加Castle.Core.dll引用,Solution.DataAccess添加DotNet.Utilities和SubSonic.Core項目引用
7、創建數據庫
按《從零開始編寫自己的C#框架(9)——數據庫設計與創建》章的介紹,並用章節中附件的工具《ExcelToSQLString2.91_sql》與《數據字典》生成數據庫
創建數據庫SolutionDataBase
下載附件數據庫設計與創建章節附件.rar並解壓
打開《數據字典》,復制數據表名稱
打開ExcelToSQLString2.91_sql.exe軟件,設計文件路徑,將上面復制的數據表名稱粘貼到表格名稱外,按圖表進行打勾選擇后,點擊運行生成SQL語句
打開數據庫,選擇SolutionDataBase數據庫后,點擊新建查詢,將上面生成的SQL語句復制到查詢分析器中,然后點擊執行
重復上面動作,將《數據字典》中的所有表創建出來
添加數據庫管理帳號
創建登陸名SolutionUid,密碼123456
勾選權限
8、修改數據庫鏈接
打開解決方案
修改數據庫鏈接字串為前面創建的數據庫登陸名與密碼
修改T4模板數據庫名稱
9、運營T4模板,生成DAL層文件
在運行生成時,如果出現下面錯誤提示,請檢查App.config數據庫鏈接字串中的登陸名與密碼是否正確,如果正確請點擊保存App.config配置文件,因為T4文件有時候會因為獲取不到配置文件而產生錯誤,一般保存后就可以正確運行
另外也檢查一下數據庫名稱命名,使用不規范的命名或用關鍵字命名數據庫名稱或表名稱,都有可能產生問題
框架各層文件功能說明,請查看附件中《數據字典》的目錄與文件說明
下一章節會在周三或周四發布,主要講解邏輯層T4模板的應用(T4模板的使用是本框架的主要核心)
下載地址:
由於框架不是非常成熟,很多朋友不是用來學習而是直接用到項目中,但不熟悉框架引起不少小問題,所以停止提供下載,有需要學習的可以到群共享里下,不便之處敬請諒解。
版權聲明:
本文由AllEmpty原創並發布於博客園,歡迎轉載,未經本人同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利。如有問題,可以通過1654937@qq.com 聯系我,非常感謝。
發表本編內容,只要主為了和大家共同學習共同進步,有興趣的朋友可以加加Q群:327360708 ,大家一起探討。
更多內容,敬請觀注博客:http://www.cnblogs.com/EmptyFS/