Share via


Design Data in the System Definition Model

Design Data in the System Definition Model

The .sdmdocument files that are used to create new systems (applications or logical servers), endpoints, and resources must contain certain design data that allows them to load and display correctly in Distributed System Designers. Design data is stored in the DesignData element in the .sdmdocument file.

This topic explains the various design data that are associated with each definition element. It also provides an explanation of description data, which are localized and are stored in the Description element.

The Required column indicates whether the particular property element in the Design Data is required by Distributed System Designers. The SDM schema does not impose these requirements.

  • SystemDefinitionModel Design Data
  • SystemDefinition Design Data
  • EndpointDefinition Design Data
  • SettingDeclaration Design Data
  • ContainmentDefinition Design Data
  • ResourceDefinition Design Data
  • Design Data Examples

SystemDefinitionModel Design Data

The following table lists the design data associated with the SystemDefinitionModel element.

Property Required? Description
DocumentType Yes Indicates the class of types found in the SDM document. Use a value of "AbstractTypes" for all definitions (applications, logical servers, endpoints, resources, and so on).

SystemDefinition Design Data

The following table lists the design data associated with the SystemDefinition (SystemDefinitionModel) and SystemDefinition (ObjectDefinition) elements.

Property Required? Description
PrimaryRelationshipName Yes For applications or logical servers, specify a value of "HostingDefinition". This item indicates that the designer should look at hosting definitions; the PrimaryRelationshipRole property indicates how the hosting definitions should be interpreted.
PrimaryRelationshipRole Yes For an application set to a value of "Guest"; for logical server set to a value of "Host". If you set the value to "Guest" for a logical server, but compile the layer as an application with the ProtoGen.exe tool, the prototype will show in the Toolbox, but the Settings and Constraints Editor will not work properly.
DisplayName No Place in the Description element, not in the DesignData element. It contains the display name for the type. This property identifies the type of the application. For example, "GenericApplication". If a value is not specified, it will use the Name attribute of the SystemDefinitionModel element.
DefaultRootName No The default name when you drag the prototype from the Toolbox. Defaults to DisplayName. For example, "Application1" or "LogicalServer1".
ThemeColor No Application or logical server color in HSL format. For example, 10, 157, 163 (generic application color).
ImageFileName No Image file that displays inside the application or logical server shape. This value must be a .emf or .bmp file. The property uses the default image if a value is not specified. The .emf or .bmp file must be located in the same directory as the .sdmdocument. The transparent color of a bitmap is the color of the upper-left pixel.
ErrorImageFileName No Image that shows when a validation error occurs. If a value is not specified, it defaults to the ImageFileName property. The .emf or .bmp file must be located in the same directory as the .sdmdocument. The transparent color of a bitmap is the color of the upper-left pixel.
Report Yes, required for system definitions. Outputs the data for the system to a deployment report. The value can be either "LogicalServer" or "Application".

EndpointDefinition Design Data

The following table lists the design data associated with the EndpointDefinition (SystemDefinitionModel) and EndpointDefinition (ObjectDefinition) elements.

Property Required? Description
PrimaryRelationshipName Yes Specify a value of "HostingDefinition". This item indicates that the designer should look at hosting definitions; the PrimaryRelationshipRole property indicates how the hosting definitions should be interpreted. The PrimaryRelationshipName value for ZoneEndpoint is ContainmentParent.
PrimaryRelationshipRole Yes Specify a value of "Guest" for application layer and "Host" for server layer.
DisplayName No Place in the Description element, not in the DesignData element. This property defaults to the Name attribute of the EndpointDefinition element. An example is "GenericProviderEndpoint".
DefaultRootName No Default name when you drag the prototype from the toolbox. For example, "Endpoint1". Defaults to the DisplayName.
Direction Yes Specify a value of "Client", "Server", or "Bidirectional". If it is a consumer endpoint, the value must be "Client"; if it is a provider, the value must be "Server". Only use "Bidirectional" with Zone.
ThemeColor No Endpoint color in HSL format. For example, 10, 157, 163 (generic application color).
ImageFileName No Image file that displays inside the endpoint shape. Must be a .emf or .bmp file. Uses the default image if a value is not specified. The .emf or .bmp file must be located in the same directory as the .sdmdocument. The transparent color of a bitmap is the color of the upper-left pixel.
Geometry No "General"(square), "WebService" (circle), "WebContent" (square), "Database" (hexagon). For "Zone", the default value is a square shape. For server color, the ThemeColor is the fill color. For client color, ThemeColor is not required.

SettingDeclaration Design Data

The following table lists the design data associated with the SettingDeclaration element.

