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

用好Visual Studio 2010進行層架構(gòu)設(shè)計

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

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

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

  Visual Studio 2010架構(gòu)層關(guān)系圖設(shè)計

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

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

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

圖1  設(shè)計MVC架構(gòu)層圖類的實現(xiàn)

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

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

  (2)更新實現(xiàn)(Updating Your Implementation)

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

圖2  刪除錯誤邏輯

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

圖3  錯誤結(jié)果列表

  現(xiàn)在,我們可以通過修復(fù)自己的代碼,重復(fù)驗證架構(gòu)體系直到?jīng)]有違反層關(guān)系的代碼依賴出現(xiàn)為止。

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

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

圖4  設(shè)置簽入方式

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

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

NET技術(shù)用好Visual Studio 2010進行層架構(gòu)設(shè)計,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: RUNAWAY韩国动漫免费网 | 久久久久久极精品久久久 | 国产午夜精品不卡视频 | 色AV色婷婷66人妻久久久 | 中文字幕无线手机在线 | 午夜福利院电影 | 久久久久久久久久毛片精品美女 | 最近免费中文字幕大全免费 | 超碰caoporn| 黄色网址在线播放 | gayxxxxgay呻吟受日本 | 毛篇片在线观看 | 越南美女内射BBWXZ | 一本大道手机在线看 | 久久九九少妇免费看A片 | 在线观看亚洲专区5555 | 国产欧美无码亚洲毛片 | 久久久91精品国产一区二区 | 亚洲一区免费观看 | 麻豆免费版 | 99国产在线精品观看二区 | 午夜免费啪视频观看视频 | 湖南张丽大战黑人hd视频 | 免费韩伦影院在线观看 | 迈开腿让我看下你的小草莓声音 | 欧美6O老妪与小伙交 | 国产九九九九九九九A片 | 无套暴躁白丝秘书 | 暖暖日本手机免费完整版在线观看 | 吃奶啃奶玩乳漫画 | 色欲国产麻豆一精品一AV一免费 | CHINSEFUCKGAY无套| 好湿好紧水多AAAAA片秀人网 | 国产69精品久久久久人妻刘玥 | 97夜夜澡人人爽人人模人人喊 | 久久99精品国产99久久6男男 | 久久久久久久电影 | 亚洲国产第一区二区三区 | 亚洲三级在线观看 | 国产精品嫩草免费视频 | 秋霞网在线伦理影片 |