使用Visual Studio 2010进行架构验证

原创
开发 后端
在Visual Studio 2010 RC发布之后,其中一些新特性也浮出水面。本文主要讲述的是使用Visual Studio 2010进行架构验证。

【51CTO精选译文】最近我参加了一个本地Visual Studio 2010启动仪式,当初去的目的主要是想看看Team Foundation Server(TFS)的新特性,但真正令我印象深刻的是新增的一些架构工具,以前我一直使用Visual Studio扩展工具NDepend,很高兴现在在Visual Studio 2010中对架构工具进行了改进,吸收了大部分NDepend的功能,请看版本对比表(http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx#compare),它仅在旗舰版中具有这个功能。

为了便于说明,我将使用一个假想的,有Web、业务和数据层,以及一些共享模型对象的应用程序作为示例,如下图所示。

假象的应用程序分层图

图 1 假想的应用程序分层图

这里没有什么特别的,图中显示了每一层的名字,数字是代码单元的编号(在这里,你可以加入独立的命名空间或类)。为了创建一个图表,我们需先创建一个新的Visual Studio 2010建模项目,在该项目上增加新的层图,我使用设计器添加了形状和依赖线,看起来还不错,但我想让它变得更好看。

为了将模块放入某一层,你可以从解决方案资源管理器(Solution Explorer)或新的架构浏览器(Architecture Explorer)进行拖放,两种方法都可以找到你想找的对象,虽然方法不一样,但结果是一样的,当所有模块分配到正确的层中后,你可以在图表上点击右键,然后选择“验证架构(Validate Architecture)”。

Visual Studio 2010然后就会编译你的解决方案,并验证其架构,如果不出现错误,你将会看到如下的输出信息:

1/28/2010 4:04:17 PM: Architecture validation is starting.

1/28/2010 4:04:23 PM: Architecture validation succeeded (0 suppressed).

现在我们尝试添加一个非法调用,在这里,我首先在Biz项目上添加一个引用,但失败了,因为它将会产生一个循环依赖,我想这在以前的版本中一样存在,但我却从没遇到过。

增加了非法调用后,我再次验证架构,解决方案将会重新编译,这次的输出信息如下:

1/28/2010 4:19:46 PM: Architecture validation is starting.

1/28/2010 4:19:55 PM: Architecture validation failed with 3 violation(s) (0 suppressed).

OK,我们的行为正如预期的那样,点击错误列表,可以看到错误的详细信息。

Visual Studio 2010操作

图 2 错误列表

因此,不仅在数据层的代码触发事件上增加了讨厌的调用,引用本身也有,从这里的错误列表我们可以做许多事情。

在错误上点击右键,从弹出的右键菜单中选择“管理验证错误”,然后点击“抑制错误”,当然你这么做需要冒一定的风险,编译的输出信息如下:

1/28/2010 4:25:03 PM: Architecture validation is starting.

1/28/2010 4:25:09 PM: Architecture validation succeeded (3 suppressed).

如果你想立即修复错误,你可以双击错误信息获取违规代码,如果是一个正常的编译失败,你会看到一些语法错误,如果你使用TFS,可以选择“创建工作项目”基于错误信息创建一个新的TFS工作项目。

通过设置建模项目的“验证架构”参数,也可以将其包括在本地编译过程中,TFS用户也可以增加这一步,只需要在编译标签增加下面的MSBuild参数即可:

 

  1. /p:ValidateArchitecture=true 

这对于团队构建特别有用,因为你可以阻止检入可能会引起架构问题的代码。

我很高兴地看到这些东西出现在VS 2010中,我不知道这些新的组件是否能达到NDepend的功能,但他们的出现也标志着Visual Studio 2010的进步,我希望这些工具能够帮助我们真正改进,形成一个更高效的团体。

在编写本文的时候,我发现最新的NDepend 3 Beta版完全集成到Visual Studio中了,我将另起一篇比较Visual Studio 2010中的DGQL查询和NDepend的CQL。

原文出处:http://blogs.lessthandot.com/index.php/Architect/DesigningSoftware/validating-architecture-with-visual-stud-2010

原文名:Validating Architecture with Visual Studio 2010

作者:AlexCuse

【编辑推荐】

  1. 一线程序员的Visual Studio 2010 RC初体验
  2. Visual Studio 2010敏捷之道
  3. Visual Studio 2010开发绚丽Win 7应用程序
  4. 详解Visual Studio 2010敏捷测试驱动开发
  5. Visual Studio 2010升级Web开发功能
责任编辑:彭凡 来源: 51CTO
相关推荐

2010-09-25 08:50:00

Visual Stud

2010-09-17 08:50:30

Visual Stud

2010-04-08 16:49:26

Visual StudMVC 2.0

2009-12-02 09:43:38

Visual Stud

2010-03-16 14:32:16

Visual Stud

2009-12-01 19:12:41

Visual Stud

2009-11-10 13:43:37

Visual Stud

2011-08-02 08:48:58

Visual Stud

2009-12-16 14:46:06

Visual Stud

2010-03-19 13:17:26

Parallel

2010-03-15 08:58:46

2010-07-12 16:40:39

Visual Stud

2009-11-11 09:48:06

Visual Stud

2010-02-22 16:43:33

Visual Stud

2010-12-16 10:00:20

QtVisual Stud

2009-12-11 13:14:45

Visual Stud

2009-11-13 14:59:12

Visual Stud

2010-04-06 17:32:02

Visual Stud

2010-04-16 14:08:46

Visual Stud

2011-02-13 17:10:28

Visual Stud
点赞
收藏

51CTO技术栈公众号