This documentation is archived and is not being maintained.

Overview of Application Designer

In Visual Studio Team System Architecture Edition, you can use Application Designer to define and visualize applications that can provide services or use these services within the scope of a Visual Studio solution. You can configure these applications as required by your development environment. For example, you can define ASP.NET applications that provide Web services and Windows or Office applications that call Web services.

Using Application Designer, you can accomplish the following high-level tasks:

  • Visualize and define applications using a diagram surface.

  • Reverse-engineer existing solutions.

  • Specify settings and constraints on applications.

  • Define Web service and database communication between applications.

  • Document other types of communication between applications.

  • Expand the set of application types and prototypes you can use to define applications.

After defining applications, you can perform the following tasks:

  • Evaluate applications for deployment using their development configurations.

  • Design reusable application systems as units of deployment using System Designer.

  • Implement applications that support implementation.

The following sections contain more information about performing these tasks in Application Designer:

Before you can begin defining applications with Application Designer, you must either create a Visual Studio solution that contains a blank application diagram or add an application diagram to a blank or existing solution. When you add an application diagram to an existing solution, applications will reverse-engineer onto the diagram if the appropriate projects exist in the solution. You can then define, visualize, or review applications on the diagram.

In conjunction with other diagrams in Distributed System Designers, the application diagram makes it possible for you to specify, configure, validate, and communicate application requirements and constraints as needed in your development environment. These diagrams also help facilitate communication between application and infrastructure architects. For more information, see Relationships Between System Definition Model (SDM) Documents.

The following illustrations show Application Designer and the application diagram.

Application Designer

Application Designer

Application diagram

Application diagram

For more information, see the following topics:

To begin defining applications using Application Designer, see the following topics:

In Application Designer, you can use the Settings and Constraints Editor to configure settings on an application definition as required for use in the development environment and define constraints on the run-time environment. You can also designate certain settings as overridable. You can then use System Designer to design systems that contain uses of those definitions as members and configure them for deployment. You can also override those settings that are designated as overridable on each use if required. In contrast, constraints are static and apply to all uses of an application. For example, you can constrain the types of logical servers that can host an application. When you define and evaluate deployment for applications in the target datacenter, Visual Studio evaluates these settings and constraints against those set on logical servers. You can constrain the types of applications that those logical servers can host by specifying these settings and constraints on a logical datacenter diagram.

The Settings and Constraints Editor organizes application settings into logical groups, known as resources. You can add these resources to applications as needed. The default settings on an application correlate to the sections in the application configuration (.config) file. Visual Studio generates this configuration file when you implement an application. Application settings that you explicitly set also appear in the application configuration file.


Custom resources defined by using the System Definition Model (SDM) Software Development Kit (SDK), custom settings, and IIS metabase settings do not correlate with any sections in the application configuration file.

For more information, see the following topics:

You can configure communication pathways between applications on the application diagram by connecting their endpoints. On the application diagram, connections represent how applications connect to each other in the development environment, based on the configuration of their consumer endpoints. For more information, see Communication Between Applications.

Endpoints identify and provide connection points at which applications provide or use services. You can add or remove endpoints as needed. Provider endpoints appear as small solid shapes on applications. Consumer endpoints appear as small hollow shapes. A provider endpoint defines a location at which an application provides a service. A connection between a provider endpoint and a consumer endpoint indicates that the consumer endpoint is configured with the location of the provider endpoint. Connections appear as lines with arrows, indicating the direction of communication from a consumer endpoint to a provider endpoint. For more information, see Overview of Endpoints on Applications.

You can extend the set of application types and the corresponding prototypes that you use to define applications in the following ways:

  • Create prototypes from single or sets of configured applications and endpoints on the application diagram. You can also share these prototypes with others.

  • Add custom settings, resources, and endpoints to existing applications and then create prototypes from those applications.

  • Install new prototypes based on other application types.

For more information, see Extending Distributed System Designers.

In Distributed System Designers, application systems describe specific and reusable configurations of applications and other systems as members. You can configure these members for deployment and describe the communication pathways between them. You can also override settings on applications as required, if you designate those settings as overridable. You can reuse a system in other systems. This capability allows you to abstract the details of the system's members and makes it possible for you to design larger and more complex systems.

You can design systems by creating system diagrams in System Designer. Each system diagram defines a single system. After you design a system, you can define and evaluate deployment for that system. You can perform this task by validating the system against a logical datacenter by using Deployment Designer. For more information, see Overview of Distributed System Designers and Workflow Across Distributed System Designers.

You can evaluate deployment for applications early in the design process. You can evaluate them exactly as you configure them for the development environment. By evaluating applications early, you can discover whether any configuration or connection issues might exist.


When you want to evaluate applications for actual deployment, use System Designer to design systems that contain the applications or other systems that you want to include, configure, and connect for deployment. When you evaluate applications on the application diagram, you do not need to design a system for those applications. By default, Visual Studio creates and maintains a hidden system that contains all the applications on the application diagram.

When you want to define and evaluate deployment for applications, you will need a logical datacenter diagram. This diagram is a logical representation of the application hosting capabilities of the target datacenter. You can create this diagram by using Logical Datacenter Designer or add an existing one to your solution. You can then create a deployment diagram so that you can define how applications will deploy to logical servers in that logical datacenter. You can evaluate deployment by validating that deployment diagram against the logical datacenter. You can review the results from the validation process for issues that you might not have discovered until deployment, preventing costly changes at a later time. For more information, see Evaluating System Deployment with Deployment Designer.

You can define applications without committing your changes to code before you implement those applications. For applications that support implementation, Visual Studio stores their System Definition Model (SDM) definitions in the application diagram (.ad) file. For applications that do not support implementation, Visual Studio adds their SDM definitions as .sdm files to the solution immediately. For more information, see Overview of the System Definition Model (SDM) and Application Types and Prototypes for Defining Applications.

When you are satisfied with your application design, you can implement the applications that support implementation so that development teams can start defining applications in code. When you implement applications, Visual Studio creates skeleton implementations by generating the appropriate projects in your solution. These projects include the appropriate code or class files, configuration files, and any other needed resources. After implementation, the code becomes the master definition and changes made between diagram and code files synchronize with each other. You can implement applications individually or as a group. There is no requirement for application design to be complete before you begin implementing and testing parts of yours solution.

For more information, see the following topics: