Microsoft Patterns & Practices -Web Client Software Factory

Last week while I was preparing for my  Technology Specialist certification for NET Framework 2.0 Web Applications,I just came thru a part of understanding about the design patterns and practices.I studied a lot about the below one software factory which is going to be one of  the best & important for current trend in development.


This software factory provides proven solutions to common challenges found while building and operating large transaction processing enterprise Web sites. It helps architects and developers build modular systems that can be built by independent teams, design complex screen workflows, improved security and testability. Applications built with the software factory use proven practices for operations like centralized exception logging and can be XCopy deployed.

The software factory contains a collection of reusable components and libraries, Visual Studio 2005 solution templates, wizards and extensions, How-to topics, automated tests, extensive architecture documentation, patterns, and a reference implementation. The software factory uses ASP.NET, Windows Workflow Foundation, and the Enterprise Library–January 2006


Architects can use the Web Client Software Factory to create their own client baseline architecture. They can distribute that baseline for developers to use as a starting point to build specific instances of Web applications. The below Figure illustrates the process for using the Web Client Software Factory on the fictitious Global Bank project.

WCF Scenario

Architect Scenarios

As the architect, you want to make sure that Web applications developed in your organization derive from a sound, high quality, proven practice–based foundation that meets the following guidelines:

It provides a standard approach to application development.
It promotes re-usability of common architectural patterns and components.
It hides complexity.
It allows developers to focus on business problems instead of infrastructure components.
The Web Client Software Factory is the starting point for creating that foundation. It provides out-of-the-box implementation of a set of features that are common to Web client composite applications and page flow applications.

You take this out-of-the-box baseline and customize and extend it to better fit your specific needs. As an architect, you might customize, extend, and deploy the following:

Templates, recipes, and designers to include your own appearance and behavior, your own naming conventions, and custom actions Documentation, patterns, and How-to topics
Application blocks, by using the provided extensibility points and adding new libraries

Developer Scenarios

As an application developer, you may want to focus on the business logic and the user experience of your Web client application. A baseline architecture, such as the Web Client Software Factory, provides many of the common infrastructure services needed to build your business applications. This baseline may be modified and extended by the architecture team in your organization or on your project.

You can review the patterns, the How-to topics, and the reference implementation (Global Bank Commercial e-Banking) to understand the proven practices for developing Web applications using the provided guidance. You can use the Web Client Development guidance package to generate the initial solution, add modules, add views and presenters, and so on.


The Web Client Software Factory provides the following benefits for the business team, the architecture team, the developer team, and the operations team.

Value for Business

Applications built using the Web Client Software Factory result in increased user productivity and simplification of business tasks. This is achieved through the following features:

  • It provides common and consistent user interfaces; this reduces end-user training needs.
  • It provides easy rollout of new and updated functionality and tasks by the business owners faster and with improved quality.

Value for Architecture Teams

Applications built using the Web Client Software Factory result in improved quality and consistency. This is achieved through the following:

  • It has the ability to create a partial implementation of a solution that includes the most critical subsystems and shared elements. This partial implementation, known as the baseline architecture, addresses non-trivial design and development challenges, exposes the architectural decisions, and mitigates risks early in the development cycle and hides complexity from developers.
  • It has the ability to create and distribute to developers the common development architecture for Web applications that include logging, exception handling, authentication, authorization, and a common appearance and behavior.
  • It applies a modular approach that allows teams and/or departments to independently develop and deploy modules that look like they were developed by one individual.

Value for Developer Teams

Applications built using the Web Client Software Factory result in increased productivity and faster ramp-up times for developer teams. This is achieved through the following:

  • It provides an effective way to create a high-quality starting point (baseline) for Web applications. The baseline includes code and patterns typically discovered in Iteration 0, or the elaboration phases, of a project. This means that projects begin with a greater level of maturity than traditionally developed applications.
  • It provides automation of common tasks in Visual Studio, such as creating a Web solution, creating business and foundational modules, creating views with presenters, and creating page flows. With this automation, developers can easily apply guidance in consistent and repeatable ways. The automation with the architecture does the following:
    • It integrates your Web pages with master pages and themes for consistent user interfaces across teams.
    • It creates proven solution and project structure that you would otherwise have to manually complete.
    • It creates a profile-based user interface by using an ASP.NET site map, an ASP.NET role manager, and the Enterprise Library Security Application Block, so you do not have to write custom code.
    • It creates test projects for you.
    • It provides a designer to create and modify your page flow.
  • It provides an abstraction and separation of concerns; this means that developers can focus solely on business logic, the UI, or the application services without requiring in-depth knowledge of the infrastructure and baseline services.

Value for Operations Teams

Applications built using Web Client Software Factory result in a consolidation of operational efforts. This is achieved through the following:

  • It supports use of XCopy deployment; this enables a common mechanism for updates and versioning across modules; this minimizes downtime.
  • It uses distributed, module-specific configuration files; this minimizes configuration contention.
  • It consolidates common components; this results in fewer, simpler files and it reduces the number of potential common language runtime (CLR) versioning issues.
  • It provides a pluggable architecture that allows operations teams to control the basic services (such as authentication and exception logging) from server-side infrastructures.
  • It provides a common exception management system that makes troubleshooting easier.

Software Factory Contents

The Web Client Software Factory is an integrated collection of tailored software assets that support composite Web application development. The collection includes the following:

Application blocks and libraries. The Composite Web Application Block, Page Flow Application Block, ObjectContainerDataSourceControl control are included in the software factory. The software factory also uses Enterprise Library application blocks for security, exception management, logging, and data access.

Recipes. The software factory includes the Add View (with presenter) recipe and Add Page Flow recipe. Recipes automate procedures in How-to topics, either entirely or selected steps. They help developers complete routine tasks with minimal input.

Templates. The software factory includes the Solution template, Business Module template, Foundational Module template, and Page Flow template. Templates are prefabricated application elements with placeholders for concrete arguments. They can be used for many purposes, including creating initial solution structures to creating individual solution artifacts, such as project items.

Designers. The software factory includes the page flow designer. Designers provide information that architects and developers can use to model applications at a higher level of abstraction. Designers can also generate code that is compatible with the architecture baseline.

Reference implementation. The software factory includes the Global Bank Corporate e-Banking reference implementation. A reference implementation provides an example of a realistic, finished product that the software factory helps developers build.

Architecture guidance and patterns. The software factory includes architecture guidance and patterns that help explain application design choices and the motivation for those choices.

How-to topics. The software factory includes How-to topics; these are documented step-by-step instructions that describe how to implement recommended practices in a specific domain.

Figure 2 illustrates the assets of the Web Client Software Factory.

WCF Assets
Figure 2. Web Client Software Factory assets

The software factory also uses the following existing patterns & practices assets:

Enterprise Library
Guidance Automation Extensions
Guidance Automation Toolkit
Software Factory Capabilities
You can use the Web Client Software Factory to address common requirements for different areas of your Web client application architecture. Figure 3 illustrates the primary application areas targeted by this release of the software factory.

Note You can also extend and customize the software factory to meet your specific requirements. For more information, see Customizing the Web Client Software Factory.

WCF Core Challenges

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s