Scenarios and Benefits
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
Architects should 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. Figure 1 illustrates the process for using the Web Client Software Factory on the fictitious Global Bank project.
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 an out-of-the-box implementation of a set of features that are common to Web client composite applications.
You take this out-of-the-box baseline and customize it and extend it to better fit your specific needs. As an architect, you might customize, extend, and deploy the following:
- Templates and recipes to include your own appearance and behavior and your own naming conventions
- Documentation, patterns, and how-to topics
- Application blocks, by using the provided extensibility points and adding new libraries
As an application developer, you might 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 can be modified and extended by the architecture team in your organization or on your project.
You can review the patterns, how-to topics, and reference implementation (Global Bank Commercial e-Banking) to understand the proven practices for developing Web applications by using the provided guidance. You can use the Web Client Software Factory 2010 guidance package to generate the initial solution, add modules, add views and presenters, and so on.
The Web Client Software Factory provides the 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 the need for end-user training.
- It allows business owners to rollout new and updated functionality and tasks 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 as if 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, and creating views with presenters. 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 that developers do not have to write custom code.
- It creates test projects.
- 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, which 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.