.NET 分布式架構(gòu)開發(fā)實戰(zhàn)五——Framework改進篇
前言:
本來打算這篇文章來寫DAL的重構(gòu)的,現(xiàn)在計劃有點改變。之前的文章,園子里的朋友給出了不少的反饋,特別感謝金色海洋和Virus兩位朋友的一些反饋。周末的這兩天,對文章中開發(fā)的那個Framework做了一些改進,雖然說系列文章會慢慢的給出代碼,但是這兩天的一些想法讓我很興奮,迫不及待的和大家分享一下,也當(dāng)是對文章中以后給出的Framework先睹為快吧。
本篇文章涉及技術(shù)不多,主要是些想法(代碼部分正在實現(xiàn))。
最主要的改進主要在于業(yè)務(wù)層開發(fā)的簡化。
大家都知道系統(tǒng)的核心就是業(yè)務(wù)邏輯層了,業(yè)務(wù)邏輯的代碼往往得我們一行行的敲代碼,而且不同的系統(tǒng),每次都得一行一行的重頭來寫,這樣的開發(fā)的效率可想而知了。基于這個原因,所以很有必要用一些工具和方法來加速開發(fā)。
經(jīng)過這兩天的思考,個人認(rèn)為最大的改進就是:業(yè)務(wù)邏輯類的圖形化配置。我先給出圖的示例,然后再詳細的說明這個思想。
大家知道,在一個BLL類中包含了大量的業(yè)務(wù)規(guī)則和驗證規(guī)則,而且這些規(guī)則往往需要手工來寫,特別是一個業(yè)務(wù)類的一些屬性,要對他們的數(shù)據(jù)類型,長度,格式,狀態(tài)更改跟蹤,是否可以讀寫等進行驗證,雖然說現(xiàn)在已經(jīng)有了一些類庫可以使用,如Enterprise Library中的Validation組件,但是我們還是要寫代碼,如果把這些規(guī)則通過圖形化的拖拽的方式,或者圖形的配置方式來生成C#代碼,然后需要定制的部分再手動的修改,這樣開發(fā)就簡化多了(甚至可以把自動生成的代碼和需要手寫的代碼分別放在partial類中,大家可以想想VS中開發(fā)Window程序時,VS就把那些自動生成的代碼放到了另外的一個partial類中)。用過Enterprsie Library的朋友已經(jīng)很清楚那個圖形化配置工具的威力。
首先,來看第一個圖(設(shè)計的草圖)。
當(dāng)我們新添加了一個業(yè)務(wù)類的以后,假設(shè)這個業(yè)務(wù)類的為 Product,在”解決方案”管理器中點擊右鍵,選擇”配置業(yè)務(wù)類”,就會彈出圖形化的配置窗體,從草圖中可以看出:
1.Properties,為業(yè)務(wù)類添加的屬性。
2.DataProvider,這個配置表明了業(yè)務(wù)類使用哪個數(shù)據(jù)提供者:AdoDotNetProvider,LinqProvider,EntityFrameworkProvider.(這些Provider就是之前DAL系列文章最終會完成的那些Provider)
3.MappingType這個業(yè)務(wù)類和那個數(shù)據(jù)來源體映射,這里有兩個選擇:DataTable,DataEntity(Linq實體或者EF實體,DataTable 的改進是來源于金色海洋和virus,thanks)
4.MappingTypeName:這個配置項就表明這個業(yè)務(wù)類會和哪個數(shù)據(jù)來源體的屬性進行映射,如,在上面選擇了MappingType為DataEntity,而且選擇DataEntity的名字MS_Product(通過Linq生成的實體,對應(yīng)數(shù)據(jù)庫中的MS_Product表)。當(dāng)然,一個業(yè)務(wù)類的屬性字段可能來自多個DataEntity的組合,所以,這里的MappingTypeName是多個。
下面來看第二個草圖。
這個圖的出現(xiàn)時當(dāng)點擊了第一個圖中的Properties出現(xiàn)的,這個界面就是專門來配置業(yè)務(wù)類的具體的屬性的。
Name:就是屬性的名字。
MappingTo:就是指出要和哪個數(shù)據(jù)實體的哪個屬性映射。(之前第一個界面已經(jīng)制定的數(shù)據(jù)實體)。
ValidationRules:用來指定為這個屬性使用哪些規(guī)則。
下面就來看看第三個草圖。
這個草圖和之前的第二個草圖類似,只補過這個界面是專門用來給特定的屬性配置驗證規(guī)則的。
就介紹到這里了,希望大家以后多多提出意見,便于進一步的改進,最后開發(fā)的Framework會以源代碼的形式給出的。
版權(quán)為小洋和博客園所有,轉(zhuǎn)載請標(biāo)明出處給作者。
http://www.cnblogs.com/yanyangtian
轉(zhuǎn)載:http://www.cnblogs.com/yanyangtian/archive/2010/05/31/1747811.html
本文鏈接:http://m.95time.cn/tech/program/2010/7760.asp
出處:博客園
責(zé)任編輯:bluehearts
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|