天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

用好Visual Studio 2010進行層架構設計

  微軟已經把VS 2010(Visual Studio 2010 Ultimate)功能融入到軟件應用生命周期管理(ALM)中。在架構設計方面則是通過新的架構層關系圖(Architecture Layer Diagram),以圖形化的方式描述系統架構,從而使得項目中的技術人員或非技術人員都能以模型透過圖形化的方式進行協作與設計,以及定義企業的系統功能。

  Visual Studio 2010提供針對不同功能層面的分析工具來輔助程序代碼進行逆向工程。Layer Diagram可從高階面來看架構;Architecture Explorer能從特定點切入,只探索我們所關心的部分;.NET Class Diagram則可分析詳細部分的Class結構。逆向工程類型可分為靜態與動態,靜態指的是整個程序代碼的靜態結構,如組件或類別間的關系;動態則是程序代碼執行的順序,如某個程序代碼區段相關方法調用與響應順序。

  靜態的逆向工程,主要有三個工具:Architecture Explorer、Layer Diagram和Class Diagram。Layer Diagram可以讓我們以高層角度來分析整個軟件結構,細膩程度可以自由選擇,從項目、Namespace、Classs、到方法都可以。本文將重點講述VS2010靜態逆向工程(Static Reverse Engineering)在軟件架構層關系圖設計方面的新功能應用

  Visual Studio 2010架構層關系圖設計

  在現實的項目中,我們需要分析別人的代碼,或者約束團隊的代碼架構。當我們已經對現有程序的基本架構有了初步了解時,則想對現有架構進行進一步的分析并維護代碼架構的邏輯。例如,當我們的項目為模型-視圖-控制器(MVC,Model View Controller)架構風格創建架構應用的時候,讓我們確保它是實際執行的方式。

  (1)創建一個層圖(Building a Layer Diagram)

  首先,讓我們創建一個新層架構使用菜單(命令為Architecture|New Diagram|Layer Diagram)。創建一個空層圖,在圖層設計器中可以指定設計(在Toolbox中拖曳元素實現層設計)架構層,可以得到所有我們所確定的形式與基本層,如圖1所示。

圖1  設計MVC架構層圖類的實現

  如上圖所示,這是一個典型的軟件架構,需要實現物理與邏輯架構圖的關聯,我們通過拖動相應的執行層與實際類來實現。當放入圖層類實現后,我們可以在該系統中用鼠標右鍵單擊設計圖面,在彈出的菜單中選擇Generate Dependencies(生成依賴)命令,來建立依賴關系。

  一旦完成這一過程,最后將得到一個架構層圖。層管理器(Layer Explorer)可以用來看到每一層的內容,以及架構層彼此之間的關系。

  (2)更新實現(Updating Your Implementation)

  在MVC架構模式中,我們不希望看到“Web→Model”層的直接對話模式,這種情況往往發生在團隊中其他人編寫的代碼直接訪問了數據層,而不通過合適的業務邏輯(這是一個非常容易犯的錯誤)。可以通過圖層設計器刪除依賴線來解決。當刪除依賴線后,可以用鼠標右鍵單擊圖形,在彈出菜單中選擇Validate Architecture(驗證架構)命令,如圖2所示。

圖2  刪除錯誤邏輯

  Visual Studio將分析所有的依賴和任何違反該層圖關系的查詢。這個錯誤結果將會出現在錯誤列表中,如圖3所示。 

圖3  錯誤結果列表

  現在,我們可以通過修復自己的代碼,重復驗證架構體系直到沒有違反層關系的代碼依賴出現為止。

  (3)執行中生成分層(Enforcing Layering in the Build)

  我們要保持一個干凈的架構,并且知道未來將發生的問題,例如,對錯誤的分析和驗證,可以審視到架構代碼漂移,執行開發任務時進行對該錯誤的修復。我們需要一種方法來保持同步(sync)。為了解決這個問題,我們將添加一個新的TFS生成定義,將使用門控簽入(Gated Check-in)來執行架構,如圖4所示。

圖4  設置簽入方式

  當使用門控簽入后,提交所有更改到TFS中時,必須先通過所有正常的測試(干凈的構建、通過測試用例等),現在構建的做法將符合驗證步驟,并通過在TFS中的檢測來防止更多的風險侵入。

  如果進行全新的代碼開發,我們就可以在開始階段通過層圖來進行邏輯設計,并努力執行設計方案,保證開發階段與設計不偏離,團隊人員的代碼不漂移出架構。如果從現有的資源框架開始,我們也可以通過Visual Studio 2010的層圖功能找到理想的邏輯分析與設計工作方法。一旦我們的物理和邏輯同步,就可以通過自動化(例如門控簽入)進行強制執行,避免“漂移”發生。

NET技術用好Visual Studio 2010進行層架構設計,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 俄罗斯破处 | 亚洲精品蜜桃AV久久久 | 亚洲视频在线观看免费 | 精品日产1区2卡三卡麻豆 | 无遮挡h肉3d动漫在线观看 | 中文字幕AV在线一二三区 | 中文字幕天堂久久精品 | 国产午夜精品一区二区理论影院 | 国产成人无码区免费内射一片色欲 | 菠萝菠萝蜜免费播放高清 | 成人免费精品视频 | 99久久无码一区人妻A片蜜 | 一个人免费完整在线观看影院 | 久久免费精品视频 | 精品国产99久久久久久麻豆 | 亚洲国产成人在线视频 | 啊好深啊别拔就射在里面 | 茎身铃口调教 | 最近日本字幕免费高清 | 少爷被多个暗卫肉高h | 伊人亚洲综合青草青草久热 | 亚洲AV无码久久流水呻蜜桃久色 | 精品一区二区三区高清免费观看 | 久久婷五月综合色啪网 | 最近中文字幕免费高清MV视频 | 欧美一区二区三区久久综 | 少妇精品无码一区二区三区 | 在线观看中文 | 天美传媒 免费观看 | 久久中文字幕亚洲 | 19不插片免费视频 | 嫩草欧美曰韩国产大片 | 最近2019中文字幕MV免费看 | 97精品免费视频 | 免费亚洲视频在线观看 | 国产午夜亚洲精品理论片八戒 | asmr淫语 | 黑丝女仆恋上我 | 色偷偷网址 | 一区二一二 | 亚洲欧美日韩精品自拍 |