Initially, the toolbox contains pre-configured reusable application and endpoint prototypes for common applications such as Web services, web applications, Windows applications, and external databases (see Figure 2-1). Your list might not be exactly the same as the one shown in Figure 2-1; and you can add new prototypes to the toolbox yourself, as you'll see later.
So that you're familiar with those prototypes as you encounter them, we'll provide a brief description of each one. Our descriptions are arranged into three sets: General Designer, Endpoints, and Applications to match the layout of the toolbox shown in Figure 2-1.
The items in this section are not really "prototypes" at all, but "tools." We list them here as items within the same toolbox:
Connection: The connection tool is used to connect applications with one another through their endpoints. You can also make connections by pressing the Alt key while the mouse is over an endpoint or application and dragging to connect.
Comment: A comment is simply a free text item that you can place anywhere on a diagram to add clarification. You'll see later how you can use comments to add some limited dynamic information to a design.
You will have noticed one toolbox item that is listed in every section of the toolbox, yet we've not listed it as a bulleted point. That is the Pointer tool, which merely deselects whichever prototype or tool the mouse cursor is currently set to and reverts it back to a regular mouse cursor with which you can select items on the diagram.
Endpoints of the various types exist in two flavors: provider endpoints and consumer endpoints. The toolbox enables you to drag provider endpoints onto applications, to which you can connect clients via corresponding consumer endpoints (although you never add consumer endpoints directly; they are created for you when you connect an application to a provider endpoint):
WebServiceEndpoint: This provider endpoint represents a connection point for a Web service that appears by default on an ASP .NETWebService application, an ExternalWebService application, or a BizTalkWebService application. Client connections are made through a corresponding WebServiceConsumerEndpoint.
WebContentEndpoint: A WebContentEndpoint appears by default on an ASP .NETWebApplication and represents a connection point at which Web content—such as HTML files or ASP .NET pages—is exposed. Client connections are made through a corresponding WebContentConsumerEndpoint.
GenericEndpoint: The GenericEndpoint provides a mechanism for connecting generic applications. An explanation of generic applications is provided in the following section.
Connections on the Application Definition represent the configuration of the applications in your solution. Once you have implemented an application with a consumer endpoint, changing the connection will change the corresponding configuration entry in the applications configuration file. Deleting a connection but not the consumer endpoint will blank that configuration entry, and reconnecting an endpoint will set it to the appropriate value. Configurability of endpoints is the key to making applications configurable on deployment. You should not create hard-coded connections between applications or databases. If you hard-code connections, by and large, these will not appear at all on the Application Definition.
This section of the toolbox contains a set of application prototypes that define specific application types. In addition to the predefined types detailed in the following list, you'll see later how you can define your own application prototypes and add them to the toolbox:
WindowsApplication: Represents a Microsoft Windows application to which you can attach generic provider endpoints and all types of consumer endpoints. This application type can be implemented in the solution.
ASP .NETWebService: Represents an ASP .NETWebApplication (see next) with a default WebServiceEndpoint. This application type can be implemented in a solution and can be adorned with additional Web service, web content, and generic provider endpoints plus all types of consumer endpoints.
ASP .NETWebApplication: Represents an ASP .NETWebApplication with a default WebContentEndpoint. This application type can be implemented in the solution and can be adorned with additional Web service, web content, and generic provider endpoints plus all types of consumer endpoints.
OfficeApplication: Represents a Microsoft Office application and supports Excel, Outlook, and Word templates. This application type supports generic provider endpoints and all types of consumer endpoints. It can be implemented in the solution.
ExternalWebService: Represents an external Web service defined by a Web services Description Language (WSDL) file. It displays a default provider WebServiceEndpoint and may be adorned with additional generic provider endpoints plus all types of consumer endpoints. As it represents an existing external service, it is not implemented in the solution.
ExternalDatabase: Represents an existing database to which clients can connect through the default database provider endpoint. You can add generic provider endpoints and all consumer endpoints apart from database consumer endpoints. As an external resource, this application type is not implemented in the solution.
BizTalkWebService: Represents a BizTalk Web service with a default WebServiceEndpoint. It supports additional generic provider endpoints and all consumer endpoints apart from database consumer endpoints, and as an existing service it is not implemented in the solution.
GenericApplication: Represents an unsupported or unspecified application. It has no default provider endpoints but supports generic provider endpoints in addition to all types of consumer endpoints. This application type is not implemented in the solution.