您的位置:軟件測試 > 軟件項(xiàng)目管理 > 項(xiàng)目案例分析 >
實(shí)戰(zhàn)項(xiàng)目分析
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/7/19 15:14:57 ] 推薦標(biāo)簽:

6. 自定義事務(wù)

.Net framework 2.0中內(nèi)置了對事務(wù)的支持,不但可以管理進(jìn)程內(nèi)的事務(wù)(包括SQLServer事務(wù)),還可以自動提升至MSDTC來管理分布式事務(wù)(包括WCF事務(wù))。所以我們無需再編寫任何事物的管理代碼。

本系統(tǒng)中使用了Enterprise Library中的Data Access Application Block作為數(shù)據(jù)存取方案。但卻沒有很好地利用.Net framework 2.0的事務(wù)功能,而是自己寫了很多管理事務(wù)的代碼。例如使用一個TransactionContext類管理事務(wù)的執(zhí)行,在很多數(shù)據(jù)存取的方法上支持傳入TransactionContext類型的參數(shù),用來管理事務(wù)邊界。

這樣不僅需要花費(fèi)精力維護(hù)TransactionContext類,管理事務(wù)的執(zhí)行,也使數(shù)據(jù)存取接口變的很復(fù)雜,臃腫。

其實(shí)我們完全可以利用TransactionScope這一.Net framework2.0中的事務(wù)處理類還管理事務(wù)。簡單的方式是:

Using(TransactionScope cpe = new TranscationScope())

{

數(shù)據(jù)操作方法1();

數(shù)據(jù)操作方法2();

數(shù)據(jù)操作方法N();

}

這樣可以自動提交和回滾事務(wù)了,而且可以根據(jù)實(shí)際情況,如果其中某個方法調(diào)用了分布式事務(wù)的話,可以自動升級為MSDTC事務(wù)。

關(guān)于如何使用.Net framework2.0中的事務(wù)功能,可以參考:Introducing System.Transactions in the .NET Framework 2.0。

7. 其它問題

還有一些其它的小問題,雖然不涉及到系統(tǒng)架構(gòu),但也會帶來一些負(fù)面的影響,包括:

A.代碼重復(fù)

a) 很多數(shù)據(jù)查詢方法功能相同,只是返回的數(shù)據(jù)“格式” 不同(有的返回DataSet,有的返回DataRow,有的返回實(shí)體對象),為了調(diào)用方便,做了很多重載的方法,但沒有考慮代碼重復(fù)利用,造成大量的代碼冗余。

B.公共模塊

a) 設(shè)計者把系統(tǒng)中使用到的公共代碼和枚舉等等組織在一起,放在一個文件中,為各個項(xiàng)目所使用。其實(shí)這本來很好,但是我卻發(fā)現(xiàn),公共模塊同時被三個層次引用,這樣也是很不好的。這樣會使得系統(tǒng)的分層結(jié)構(gòu)遭到破壞,公共模塊難于理解和使用。應(yīng)該把屬于各層專屬使用的功能集成到各自的層中,每個層中設(shè)一個公共模塊,這樣既保障了分層的清晰,同時又很好地規(guī)劃了公共模塊。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd