使用Visual Studio 2010进行架构验证
创始人
2024-06-23 18:40:47
0

【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开发功能

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...