构造建模解决方案

若要在一个开发项目中有效地使用模型,团队成员必须能够同时在该项目的不同部分的模型上工作。 本主题建议了一种方案,即将应用程序划分成与总体分层关系图中的各个层相对应的不同部分。

若要快速启动一个项目或子项目,使用遵循您已选定的项目结构的项目模板会很有帮助。 本主题描述如何创建和使用此类模板。

本主题假定您正在处理的项目足够大,需要几个团队成员也许是几个团队参与其中。 项目的代码和模型存储在源代码管理系统中,如 Team Foundation Server。 至少某些团队成员使用最终的Visual Studio开发模型,通过使用其他 Visual Studio 版本,同时,其他团队成员可以查看模型。

解决方案结构

在大中型项目中,团队的结构基于应用程序的结构。 每个团队均使用一个 Visual Studio 解决方案。

将应用程序划分成层

  1. 将解决方案的结构建立在应用程序(例如,Web 应用程序、服务应用程序或桌面应用程序)的结构之上。 pplication Archetypes in the Microsoft Application Architecture Guide(Microsoft 应用程序体系结构指南中的应用程序原型)中讨论了各种常用的体系结构。

  2. 创建一个称为“体系结构”解决方案的 Visual Studio 解决方案。 此解决方案将用于创建系统的整体设计。 它将包含模型,但不包含代码。

    向此解决方案中添加层关系图。 在层关系图上,绘制您已为应用程序选择的体系结构。 例如,关系图可能显示以下层及相互之间的依赖关系:演示、业务逻辑和数据。

    您可通过使用**“体系结构”菜单上的“新建关系图”**命令,同时创建层关系图和新的 Visual Studio 解决方案。

  3. 添加到体系结构模型 UML 关系图,这些关系图表示引用到所有层设计中的重要业务概念和用例。

  4. 为体系结构层关系图中的每一层创建一个单独的 Visual Studio 解决方案。

    这些解决方案将用于开发层代码。

  5. 创建 UML 模型来表示层的设计和所有层的常见概念。 排列模型,以便可以从体系结构解决方案中看到所有模型,并可以从每一层看到相关模型。

    通过使用以下任一过程,您可实现这一点。 第一种替代方法将为每一层创建一个单独的建模项目,第二种替代方法将创建单个可在各层之间共享的建模项目。

    为每一层使用单独的建模项目

    1. 在每个层解决方案中创建一个建模项目。

      此模型将包含描述相应层的需求和设计的 UML 关系图。 它还可以包含显示嵌套层的层关系图。

      现在每一层都有一个模型,应用程序体系结构也有一个模型。 每个模型均包含在各自的解决方案中。 这样使团队成员能够同时在各个层上工作。

    2. 在体系结构解决方案中,添加每个层解决方案的建模项目。 为此,请打开体系结构解决方案。 在解决方案资源管理器中,右击解决方案节点,指向“添加”,然后单击**“现有项目”**。 导航到一个层解决方案中的建模项目 (.modelproj)。

      每个模型现在均在两个解决方案中可见:模型的“主”解决方案和体系结构解决方案。

    3. 在每层的建模项目中添加层关系图。 首先复制体系结构层关系图。 您可以删除不属于层关系图的依赖项的部分。

      您还可以添加表示此层的详细结构的层关系图。

      这些关系图用于验证在此层中开发的代码。

    4. 在体系结构解决方案中,通过使用 Visual Studio 旗舰版编辑所有层的需求和设计模型。

      在每个层解决方案中,引用模型并开发对应层的代码。 如果您不打算通过使用同一台计算机更新模型来进行开发,则可以使用 Visual Studio 高级专业版来读取模型和开发代码。 您还可以在 Visual Studio 高级专业版中从模型生成代码。

    此方法可保证同时编辑层模型的开发人员相互之间不会干扰。

    但是,由于各模型是独立的,很难引用通用概念。 每个模型都必须有自己的元素副本,其他层和体系结构借助这些元素与相应模型产生依赖关系。 每一层中的层关系图必须与体系结构层关系图保持同步。 当这些元素发生更改时,很难维护同步,尽管您可以开发工具来实现这一点。

    为每一层使用单独的包

    1. 在每层的解决方案中,添加体系结构建模项目。 在解决方案资源管理器中,右击解决方案节点,指向**“添加”,然后单击“现有项目”**。 现在从每个解决方案中均可访问这个单一建模项目:体系结构项目以及每层的开发项目。

    2. 在共享的 UML 模型中,为每层创建一个包:在解决方案资源管理器中,选择建模项目。 在 UML 模型资源管理器中,右击模型根节点,指向**“添加”,然后单击“包”**。

      每个包将包含描述对应层的需求和设计的 UML 关系图。

    3. 如果需要,可为每层的内部结构添加本地层关系图。

    此方法允许每层的设计元素直接引用其依赖的各个层和公共体系结构的设计元素。

    尽管对不同包的并发操作可导致一些冲突,但这些冲突很易于管理,因为包存储在单独的文件中。 主要困难是由删除依赖包所引用的元素导致的。 有关更多信息,请参见管理版本控制下的模型和关系图

创建体系结构模板

实际操作中,您将不会同时创建所有 Visual Studio 解决方案,而是将它们以项目进度的形式添加。 您还可能在将来的项目中使用相同的解决方案结构。 为了帮助您快速创建新的解决方案,您可以创建一个解决方案或项目模板。 可以将模板保存为 Visual Studio 集成扩展 (VSIX) 格式,以便能够轻松在其他计算机上分发和安装该模板。

例如,如果您频繁使用具有演示、业务和数据层的解决方案,则可以配置一个模板来创建具有这种结构的新解决方案。

创建解决方案模板

  1. Download and install the Export Template Wizard(下载并安装导出模板向导)(如果您尚未这么做)。

  2. 创建您希望用作将来项目的起始点的解决方案结构。

  3. 在**“文件”菜单上,单击“将模板导出为 VSIX”。 随即打开“将模板导出为 VSIX 向导”**。

  4. 按照该向导中的说明,选择您要包括在模板中的项目,提供模板的名称和说明,并指定输出位置。

备注

本主题中的材料取材于 Visual Studio ALM Rangers 编写的“Visual Studio 2010 体系结构工具指南”并有所改动,该指南是由最有价值专家 (MVP)、Microsoft 服务部门与 Visual Studio 产品团队和编写者合著的。单击此处下载完整指南包。

相关材料

组织和管理模型 - Clint Edmondson 提供的视频。

Visual Studio 体系结构工具指南 – 有关管理团队中的模型的进一步指导

请参见

参考

管理版本控制下的模型和关系图

概念

在开发过程中使用模型