Service Factory Components

Retired Content

The Web Service Software Factory is now maintained by the community and can be found on the Service Factory site.

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.

Retired: November 2011

Figure 1 illustrates the Service Factory components, the components of the underlying software factory platform, and the dependencies between them. The component names correspond to the names of the folders in the Service Factory solution structure, and dependency relationships represent references between component assemblies.


Figure 1

Service Factory components and relationships between them

The software factory is built from seven components. Four of those components, marked in yellow on the diagram, implement Visual Studio packages. The seven components of the Service Factory are the following:

  • Data contract, Service contract, and Host. These components contain the implementations of the three Service Factory models. Each of them contains two projects, one of which describes the designer and the other the integration with Visual Studio.
  • Guidance package. This is the Guidance Automation Extensions (GAX) guidance package, which defines the Service Factory recipes and Visual Studio templates. This component contains the three projects common to all GAX guidance packages.
  • Libraries. This contains class libraries shared by all Service Factory components. The component has nine projects, which are described later in this section.
  • Model project. This is a component that implements the custom project, which holds the models created by the Service Factory. This project is included to impose some control about how models are created, deleted, and where they are stored.
  • Extenders. This is a component that contains libraries of model element extender classes. Extenders are objects that add properties to DSL model elements and are discussed at some detail later in this section.

The Service Factory platform, in addition to Visual Studio and the Visual Studio SDK libraries, includes the following:

  • Visual Studio Modeling SDK libraries, which are the DSL runtime
  • GAX Visual Studio Package
  • Model bus, included in the Visual Studio 2010 Visualization and Modeling SDK, which handles relationships between shapes on different models and makes it easy to enable composition and sharing of data contracts across data contract models.
  • GEL (GAX Extensibility Library), a class library used by all patterns & practices software factories. It contains reusable guidance package development classes. The GEL source code is available on CodePlex and can be modified; therefore, we placed it on the border line of the factory platform.