日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺談如何用Visual Studio 2010搭建架構(gòu)

Posted on 2011-07-26 10:40 Saar閱讀(185) 評論(0)編輯收藏

Layer Diagram 最早應(yīng)該出現(xiàn)在TechEd 2008,它不僅可以清晰展示應(yīng)用程序架構(gòu),而且能夠?yàn)閹椭軜?gòu)師隨時檢驗(yàn)代碼之間的引用關(guān)系是否與層圖一致,可謂既好看又好用。本文以Visual Studio 2010為例,一步步看來看如何為一個應(yīng)用程序創(chuàng)建層圖并且以此來對應(yīng)用程序進(jìn)行校驗(yàn)。

首先來看“好看”的部分,這是我為最近的一個小項(xiàng)目畫的層圖:

呵呵,我美工功底較差,顏色問題啥的大家湊合一下吧;這個層圖“好看”在于:

其一,它把整個解決方案的架構(gòu)信息清楚的呈現(xiàn)出來了(色塊)——從***下的數(shù)據(jù)訪問,中間的業(yè)務(wù)邏輯,夾在業(yè)務(wù)邏輯和ViewModel中間的服務(wù),再到上面的ViewModel和UI,一目了然;

其二,各層之間的依賴關(guān)系明確(箭頭)——服務(wù)層依賴于業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層依賴于數(shù)據(jù)訪問層,這三個層都依賴于實(shí)體層,實(shí)體層不依賴于任何其它層……

怎么畫出來的?以一個最簡單的三層架構(gòu)的代碼為例:

創(chuàng)建一個三層架構(gòu)的項(xiàng)目,或者你敢不敢下載下面的代碼試試^v^:

(UI-BLL-DAL)

(由于是下載的代碼,VS可能會有安全提示)

點(diǎn)擊主菜單Architecture –>New Diagram:

選擇“Layer Diagram”,給它取個名字:

此時,VS會要求我們建一個Modeling的項(xiàng)目來容納層圖。

一樣,取名,確定就行了。

這樣,我們的***個層圖就創(chuàng)建好了——空的啊。

讓我們來給它添一些層。首先,從UI開始,點(diǎn)擊工具箱里的層,然后,在層圖設(shè)計(jì)器上點(diǎn)擊一下,一個層就建好了。雙擊Layer1,改名叫“UI”。

同樣操作,我們?yōu)锽LL、DAL和Entity建立各自的層。

為層與層之間設(shè)置依賴關(guān)系。從工具箱選擇“依賴”(單向箭頭),從UI畫向BLL,表示:UI對BLL有直接依賴。同樣的方法,讓BLL依賴于DAL,這三個層同時依賴于Entity。

接下來,我們就要在層與實(shí)體項(xiàng)目之間建立映射。這里有一些選項(xiàng),我們可以將層映射到文件、Assemblies、命名空間、類等,映射關(guān)系的建立也可以通過解決方案瀏覽器或者架構(gòu)瀏覽器來完成。這里這使用架構(gòu)瀏覽器為例,在層與命名空間之間建立映射關(guān)系。

打開架構(gòu)瀏覽器:主菜單 –>Architecture –>Windows –>Architecture Explorer。

點(diǎn)擊Class View –>然后,把Simple3Tier.UI拽到UI層上,這樣,我們就把Simple3Tier.UI映射到了UI層上。

這樣,我們就可以看到UI層右上角多了一個1,表明它與一個對象形成了映射關(guān)系,同時,點(diǎn)擊層圖上的UI,在右側(cè)的層瀏覽器(Layer Explorer)中,我們可以看到它到底映射到哪一個對象。

同樣,我們把BLL/DAL/Entity分別映射到對應(yīng)的圖形上。我們這樣項(xiàng)目的層圖就大功告成了:

完成了層圖,就可以用來驗(yàn)證應(yīng)用程序了。讓我們右擊空白區(qū)域,點(diǎn)擊“驗(yàn)證架構(gòu)”。如果你是下載的上文中提供的項(xiàng)目,那么,就應(yīng)該“中招”了^v^——3個錯誤:

我們稍微看一下錯誤信息:看來是因?yàn)閁I對DAL有依賴。而我們的層圖中沒有這樣的依賴關(guān)系——或者不允許這種依賴關(guān)系的存在。

因此,至少有兩種改法,***,給層圖添加一個依賴關(guān)系:從UI到DAL。我想大部分時間我們不會這么做,大家懂的;第二,修改代碼。

我們以修改代碼為例,雙擊一行錯誤,層圖會幫助我們定位到代碼(Main方法),修改代碼如下:

 
 
 
 
  1. BizClass bizClass = newBizClass();  
  2.  var result = bizClass.GetMessage();  
  3. // DAL.DataClass dataClass = new DAL.DataClass();  
  4. // var result = dataClass.GetMessager().Message;   
  5.  System.Console.WriteLine(result); 

右擊錯誤,點(diǎn)擊“Go to”,選擇“層圖”?;氐綄訄D后,重點(diǎn)右擊驗(yàn)證。再看Error List,錯誤就沒有了。

層圖可以幫助我們校驗(yàn)代碼依賴關(guān)系。當(dāng)代碼依賴關(guān)系與架構(gòu)不符時,層圖可以幫助我們找到錯誤代碼,以保證整個架構(gòu)不被破壞。這一點(diǎn)在大型項(xiàng)目多人開發(fā)時非常重要。

如果想要在Build時自動進(jìn)行架構(gòu)校驗(yàn),只要修改層圖文件的Build Action屬性為Validate就可以了。

資源:

Existing Layer Diagrams: Application Architecture Guide Layer Diagrams

Skinner’s Blog: Layer Diagram

MSDN:Layer Diagrams: Guidelines

MSDN: How to: Create Layer Diagrams from Artifacts

Little knowledge is dangerous.

原文鏈接:http://www.cnblogs.com/xiaomi7732/archive/2011/07/27/2117806.html

【編輯推薦】

  1. VS.NET 2010已經(jīng)發(fā)布了beta2版本 新功能
  2. 初步了解Visual Studio 2010 Professional專業(yè)版
  3. Visual Studio 2010中使用MTLM管理測試工具
  4. Visual Studio 2010 SP1公測版已經(jīng)發(fā)布
  5. Visual Studio 2010中敏捷開發(fā)流程模板的應(yīng)用
     

網(wǎng)站名稱:淺談如何用Visual Studio 2010搭建架構(gòu)
鏈接分享:http://www.5511xx.com/article/cosejih.html