自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教你如何用好Visual Studio 2010層次驗證

原創(chuàng)
開發(fā) 后端
本文將為大家講述作者最為喜歡的一項Visual Studio 2010功能——層次驗證,幫助大家進(jìn)一步改善程序的架構(gòu)。

【51CTO經(jīng)典譯文】在之前的“我喜歡的特性”這篇博文中,我講到如何利用Visual Studio 2010終極版的“依賴關(guān)系圖”特性去理解系統(tǒng)的結(jié)構(gòu)關(guān)系。親自動手完成一個項目對加深所了解的知識是很有益處的。接下來,我要講的就是層次驗證(Layer Validation),它能夠進(jìn)一步改善程序的架構(gòu)。

建立一個層次圖(Layer Diagram)

我們將使用上篇博文的“Tailspin Toys”應(yīng)用程序來進(jìn)行說明。既然我們已經(jīng)知道這個應(yīng)用程序的基本結(jié)構(gòu),接下來的目標(biāo)就是讓它和我們的架構(gòu)能夠很好的結(jié)合到一起。在這個例子中,應(yīng)用程序所采用的是模型-試圖-控制器(MVC)架構(gòu)。我們需要確認(rèn)的是,它真的是按照這種架構(gòu)模式來實現(xiàn)的。首先,我們通過Architecture(架構(gòu))菜單新建一個層次圖:

 

層次圖 

層次的選擇

它將產(chǎn)生一個空的層次圖,我們可以在其中指定和規(guī)劃我們的架構(gòu)層次。不需做太多的工作,我們就可以在窗口上看到所有的基本層次:

基本層次

 雖然這看上去是一個合理的架構(gòu),但是我們需要確認(rèn)物理實現(xiàn)是否真的和邏輯上的結(jié)構(gòu)一一對應(yīng)。要做到這一點,我們可以把類的實現(xiàn)拖動到相應(yīng)的實現(xiàn)層次上:

 

實現(xiàn)層次

當(dāng)把類的實現(xiàn)放置在正確的層次上后,右鍵點擊Design Surface(設(shè)計圖面)-> Generate Dependencies(產(chǎn)生依賴關(guān)系)就可以得到相應(yīng)的依賴關(guān)系圖:

依賴關(guān)系圖

一旦按照上面的步驟完成整個過程,你將會得到類似于下面的一個圖。層次資源管理器(Layer Explorer)可以用來瀏覽每一層次中的具體內(nèi)容:

具體內(nèi)容

#p#

改進(jìn)你的實施方法:

在這里我們有一副圖描述了哪些已經(jīng)被實際構(gòu)建。但是我對這幅圖有一個疑問:在MVC模式中我們不想讓View直接和Model對話。這種情況往往發(fā)生在所寫的代碼直接訪問數(shù)據(jù)層而沒有通過適當(dāng)?shù)臉I(yè)務(wù)邏輯層(一個很容易犯的低級錯誤)。下面就讓我們通過刪除這一個“箭頭符號”來解決這個問題:

 

改進(jìn)方法

在我們刪除這一“箭頭符號”后,我們可以用鼠標(biāo)右鍵單擊圖形,然后選擇驗證架構(gòu)(Validate Architecture): 

 

選擇架構(gòu)驗證

在這里,Visual Studio將會分析所有的依賴關(guān)系,并查找其中任何違背這個層次圖的依賴關(guān)系,然后錯誤就會出現(xiàn)在錯誤列表中:

錯誤列表

現(xiàn)在,我可以瀏覽并修改我的代碼了,并重復(fù)使用驗證架構(gòu)直到?jīng)]有任何錯誤為止。

在構(gòu)建中執(zhí)行分層:

這里我有一個清晰的架構(gòu)和相應(yīng)的實施方法。我們都知道接下來將發(fā)生什么:由于任務(wù)被執(zhí)行、錯誤被修復(fù),該代碼將再次從架構(gòu)中漂移(drift)。因此我們需要找到一種方法來保持同步。

 

為了解決這個問題,我們將添加一個新的TFS Build Definition,通過運(yùn)用Gated Check-in來執(zhí)行這一架構(gòu):

TFS Build Definition

當(dāng)你運(yùn)用Gated Check-in的時候,所有你提交到TFS的變化抖必須首先通過全部的常規(guī)測試。在這種方法中,如果你存在錯誤,所有的變化將不會被應(yīng)用,也不會進(jìn)入構(gòu)建中。在這種情況下,我們只需要在進(jìn)程選項卡中多加一個步驟即可。

Gated Check-in

此時,構(gòu)建過程將啟動架構(gòu)驗證步驟,以防止任何違規(guī)事件對TFS進(jìn)行檢查。

總結(jié):

有幾個關(guān)鍵的概念需要明確:

如果你正在寫一個全新的代碼,你可以從邏輯設(shè)計開始并朝著實現(xiàn)你設(shè)計的方向努力。

如果你是從現(xiàn)有的代碼開始,你將發(fā)現(xiàn)你已經(jīng)擁有的東西,也能朝著一個完美的邏輯設(shè)計方向努力。

一旦你的物理和邏輯得到同步,你就可以用防止漂移(drift)的自動方法(如gated check-in)來實現(xiàn)你的設(shè)計。

【編輯推薦】

  1. Visual Studio 2010中Parallel類實現(xiàn)并行計算
  2. Visual Studio 2010中C++項目升級指南
  3. Visual Studio 2010中測試用例工作項類型介紹
  4. 在Visual Studio 2010選擇合適的項目測試方法
  5. 細(xì)數(shù)VS 2003到Visual Studio 2010的開發(fā)之路

 

責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2010-09-17 08:50:30

Visual Stud

2010-09-25 08:50:00

Visual Stud

2011-08-02 08:48:58

Visual Stud

2010-02-26 09:18:24

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-11-10 13:43:37

Visual Stud

2010-04-08 16:49:26

Visual StudMVC 2.0

2009-11-13 09:05:05

Visual Stud

2010-06-29 09:02:59

Visual Stud

2009-11-11 09:48:06

Visual Stud

2010-02-22 16:43:33

Visual Stud

2009-11-13 14:59:12

Visual Stud

2010-04-06 17:32:02

Visual Stud

2010-04-16 14:08:46

Visual Stud

2011-02-13 17:10:28

Visual Stud

2009-12-11 13:14:45

Visual Stud

2022-06-27 17:40:14

大數(shù)據(jù)數(shù)據(jù)科學(xué)

2010-04-12 08:43:45

Visual Stud

2009-11-11 14:26:13

Visual Stud

2009-07-18 16:05:53

光纖拉遠(yuǎn)TD-SCDMA
點贊
收藏

51CTO技術(shù)棧公眾號