?? 提升開發效率-.net應用程序開發標準化4.txt
字號:
提升開發效率-.NET應用程序開發標準化
http://dev.21tx.com 2006年05月11日 Sawin Rao Chejarla
每日文章精萃
.Net:ASP.NET中對表單輸入行有選擇驗證 Java:MySQL入門學習(1)
ASP:ASP開發中存儲過程應用全接觸 PHP:PHP 編碼規范(3)
JSP:JSP教程(三)--JSP中”預定義變量”的 CGI:如何利用Perl開發Internet/Intranet
VB:用API函數定義熱鍵又一法 VC:VC++中實現以復雜線條為基礎的圖形繪
上一頁 1 2 3 4
運用Strongly Typed Datasets
強類型(strongly typed) datasets解決了這個問題,但你不能總用Dataset對象。當你運用Dataset對象時,它把所有記錄都讀進內存中,在大量的應用程序中,服務器資源會用盡。但如果用DataReader,就沒有一個等同于strongly typed Row的對象。一種方法就是反復運用Dataset和DataReader,這樣會形成強類型的對象,是很理想的。
我用的一種方法就是對每個表用一個Proxy對象和一個Domain對象。Proxy對象包含SQL語句或存儲過程調用指令來得到或保存域對象。Domain對象包含屬性來體現表的特性。商業邏輯組件與Proxy對象交互,并在Domain對象上執行商業邏輯。這種方法為Proxy對象限制了SQL語句或過程名字的內容。它提供了一個統一的數據訪問策略,提高了應用程序代碼的可讀性,減少了運行時的錯誤,并提供了靈活性,如果它有必要轉換到一個不同的數據庫層的話(見圖1)。
你應該用松散藕合的層來構建應用程序。這樣可以提高應用程序的可維護性、可擴展性和重用性。這種方法包含用于每個表的一個Proxy對象和一個Domain對象。Proxy對象包含SQL語句或存儲過程調用來得到或保存domain對象。Domain對象包含屬性來呈現表的特性。
我們有必要探討一下關于Proxy對象更多的細節問題。一個引起人們爭議的問題就是在Proxy對象中是運用SQL語句還是運用存儲過程調用。運用存儲過程比SQL語句更有效。因此一些公司更喜歡用存儲過程,但你應該選用更適合你公司的方法。不管你采用什么方法,避免割裂存儲過程和商業邏輯組件之間的商業邏輯。我喜歡把商業邏輯保存在商業對象中。作為例子,我提供了一個C#代碼列表,它顯示了一個Authors表的Proxy和Domain類(見列表2)。
你需要考慮的應用程序結構框架中的最后一步就是測試過程。測試在開發階段很重要,因為它是證明軟件可行的唯一的方式。然而,在時間緊迫的情況下,比如發行日期快到了,測試通常似乎處于一個次要位置。而且在大多數情況下,測試這項工作需要人們精力集中、擔負責任。每次代碼改變時,都需要人們嚴格地重復測試過程。
一種新的軟件開發方法學,極端編程(extreme programming),引進了一個嚴格的軟件開發方法,這種方法牢記使最終產品可以交付、使用戶滿意并質量合格(見資源)。它是建立在一個基于測試的開發理念上的,鼓勵開發人員在編寫實際的功能代碼前,編寫測試用例。所有的測試用例都作為類來開發,它們測試商業功能類的功能性。
一旦將測試用例作為類,你就可以在任何時候重復測試。如果所有的測試用例都不能運行,你就會知道有問題。當現有的代碼被改變時(很可能有些東西被破壞),這種測試方法尤其有效。
為了使測試更容易,極端編程方法的創立人Kent Beck創建了一種簡單的稱為JUnit的框架,使人們可以用Java編寫測試用例。作為.net程序的“工廠”,你可以運用同等的公開的資源NUnit(見資源)。它是建立在JUnit的最初觀念上的,你可以把它同Visual Studio .NET(VS.net)集成起來。它可以讓你在同一個項目中包含測試類和功能類。在相同的項目中擁有測試類和功能類就可以進行有效的測試。每次當一個功能類改變時,你不需要轉換項目來測試。在開發周期中,你將測試方法添加到測試用例類,并添加功能到商業類,然后運行測試用例。測試類也同商業類一起集成在Visual SourceSafe中。當你將測試作為開發過程的一個不可分割的部分時,你的代碼質量就提高了,重復測試很簡單。它也消除了由于改變代碼而引起的恐懼。
現在你已經知道了建立一個公共的應用程序結構的步驟,你已經做好準備將它們用于你的企業了。建立一個積極的小組,讓它們負責公共的底層框架及其前景。每個企業都會構建自己的應用程序并為此投資。創建一個公共的底層框架可以幫你更快地開發更高質量的應用程序,而且投資更少。
關于作者:
Rao Chejarla是一個獨立的軟件咨詢者。他主要關注軟件工程方法學和運用.NET Framework和J2EE的應用程序結構。他在軟件開發、設計和結構方面已有12年的經驗了。他的聯系方式是kotrao@yahoo.com
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -