Relationships Between System Definition Model (SDM) Documents
In Visual Studio Team System Architecture Edition, you can use the Distributed System Designers to define applications, design application systems, and design logical datacenters. You can then evaluate deployment for these application systems by validating them against datacenter models. You can perform these tasks by creating and maintaining a set of interrelated diagrams and documents that are based on the System Definition Model (SDM) or SDM documents. Typically, the definitions created in one document, for example, application definitions, are referenced by other documents. For more information, see Overview of the System Definition Model (SDM).
You can begin using the Distributed System Designers by creating distributed systems solutions. Architecture Edition includes solution templates that you can use to create distributed systems solutions. A distributed systems solution typically contains or can contain the following items:
A single application diagram (.ad file)
One or more system diagrams (.sd files)
One or more logical datacenter diagrams (.ldd files)
One or more deployment diagrams (.dd files)
System Definition Model (SDM) documents (.sdm files) for externally implemented application definitions
Projects containing code files, configuration files, other related files, and SDM documents for internally implemented application definitions
The following sections contain more information about distributed system diagrams and their relationships between each other.
When you begin with the Application Design solution template, Visual Studio creates a distributed systems solution that contains a single application diagram. You can visualize and define supported applications and their connections in the development environment on this diagram by using Application Designer. The level of support for defining, configuring, and evaluating applications for deployment using Distributed System Designers will vary depending on the application type. In addition, the implementations for these applications can exist inside or outside the solution. You can design application systems from these application definitions by creating system diagrams. The systems that you design will contain the applications that you select as members. You can configure and connect these members separately and independently from their definitions for the deployment environment.
If an application definition supports implementation, the application diagram stores the SDM information for that application before you implement it. After you implement an application definition, Visual Studio stores its SDM information as its own .sdm file in the corresponding project. Visual Studio stores the SDM information for applications that you do not implement, such as external Web services, as their own individual .sdm files in the solution.
For more information, see Designing Applications with Application Designer.
When you begin with the System Design solution template, Visual Studio creates a distributed systems solution that contains a system diagram and an application diagram. You can design an application system on this system diagram by using System Designer. A system diagram represents the definition of a single application system. You can add new or existing applications and systems as members. If you add a new application as a member, its definition appears on the application diagram. If you add a new system as a member, Visual Studio creates a new system diagram for that member's definition. A system diagram stores the SDM information for a particular system as well as references to the SDM information for its members.
For more information, see Designing Application Systems with System Designer.
Logical Datacenter Diagrams
When you begin with the Logical Datacenter Design solution template, Visual Studio creates a distributed systems solution that contains a logical datacenter diagram. You can design a logical datacenter on this diagram by using Logical Datacenter Designer. You can add logical servers, zones, and connections to create a logical representation of a target datacenter. You can add multiple logical datacenter diagrams to a distributed systems solution. A logical datacenter diagram stores the SDM information for a particular logical datacenter.
For more information, see Representing Datacenters with Logical Datacenter Designer.
When you define deployment for a particular system against a specific logical datacenter, Visual Studio adds a deployment diagram to your distributed systems solution. You can define deployment on this diagram by using Deployment Designer to bind applications in your system to logical servers and validate that deployment. You can create multiple deployment diagrams. A deployment diagram stores the SDM information that describes deployment for a particular system to a specific logical datacenter. The deployment diagram also stores references to the SDM information for that system and logical datacenter.
For more information, see Evaluating System Deployment with Deployment Designer.
For a distributed system diagram or SDM document to compile and validate correctly, all referenced documents must be available in the solution, and all definitions referenced in those documents must be present.
The following list describes references that these diagrams contain:
The application diagram contains references to one or more application definitions.
A system diagram contains references to application definitions and other system definitions.
A deployment diagram contains references to a single system definition and a single logical datacenter definition.
Visual Studio resolves all references in distributed system diagrams based on names instead of Globally Unique Identifiers (GUIDs) or other cryptic identifiers. Changes that you make to a definition are available to any document that references that definition as long as Visual Studio can locate the definition. When Distributed System Designers attempt to locate referenced definitions, it searches the solution for definitions of the requested type and name in documents of the appropriate type (or extension) and document namespace. As a result, renaming the file name of a referenced document does not break references.
Loading and Locating Referenced SDM Documents
Distributed System Designers load a distributed system diagram into memory when you open it or when another open diagram references it. The designers will load the referenced definition files if the diagram is not open or is not referenced by another open document. The designers will open a referenced diagram only when you request it, even if they have already loaded the document into memory.
If the designers locate the referenced document successfully, the referenced definition appears in the diagram that references that definition, and its properties appear in the Properties window. However, you cannot edit those properties.
If the designers cannot locate the referenced document, or if the definition is missing from the document, the definition will then appear with a dashed outline and a squiggly line beneath its name to indicate a missing or orphaned definition. The Properties window will not display the properties for the missing definition.