Application Types and Prototypes for Defining Applications

In Application Designer, the Toolbox includes predefined application prototypes that you can use to define applications. An application prototype defines a preconfigured application of a specific application type. For example, you can begin defining an ASP.NET application that exposes a Web service by dragging the ASP.NETWebService prototype from the Toolbox to the application diagram. This action creates an ASP.NET application that has a default .NET Web Service provider endpoint. For application types that support implementation, Visual Studio generates the appropriate projects when you implement them so that you can continue defining these applications in code. You can also create custom prototypes from applications and endpoints already configured on the application diagram as well as expand the set of application types and prototypes you can use by installing packages supplied by Microsoft or third-parties or by creating them using the System Definition Model (SDM) Software Development Kit (SDK).

The following sections contain more information about application prototypes:

  • Application Types and Prototypes

  • Defining ASP.NET Applications

  • Defining Windows and Office Applications

  • Representing External Applications

  • Representing Unsupported or Unspecified Application Types

  • Creating and Adding Custom Prototypes to the Toolbox

  • Adding and Extending Application Types

Application Types and Prototypes

The following table summarizes and describes the application types available in Application Designer, endpoint types supported by these application types, implementation support if available, and the type of project generated. You can add support for additional application types and endpoint types on those application types using the SDM SDK or as a result of installing a third-party package. For more information, see Creating and Adding Custom Prototypes to the Toolbox and Adding and Extending Application Types.

Application type

Description

Supported endpoint types

Supports implementation?

Project type

ASP.NET Web application

Defines an ASP.NET application.

  • Web service provider and consumer endpoints.

  • Web content provider and consumer endpoints.

  • Database consumer endpoints.

  • Generic provider and consumer endpoints.

Yes. Web service and database consumer endpoints on this application also support implementation.

ASP.NET Web site

External database

Represents a database.

  • Database provider endpoint (single and mandatory) and consumer endpoints.

  • Generic provider and consumer endpoints.

  • Web service consumer endpoints.

  • Web content consumer endpoints.

No

Not applicable

External BizTalk Web service

Represents an external Web service that is known to be a BizTalk Web service.

  • Web service provider endpoint (single and mandatory) and consumer endpoints.

  • Generic provider and consumer endpoints.

  • Database consumer endpoints.

  • Web content consumer endpoints.

No

Not applicable

External Web service

Represents an external Web service as defined by a Web Services Description Language (WSDL) file with a single WSDL binding and has a default Web service provider endpoint.

  • Web service provider endpoint (single and mandatory) and consumer endpoints.

  • Generic provider and consumer endpoints.

  • Database consumer endpoints.

  • Web content consumer endpoints.

No

Not applicable

Generic application

Represents an unsupported or unspecified application. Exists for documentation purposes only.

  • Generic provider and consumer endpoints.

  • Database consumer endpoints.

  • Web service consumer endpoints.

  • Web content consumer endpoints.

No

Not applicable

Office application

Defines a Microsoft Office application and supports Excel, Outlook, and Word templates.

  • Generic provider and consumer endpoints.

  • Database consumer endpoints.

  • Web service consumer endpoints.

  • Web content consumer endpoints.

Yes. Web service and database consumer endpoints on this application also support implementation.

Office

Windows application

Defines a Microsoft Windows application and supports console application, Windows application, and Windows service templates.

  • Generic provider and consumer endpoints.

  • Database consumer endpoints.

  • Web service consumer endpoints.

  • Web content consumer endpoints.

Yes. Web service endpoints and database consumer endpoints on this application also support implementation.

Windows

The following table summarizes the predefined application prototypes available in the Toolbox, the application type created, default endpoints on those prototypes, and the default project template and language. You can also add prototypes by creating them from applications already configured on the application diagram, by installing the necessary prototype files produced by the SDM SDK, or by installing third-party packages that define new application types. For more information, see Creating and Adding Custom Prototypes to the Toolbox and Adding and Extending Application Types.

Application prototype

Application type created

Default endpoints

Default project template

Default language

ASP.NETWebApplication

ASP.NET Web application

Web content provider endpoint

ASP.NET Web Site

Visual Basic

ASP.NETWebService

ASP.NET Web application

.NET Web Service provider endpoint

Empty Web Site

Visual Basic

ExternalDatabase

External database

Database provider endpoint

Not applicable

Not applicable

BizTalkWebService

External BizTalk Web service

Web service provider endpoint

Not applicable

Not applicable

ExternalWebService

External Web service

Web service provider endpoint

Not applicable

Not applicable

GenericApplication

Generic application

None

Not applicable

Not applicable

OfficeApplication

Office application

None

Excel Workbook

Visual Basic

WindowsApplication

Windows application

None

Windows Application

Visual Basic

For more information, see the following topics:

Defining ASP.NET Applications

You can add ASP.NET applications that expose Web content, .asmx file-based Web services, or both to the application diagram by using the ASP.NETWebApplication or ASP.NETWebService prototypes, respectively. Both these prototypes create ASP.NET Web applications. However, the ASP.NETWebService prototype creates an application with a default .NET Web Service provider endpoint, while the ASP.NET WebApplication prototype creates an application with a default Web content provider endpoint. You can add Web service or Web content endpoints to an ASP.NET Web application once it's created, regardless of the initial prototype used. You can also define operations for each Web service provider endpoint on an ASP.NET Web application. Operations correspond to Web methods in the underlying Web service class. ASP.NET Web applications support implementation in your solution. For more information, see Overview of ASP.NET Applications on Application Diagrams.

Support for ASP.NET Development Server Web Projects

Distributed System Designers support ASP.NET applications running on ASP.NET Development Server as well as Internet Information Services (IIS). By default, ASP.NET applications are ASP.NET Development Server Web projects (file system-based) as opposed to IIS Web projects (HTTP-based).