Property Required? Description
Category No Place in the Description element, not in the DesignData element. Category that shows in the right pane of the Settings and Constraints Editor. If a value is not specified, this property defaults to Settings.
ShowInPropertyGrid No true if the setting shows in the Properties window; otherwise, false.
DisplayName No Place in the Description element, not in the DesignData element. Name used in the Settings and Constraints Editor. If a value is not specified, this property defaults to the Name attribute of the SettingDeclaration element.

ContainmentDefinition Design Data

The following table lists the design data associated with the ContainmentDefinition (SystemDefinitionModel) and ContainmentDefinition (ObjectDefinition) elements.

Property Required? Description
DefaultRootName Yes Name that the endpoint receives when it is dropped onto the system that contains it. For example, the DefualtRootName property value enables an ExternalWebService to contain ExternalWebService1, rather than WebService1. Overrides the DefaultRootName on EndpointDefinition.
UserConstrainable Yes true if the user can constrain an item in the resource list; otherwise, false. The default is true. This property is only used with resource containments.
SupportsUserCreation No true if the user can add a resource of that type; otherwise, false. The default is true. Primarily used with resource containments. While a designer can create ContainmentDefinitions, this property allows you to stop the user from creating them.
SupportsMultipleDelegation No The default is false. This property must be false.
SupportsRecursiveConnection No true if an application can connect to itself. The default is true.

ResourceDefinition Design Data

The following table lists the design data associated with the ResourceDefinition (SystemDefinitionModel) and ResourceDefinition (ObjectDefinition) elements.

Property Required? Description
PrimaryRelationshipName NA Unused.
PrimaryRelationshipRole NA Unused.
DisplayName No Defaults to the Name attribute of the ResourceDefinition element.
DefaultRootName No Defaults to the DisplayName.

Design Data Examples

The following code example shows how the Description element is used in comparison to the DesignData element for an endpoint definition.

<EndpointDefinition Name="GenericClientEndpoint" Layer="ApplicationHost" Extends="System:EndpointDefinition" Abstract="true">
      <Description>
         <Entry 
          Name="DisplayName" 
          ResourceId="GenericClientEndpoint.DisplayName" 
          Manager="GenericManager">GenericClientEndpoint</Entry>
         <Entry 
          Name="Description" 
          ResourceId="GenericClientEndpoint.Description" 
          Manager="GenericManager">
          Defines the connection point through which 
          a Generic server consumes services from other applications.
         </Entry>
      </Description>
      <DesignData>
         <VisualStudio 
          xmlns="https://schemas.microsoft.com/SystemDefinitionModel/2005/1/DesignData/VisualStudio">
            <ModelElement>
               <Property 
                Name="PrimaryRelationshipName" 
                Value="HostingDefinition" />
               <Property 
                Name="PrimaryRelationshipRole" 
                Value="Host" />
               <Property 
                Name="DefaultRootName" 
                Value="ClientEndpoint1" />
               <Property 
                Name="Direction" 
                Value="Client" />
               <Property 
                Name="ThemeColor" 
                Value="34, 83, 213" />
               <Property 
                Name="Geometry" 
                Value="General" />
            </ModelElement>
         </VisualStudio>
      </DesignData>
</EndpointDefinition>

The following code example shows the Description element and DesignData element in a setting declaration.

<SettingDeclaration 
 Name="Protocol" 
 Definition="System:String" 
 CanBeNull="true">
         <Description>
            <Entry 
             Name="DisplayName" 
             ResourceId="GenericApplicationEndpoint.Protocol.DisplayName" 
             Manager="GenericManager">
             Protocol
            </Entry>
            <Entry 
             Name="Category" 
             ResourceId="GenericApplicationEndpoint.Protocol.Category" 
             Manager="GenericManager">
             Communications
            </Entry>
            <Entry 
             Name="Description" 
             ResourceId="GenericApplicationEndpoint.Protocol.Description" 
             Manager="GenericManager">
             The communication protocol used on the endpoint.
           </Entry>
         </Description>
         <DesignData>
            <VisualStudio 
             xmlns="https://schemas.microsoft.com/SystemDefinitionModel/2005/1/DesignData/VisualStudio">
               <ModelElement>
                  <Property Name="ShowInPropertyGrid" Value="true" />
               </ModelElement>
            </VisualStudio>
         </DesignData>
</SettingDeclaration>

See Also

How to: Create an SDM EndPoint
DesignData Complex Type
DesignData (Definition) Element
DesignData (Member) Element
DesignData (StructuralConstraint) Element
DesignData (SystemDefinitionModel) Element

Send comments about this topic to Microsoft

Build date: 10/2/2007