用好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的层图功能找到理想的逻辑分析与设计工作方法。一旦我们的物理和逻辑同步,就可以通过自动化(例如门控签入)进行强制执行,避免“漂移”发生。

时间: 2024-10-21 12:40:49

用好Visual Studio 2010进行层架构设计的相关文章

一起谈.NET技术,用好Visual Studio 2010进行层架构设计

微软已经把VS 2010(Visual Studio 2010 Ultimate)功能融入到软件应用生命周期管理(ALM)中.在架构设计方面则是通过新的架构层关系图(Architecture Layer Diagram),以图形化的方式描述系统架构,从而使得项目中的技术人员或非技术人员都能以模型透过图形化的方式进行协作与设计,以及定义企业的系统功能. Visual Studio 2010提供针对不同功能层面的分析工具来辅助程序代码进行逆向工程.Layer Diagram可从高阶面来看架构:Arc

Visual Studio 2010微软云计算架构构建云服务

4月12日,作为全球发布活动的第一站,微软新一代开发工具Visual Studio 2010在中国率先上市.Visual Studio 2010是微软云计算架构重要组成部分之一,它拥有强大的开发功能,支持开发者基于Windows Azure开发更多应用,从而进一步丰富微软的云计算平台.如果说今年初正式推出商用的云操作系统Windows Azure是微软云计算的左膀,那Visual Studio 2010就是微软云计算的右臂.众所周知,作为一个平台的供应商,微软平台的推广很大程度上将依赖于上面应用

微软Visual Studio 2010架构设计功能应用

随着软件开发日趋国际化,对软件的质量要求和管理也随之增高.微软看到了应用程序生命周期管理在业界逐渐被接受认可的趋势.在微软 VS2010(Visual Studio 2010 Ultimate)中,可以利用各种工具辅助每个关键环节进行管理(ALM)是其重要特性.Visual Studio经过近十年左右的发展,已经不再是仅仅面向某一个角色(开发人员)的工具,而是要服务于软件开发过程中的所有不同的角色(开发人员.测试人员.架构师.项目经理等),使其覆盖在整个软件开发生命周期(SDLC)中,本文将重点

一起谈.NET技术,我眼中的Visual Studio 2010架构工具

影响架构质量的是构建体系架构的思想.原则.实践与架构师的经验,绝不是工具.即使是最优秀的架构工具,也不可能像倚天宝剑一般--倚天一出,谁与争锋--似乎谁握住了这把利刃,就能够成为武林盟主.架构工具可以改善架构师的工作,却不能替换架构的过程.软件开发过程中,最重要的依旧是人. 我在尝鲜Visual Studio 2010架构工具[i]时,偶然看到一篇文章,用夸张的语言吹捧VS 2010架构工具,认为它是架构师最怕程序员知道的新工具.这让我有感而发,我想起数十年前甚嚣尘上的一个理论,那就是CASE工

我眼中的Visual Studio 2010架构工具

影响架构质量的是构建体系架构的思想.原则.实践与架构师的经验,绝不 是工具.即使是最优秀的架构工具,也不可能像倚天宝剑一般--倚天一出,谁 与争锋 --似乎谁握住了这把利刃,就能够成为武林盟主.架构工具可以改善 架构师的工作,却不能替换架构的过程.软件开发过程中,最重要的依旧是人. 我在尝鲜Visual Studio 2010架构工具[i]时,偶然看到一篇文章,用夸张的 语言吹捧VS 2010架构工具,认为它是架构师最怕程序员知道的新工具.这让我 有感而发,我想起数十年前甚嚣尘上的一个理论,那就

我眼中的Visual Studio 2010架“.NET研究”构工具

影响架构质量的是构建体系架构的思想.原则.实践与架构师的经验,绝不是工具.即使是最优秀的架构工具,也不可能像倚天宝剑一般--倚天一出,谁与争锋--似乎谁握住了这把利刃,就能够成为武林盟主.架构工具可以改善架构师的工作,却不能替换架构的过程.软件开发过程中,最重要的依旧是人. 我在尝鲜Visual Studio 2010架构工具[i]时,偶然看到一篇文章,用夸张的语言吹捧VS 2010架构工具,认为它是架构师最怕程序员知道的新工具.这让我有感而发,我想起数十年前甚嚣尘上的一个理论,那就是CASE工

一起谈.NET技术,Visual Studio 2010着力打造云计算平台

在RC版本发布之后,我们看到微软为Visual Studio 2010增加了很多新功能,同时在云计算方面也有很大的改善,随着云计算时代的到来,软件开发模式和商业模型都将进入全面开放组合的新时代.微软云计算平台Windows Azure,这将把微软带入一个崭新的时代. Azure来源于法语,语意为天空一样的湛蓝色,这也正是微软所希望的,把其打造成承载所有云上的应用和服务的蓝天.既然微软一开始就表明了要在云计算领域中一展身手,当然不会让我们失望.在微软的Visual Studio 2010产品中,就

Visual Studio 2010着力打造云计算平台

在RC版本发布之后,我们看到微软为Visual Studio 2010增加了很多新功能,同时在云计算方面也有很大的改善,随着云计算时代的到来,软件开发模式和商业模型都将进入全面开放组合的新时代.微软云计算平台Windows Azure,这将把微软带入一个崭新的时代. Azure来源于法语,语意为天空一样的湛蓝色,这也正是微软所希望的,把其打造成承载所有云上的应用和服务的蓝天.既然微软一开始就表明了要在云计算领域中一展身手,当然不会让我们失望.在微软的Visual Studio 2010产品中,就

微软Visual Studio 2010正式发布

4月12日上午,北京融京国际酒店,微软新一代开发平台Visual Studio 2010正式发布.千位中国开发菁英与世界五大城市同步迎接跨世代开发工具!微软全球资深副总裁张亚勤博士,微软大中华区开发工具及平台事业部总经理谢恩伟,微软Visual Studio商业软件部.微软亚太研发集团服务器与开发工具事业部(中国)总经理潘正磊等多位微软高层,以及来自微软总部的多位核心研发团队主管,亲临发布会现场,共同为IT专业人士解密微软新一代开发平台的革新之处. Visual Studio 2010多项革新性