Note

For solutions checked into source code control, checking out an application diagram assigns new ports to Web services on ASP.NET applications, if those applications are implemented as file system-based and are connected to implemented consumer applications. This action requires updating the Web service references associated with those consumer applications and requires checking out the associated consumer application projects. However, you can avoid this situation by specifying that those projects do not use dynamic ports.

You can migrate ASP.NET Web applications that are implemented as ASP.NET Development server Web projects to IIS at a later time without any data loss. However, some limitations exist when with ASP.NET Development Server. For more information, see the following topics:

Support for Web Services Enhancements (WSE)

You can use versions of WSE 3.0 with applications built using Distributed System Designers. However, Distributed System Designers does not offer integration with WSE 3.0 or earlier versions. For example, settings and constraints for WSE are not available for editing in the Settings and Constraints Editor, nor can WSE configuration and policy sections in application configuration files be edited using the Settings and Constraints Editor. For more information, visit the Web Services Enhancements page on MSDN online at https://go.microsoft.com/fwlink/?LinkID=45743.

Defining Windows and Office Applications

You can define Microsoft Windows and Office applications by using the WindowsApplication and OfficeApplication prototypes, respectively. Windows and Office applications support implementation in your solution. All Windows and Office projects include an App.config configuration file.

For more information, see the following topics:

Representing External Applications

You can represent applications that are referenced by other applications but that are not implemented in your solution nor planned for deployment as part of any application systems that you design and compose from applications in the solution. Though these applications are called "external" because they are technically external to a system in the context of implementation and deployment, you can still include these applications as part of a system design. Including external applications in a system makes it possible for you to validate communication pathways to and from these applications when you define and validate deployment for the system. When the system is eventually deployed, references to external applications must be resolved with the actual deployment location of these applications.

The applications that you can represent as "external" include the following:

  • External Web services.

  • BizTalk Web services.

  • Databases

    Note

    Though databases are represented as "external" and have no support for implementation, there is no requirement or implication that databases are not deployed with the systems that use them.

The following sections contain more about these external applications.

  • Representing External Web Services and BizTalk Web Services

  • Representing Databases

Representing External Web Services and BizTalk Web Services

You can add external Web services and BizTalk Web services to the application diagram by using the ExternalWebService and BizTalkWebService prototypes. In Distributed System Designers, the creation and behavior of external Web services and BizTalk Web services is the same. The BizTalk Web service application type makes it possible to document a referenced Web service that is known to provide access to a BizTalk application. In addition, infrastructure architects can use Logical Datacenter Designer to define application hosting constraints that selectively enable or disable hosting of external Web services and BizTalk Web services on specific logical servers.

Note

Though the procedure for defining a BizTalk Web service is the same as defining an external Web service, make sure that the referenced Web service is actually a BizTalk Web service.

When you add a BizTalk Web service or external Web service to the application diagram, you must specify the location of a WSDL file that describes the Web service. After the external Web service or BizTalk Web service is added to the diagram, you can view its Web service operations; however, you cannot edit those operations.

For more information, see the following topics:

Representing Databases

You can add databases to the application diagram by using the ExternalDatabase prototype. Adding an external database to the application diagram makes it possible for you to document the existence of a database, visualize connections to it, and most importantly, create database consumer endpoints on connected applications. You can then configure a database connection string for each database consumer endpoint to create the appropriate entry in the consumer application's configuration file, which is generated once the consumer application is implemented. For more information, see How to: Configure Connections to External Databases.

Note

External databases make it possible for you to document references to databases. There is no requirement that database connection strings for database consumer endpoints that are connected to the same database need to be the same or specify the same physical database, although it is a best practice to make sure that they do.

Representing Unsupported or Non-specific Application Types

You can add application types that are of unsupported or non-specific type to the application diagram by using the GenericApplication prototype. You can connect generic applications to other applications, specify user-defined or custom settings, and add generic endpoints as well as other supported consumer endpoint types. You can include generic applications in system definitions and bind them to generic logical servers when defining deployment. Adding generic endpoints make it possible for you to document communication between applications that use unsupported communication protocols.

Generic applications do not support the following:

  • Implementation or association with projects.

  • Synchronization with projects.

  • Configuration or validation of application and endpoint constraints.

For more information, see the following topics:

Creating and Adding Custom Prototypes to the Toolbox

Custom prototypes make it possible for you to define applications and endpoints using those already configured on the application diagram. Custom prototypes include all the properties, configurations, and settings that exist on applications and endpoints when you use them to create custom prototypes.

You can create custom prototypes from single or multiple applications or endpoints. When you create custom prototypes, they are added to the Toolbox. You can also share custom prototypes with other users. For more information, see How to: Create Custom Prototypes from Configured Applications and Endpoints.

Adding and Extending Application Types

You can expand the set of application types and prototypes used to define applications by installing packages supplied by Microsoft or third-parties or by creating them using the System Definition Model (SDM) Software Development Kit (SDK). Each new application type will include one or more prototypes that are added to the Toolbox. For more information, see the SDM SDK documentation.

Note

New application types must always be installed and loaded in advance, while new application prototypes can be installed and loaded in advance or created directly from applications on the application diagram. Prototypes created by the SDM SDK do not support code generation or synchronization. However, as an extensibility feature, this functionality can be added using add-ins and Visual Studio packages created using the Visual Studio SDK as well as Visual Studio custom project templates. For more information, see the Visual Studio SDK documentation and Assigning Project Templates to Applications on Application Diagrams.

See Also

Tasks

Walkthrough: Defining Applications on Application Diagrams

Concepts

Overview of Application Designer

Other Resources

Defining Applications on Application Diagrams