Packaging an Application Architecture as a Reusable Guidance

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Your company has developed Web services that can access both local and remote business logic. The Web services are exposed to internal and external clients through Web service interfaces. You want to define an application architecture that standardizes the development of these services. The architecture has the following properties:

  • It prescribes a structure and architectural constraints for new applications implementing services.
  • It is designed to be used across multiple business applications.
  • It prescribes the use of reusable components and frameworks in the context of the architecture.

You want to create integrated user experience that simplifies adherence to your architectural guidelines.

Scenario Goals

You want to use the features of the Guidance Automation Toolkit to simplify and clarify the following processes:

  • Starting a new application that complies with the architecture
  • Adding new business logic and reusable components to work within the constraints of the architecture

Implementing User Experience with Guidance Automation Toolkit

To meet the stated goals, you develop a Guidance Package that consists of a number of recipes, wizards and templates. The Guidance Package meets the scenario goals in the following ways:

  • Starting a new application that complies with the architecture
  • Adding new business logic and reusable components that work within the constraints of the architecture

Starting a New Application that Complies with the Architecture

You write a solution template that creates the recommended structure of an application for developing new services. The application has solution folders and projects for Web Service interfaces, business actions that implement those interfaces, and service gateways that actions use to communicate with other services. The template places unbound recipe references and template references in the solution. The template also defines bound recipe references and template references that, along with unbound references, help the developer with repetitive tasks such as creating messages or implementing new business actions.

Adding New Business Logic and Reusable Components that Work Within the Constraints of the Architecture

The recipes and templates associated with the solution guide the developer through the routine tasks of developing business actions and exposing their logic through Web Services. To assist your developers, you create the following recipes and templates:

  • A message-defining recipe that creates a message class and associates a custom tool with it. The tool uses an XSD utility to generate an XML schema for the class. This recipe can be designed as a recurring bound recipe associated with the solution folder that hosts projects with messages. The recipe would include a project as an argument, placing the generated message class in that project. Alternatively the recipe can be defined as an unbound reference, associating itself with a project in the solution folder.
  • A business action template that creates a project for a business action and unfolds a class template for the action. The recipe associated with the template collects the project name, business action name, namespace for the class, and the input and output message classes. The template is a bound template, associated with the solution folder created for the business actions.
  • A recipe to add a Web service for the business action to an existing Web service project. The recipe generates a new ASMX file and class with a method that is a façade to the business action method.

See also

Common Scenarios | Adding a User Experience to a Reusable Component | Adding a User Experience to an Application Framework | Adding a User Experience Around a Pattern