一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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

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

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

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

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

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

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

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

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

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

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

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

圖2  刪除錯(cuò)誤邏輯

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

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

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

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

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

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

  當(dāng)使用門(mén)控簽入后,提交所有更改到TFS中時(shí),必須先通過(guò)所有正常的測(cè)試(干凈的構(gòu)建、通過(guò)測(cè)試用例等),現(xiàn)在構(gòu)建的做法將符合驗(yàn)證步驟,并通過(guò)在TFS中的檢測(cè)來(lái)防止更多的風(fēng)險(xiǎn)侵入。

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

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

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

主站蜘蛛池模板: 丝袜美女丝袜亚洲综合 | 中文字幕视频一区二区 | 正在播放国产夫妻 | 影院成人区精品一区二区婷婷丽春院影视 | 午夜视频免费在线观看 | 91网站视频在线观看 | 91精品视品在线播放 | 日韩精品欧美亚洲高清有无 | 综合成人| 日韩午夜激情视频 | 午夜精品在线免费观看 | 国产成人精品一区二区三在线观看 | 久久综合中文字幕一区二区三区 | 久久成人免费网站 | 精品国产福利片在线观看 | 51国产午夜精品免费视频 | 中文字幕一区二区三区在线观看 | 成人在线色视频 | 一级特黄毛片 | 久久精品视频一区二区三区 | 欧美人与禽交视频在线观看 | 一区二区三区四区精品视频 | 一区二区三区免费在线观看 | 国产男女免费完整视频 | 国产人伦激情在线观看 | 91狼人 | 苦瓜se在线精品视频 | 一区二区三区不卡在线观看 | 免费popnhub国产在线视频 | 婷婷六月久久综合丁香可观看 | 久久免费精彩视频 | 欧美一级久久久久久久久大 | 在线亚洲播放 | 国产精品亚洲第一区二区三区 | 国产福利在线观看永久视频 | 丁香花五月婷婷开心 | 国产精品亚洲综合网站 | 91精品国产免费青青碰在线观看 | www.xxxx欧美| 视频二区在线观看 | 一二三区 |