从代码中创建层关系图
您可直观高级您的软件系统的逻辑体系结构,通过创建使用最终的 Visual Studio 的 层关系图。 若要确保,您的代码保持一致。此模型,请验证与层关系图的代码在最终的 Visual Studio 或 Visual Studio premium。 可以创建 Visual C# .NET 和 Visual Basic .NET 项目的层关系图。
您希望做什么?
了解有关层关系图
创建层关系图
从项目中创建层
管理层和项目之间的链接
现有依赖关系进行反向工程处理
编辑层和依赖项以显示预期的设计
更改元素如何显示在关系图
了解有关层关系图
层关系图使您可以组织 Visual Studio 解决方案项到逻辑抽象组,调用 层。可以使用层描述这些项目执行的主要任务或系统的主要组件。 每个层可以包含描述更详细任务的其他层。 还可以指定各层之间的预期依赖项或现有依赖 项。 这些依赖项,表示为箭头,显示哪些层可以使用或当前正在使用其他层表示的功能。 若要维护代码的体系结构控件,请在关系图上显示预期的依赖关系然后关系图验证代码。
请参见:
提示
当您创建层关系图时,可以考虑创建依赖项关系图来帮助浏览和理解代码。这些关系图可帮助您发现代码中的群集、模式、自然层和依赖关系。同时还可以轻松地为层分配项目。您还可以使用体系结构资源管理器来浏览命名空间和类,它们通常与现有层具有很好的对应关系。然后,您可以使用层关系图帮助您更新代码。
请参见:
创建层关系图
在创建层关系图之前,请确定您的解决方案具有一个建模项目。 请参见 如何:创建 UML 建模项目和关系图。
重要
不要添加,不要拖动,或复制从一个建模项目的现有层关系图到另一个建模项目或解决方案中另一个位置。这使得从原始关系图,引用,即使更改关系图。当您尝试打开关系图时,还防止层验证正确工作可能导致其他问题,例如缺少元素或其他错误。
相反,请将新的层关系图添加到建模项目。将源关系图中的元素复制到新关系图。保存建模项目和新层关系图。
向建模项目中添加新层关系图
在 体系结构 菜单中,选择 新建关系图。
在 模板下,选择 层关系图。
命名该关系图。
在**“添加到建模项目”**中,浏览到解决方案中的一个现有建模项目,并选择该项目。
- 或 -
选择 新建建模项目 添加一个新的建模项目添加到解决方案。
备注
层关系图必须存在于建模项目内。不过,您可以将项目链接就好像它是在解决方案。
确保保存建模项目和层关系图。
从项目中创建层
可以创建从 Visual Studio 解决方案项目的层,如项目、代码文件、命名空间、选件类和方法。 这会自动创建层之间的链接,以及项目,它们包含在层验证过程。 您可以将层链接到不支持验证的项目,例如 Word 文档或 PowerPoint 演示文稿,因此,您可以将层链接到规范或计划。若要查看一个链接的项目是否支持验证,请打开 层资源管理器 和签出该项目的 支持验证 属性。 项目的管理的链接参见。
若要 |
请执行这些步骤 |
---|---|
为单个项目创建一个层 |
重要事项
拖动到层关系图的二进制文件不会自动将其添加对建模项目。必须手动添加要验证到建模项目的二进制文件。将二进制文件添加到建模项目中
|
为所有选择的项目创建单个层 |
同时将所有项目拖到层关系图。 一个层将出现在关系图上,并链接到所有这些项目。 |
为每个所选的项目创建一个层 |
按住 Shift 键的同时将所有项目同时拖到层关系图上。
说明
如果使用 Shift 键选择一系列项,请在选择了项目之后松开该键。将这些项目拖到关系图上时再次按住该键。
每个项目的层将出现在关系图上,并链接到该项目。 |
向层中添加项目 |
将项目拖到层上。 |
创建新的未链接的层 |
在“工具箱”中,展开“层关系图”部分,然后将“层”拖到层关系图上。 若要添加多个层,请双击该工具。 完成后,选择 指针 工具或按 Esc 键。 - 或 - 打开层关系图的快捷菜单,选择 添加,然后选择 层。 |
创建嵌套的层 |
将现有层拖到另一个层上。 - 或 - 打开层的快捷菜单,选择 添加,然后选择 层。 |
创建包含两个或更多现有层的新层 |
选择层,打开您选择的快捷菜单,然后选择 组。 |
更改层的颜色 |
将其“颜色”属性设置为所需的颜色。 |
指定与层关联的项目必须不属于指定的命名空间 |
在层的“Forbidden Namespaces”属性中键入命名空间。 使用分号 (;) 分隔多个命名空间。 |
指定与层关联的项目不能依赖于指定的命名空间 |
在层的“Forbidden Namespace Dependencies”属性中键入命名空间。 使用分号 (;) 分隔多个命名空间。 |
指定与层关联的项目必须属于某个指定的命名空间 |
在层的“Required Namespaces”属性中键入命名空间。 使用分号 (;) 分隔多个命名空间。 |
层上的数字指示链接到该层的项目数。 但在读取此数字时,请记住以下事项:
如果某个层链接到一个包含其他项目的项目,但该层未直接链接到其他项目,则该数字仅包括链接的项目。 但是,在层验证过程中其他项目包括在分析范围内。
例如,如果一个层链接到单个命名空间,则链接的项目数是 1,即使该命名空间包含类也是如此。 如果该层还链接到命名空间中的每个类,则该数字将包括链接的类。
如果一个层包含链接到项目的其他层,则容器层也链接到这些项目,即使容器层上的数字不包括这些项目。
管理层和项目之间的链接
在层关系图上,打开层的快捷菜单,然后选择 查看链接。
**“层资源管理器”**将显示所选层的项目链接。
使用以下任务管理这些链接:
若要 |
在层资源管理器中 |
---|---|
删除层与项目之间的链接 |
打开项目链接的快捷菜单,然后选择 删除。 |
将链接从一个层移到另一个层 |
将项目链接拖到关系图上的一个现有层。 - 或 -
|
将链接从一个层复制到另一个层 |
|
基于现有项目链接创建一个新层 |
将项目链接拖到关系图上的空白区域。 |
验证链接的项目是否支持对照层关系图的验证。 |
查看项目链接的“支持验证”列。 |
现有依赖关系进行反向工程处理
只要与一个层关联的项目引用与另一个层关联的项目,就存在依赖关系。 例如,一个层中的某个类声明了一个拥有其他层中的某个类的变量。 您可以对关系图上链接到层的项目的现有依赖关系进行反向工程处理。
备注
无法为某些种类的项目对依赖关系进行反向工程处理。例如,对于链接到文本文件的层,将不会对源自或指向该层的依赖关系进行反向工程处理。若要查看哪些项目具有可进行反向工程处理的依赖关系,因此为一个打开快捷菜单或多个层,然后选择 查看链接。在“层资源管理器”中,检查“支持验证”列。对于此列显示“False”的项目,将不会对依赖关系进行反向工程处理。
- 选择一个或多个层,打开所选的层的快捷菜单,然后选择 生成依赖项。
通常,您会看到一些不应存在的依赖关系。 可以编辑这些依赖关系,使它们与预期的设计对齐。
编辑层和依赖项以显示预期的设计
若要描述您计划对系统或计划的体系结构的更改,请编辑层关系图:
若要 |
执行这些步骤 |
---|---|
更改或限制依赖项的方向 |
设置其“方向”属性。 |
创建新的依赖项 |
使用“依赖项”和“双向依赖项”工具。 若要绘制多个依赖关系,请双击该工具。 完成后,选择 指针 工具或按 Esc 键。 |
指定与层关联的项目不能依赖于指定的命名空间 |
在层的“Forbidden Namespace Dependencies”属性中键入命名空间。 使用分号 (;) 分隔多个命名空间。 |
指定与层关联的项目必须不属于指定的命名空间 |
在层的“Forbidden Namespaces”属性中键入命名空间。 使用分号 (;) 分隔多个命名空间。 |
指定与层关联的项目必须属于某个指定的命名空间 |
在层的“Required Namespaces”属性中键入命名空间。 使用分号 (;) 分隔多个命名空间。 |
更改元素如何显示在关系图
可以通过编辑其属性更改层或依赖项的颜色的大小、形状、颜色和位置。