本來打算這篇文章來寫DAL的重構的,現在計劃有點改變。之前的文章,園子裡的朋友給出了不少的反饋,特別感謝金色海洋和Virus兩位朋友的一些反饋。周末的這兩天,對文章中開發的那個Framework做了一些改進,雖然說系列文章會慢慢的給出代碼,但是這兩天的一些想法讓我很興奮,迫不及待的和大家分享一下,也當是對文章中以後給出的Framework先睹為快吧。
本篇文章涉及技術不多,主要是些想法(代碼部分正在實現)。
最主要的改進主要在於業務層開發的簡化。
大家都知道系統的核心就是業務邏輯層了,業務邏輯的代碼往往得我們一行行的敲代碼,而且不同的系統,每次都得一行一行的重頭來寫,這樣的開發的效率可想而知了。基於這個原因,所以很有必要用一些工具和方法來加速開發。
經過這兩天的思考,個人認為最大的改進就是:業務邏輯類的圖形化配置。我先給出圖的示例,然後再詳細的說明這個思想。
大家知道,在一個BLL類中包含了大量的業務規則和驗證規則,而且這些規則往往需要手工來寫,特別是一個業務類的一些屬性,要對他們的數據類型,長度,格式,狀態更改跟蹤,是否可以讀寫等進行驗證,雖然說現在已經有了一些類庫可以使用,如Enterprise Library中的Validation組件,但是我們還是要寫代碼,如果把這些規則通過圖形化的拖拽的方式,或者圖形的配置方式來生成C#代碼,然後需要定制的部分再手動的修改,這樣開發就簡化多了(甚至可以把自動生成的代碼和需要手寫的代碼分別放在partial類中,大家可以想想VS中開發Window程序時,VS就把那些自動生成的代碼放到了另外的一個partial類中)。用過Enterprsie Library的朋友已經很清楚那個圖形化配置工具的威力。
首先,來看第一個圖(設計的草圖)。
當我們新添加了一個業務類的以後,假設這個業務類的為 Product,在”解決方案”管理器中點擊右鍵,選擇”配置業務類”,就會彈出圖形化的配置窗體,從草圖中可以看出:
1.Properties,為業務類添加的屬性。
2.DataProvider,這個配置表明了業務類使用哪個數據提供者:AdoDotNetProvider,LinqProvider,EntityFrameworkProvider.(這些Provider就是之前DAL系列文章最終會完成的那些Provider)
3.MappingType這個業務類和那個數據來源體映射,這裡有兩個選擇:DataTable,DataEntity(Linq實體或者EF實體,DataTable 的改進是來源於金色海洋和virus,thanks)
4.MappingTypeName:這個配置項就表明這個業務類會和哪個數據來源體的屬性進行映射,如,在上面選擇了MappingType為DataEntity,而且選擇DataEntity的名字MS_Product(通過Linq生成的實體,對應數據庫中的MS_Product表)。當然,一個業務類的屬性字段可能來自多個DataEntity的組合,所以,這裡的MappingTypeName是多個。
下面來看第二個草圖。
這個圖的出現時當點擊了第一個圖中的Properties出現的,這個界面就是專門來配置業務類的具體的屬性的。
Name:就是屬性的名字。
MappingTo:就是指出要和哪個數據實體的哪個屬性映射。(之前第一個界面已經制定的數據實體)。
ValidationRules:用來指定為這個屬性使用哪些規則。
下面就來看看第三個草圖。
這個草圖和之前的第二個草圖類似,只補過這個界面是專門用來給特定的屬性配置驗證規則的。
就介紹到這裡了,希望大家以後多多提出意見,便於進一步的改進,最後開發的Framework會以源代碼的形式給出的。
出處:http://www.cnblogs.com/yanyangtian