教你如何用好Visual Studio 2010層次驗證
原創【51CTO經典譯文】在之前的“我喜歡的特性”這篇博文中,我講到如何利用Visual Studio 2010終極版的“依賴關系圖”特性去理解系統的結構關系。親自動手完成一個項目對加深所了解的知識是很有益處的。接下來,我要講的就是層次驗證(Layer Validation),它能夠進一步改善程序的架構。
建立一個層次圖(Layer Diagram)
我們將使用上篇博文的“Tailspin Toys”應用程序來進行說明。既然我們已經知道這個應用程序的基本結構,接下來的目標就是讓它和我們的架構能夠很好的結合到一起。在這個例子中,應用程序所采用的是模型-試圖-控制器(MVC)架構。我們需要確認的是,它真的是按照這種架構模式來實現的。首先,我們通過Architecture(架構)菜單新建一個層次圖:
它將產生一個空的層次圖,我們可以在其中指定和規劃我們的架構層次。不需做太多的工作,我們就可以在窗口上看到所有的基本層次:
雖然這看上去是一個合理的架構,但是我們需要確認物理實現是否真的和邏輯上的結構一一對應。要做到這一點,我們可以把類的實現拖動到相應的實現層次上:
當把類的實現放置在正確的層次上后,右鍵點擊Design Surface(設計圖面)-> Generate Dependencies(產生依賴關系)就可以得到相應的依賴關系圖:
一旦按照上面的步驟完成整個過程,你將會得到類似于下面的一個圖。層次資源管理器(Layer Explorer)可以用來瀏覽每一層次中的具體內容:
#p#
改進你的實施方法:
在這里我們有一副圖描述了哪些已經被實際構建。但是我對這幅圖有一個疑問:在MVC模式中我們不想讓View直接和Model對話。這種情況往往發生在所寫的代碼直接訪問數據層而沒有通過適當的業務邏輯層(一個很容易犯的低級錯誤)。下面就讓我們通過刪除這一個“箭頭符號”來解決這個問題:
在我們刪除這一“箭頭符號”后,我們可以用鼠標右鍵單擊圖形,然后選擇驗證架構(Validate Architecture):
在這里,Visual Studio將會分析所有的依賴關系,并查找其中任何違背這個層次圖的依賴關系,然后錯誤就會出現在錯誤列表中:
現在,我可以瀏覽并修改我的代碼了,并重復使用驗證架構直到沒有任何錯誤為止。
在構建中執行分層:
這里我有一個清晰的架構和相應的實施方法。我們都知道接下來將發生什么:由于任務被執行、錯誤被修復,該代碼將再次從架構中漂移(drift)。因此我們需要找到一種方法來保持同步。
為了解決這個問題,我們將添加一個新的TFS Build Definition,通過運用Gated Check-in來執行這一架構:
當你運用Gated Check-in的時候,所有你提交到TFS的變化抖必須首先通過全部的常規測試。在這種方法中,如果你存在錯誤,所有的變化將不會被應用,也不會進入構建中。在這種情況下,我們只需要在進程選項卡中多加一個步驟即可。
此時,構建過程將啟動架構驗證步驟,以防止任何違規事件對TFS進行檢查。
總結:
有幾個關鍵的概念需要明確:
如果你正在寫一個全新的代碼,你可以從邏輯設計開始并朝著實現你設計的方向努力。
如果你是從現有的代碼開始,你將發現你已經擁有的東西,也能朝著一個完美的邏輯設計方向努力。
一旦你的物理和邏輯得到同步,你就可以用防止漂移(drift)的自動方法(如gated check-in)來實現你的設計。
【編輯推薦】
- Visual Studio 2010中Parallel類實現并行計算
- Visual Studio 2010中C++項目升級指南
- Visual Studio 2010中測試用例工作項類型介紹
- 在Visual Studio 2010選擇合適的項目測試方法
- 細數VS 2003到Visual Studio 2010的開發之路