Goals and Benefits

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.

Goals

The Composite Web Application Block is designed to help architects and developers achieve the following objectives:

  • Create a complex Web site from modules that can be built, assembled, and deployed by independent teams.
  • Minimize cross-team dependencies and allow teams to specialize in different areas, such as UI design, business logic implementation, and infrastructure code development.
  • Use an architecture that promotes reusability across independent teams.
  • Increase the quality of applications by abstracting common services that are available to all the teams.
  • Promote proven practices for security without requiring everyone to be a security expert.
  • Incrementally deploy new capabilities while minimizing downtime.
  • Maximize the coverage of automated tests in the code base.

Benefits

The following sections describe how the Composite Web Application Block benefits both architects and developers.

Separation of Concerns

Developers can use the Composite Web Application Block to develop Web applications that are composed of independent, but collaborating, modules. This allows developers or teams to concentrate on specific tasks. For example, developers of service components can focus on the business logic in the component; they do not have to be concerned with background issues, such as security or the appearance of the application.

Applications built with the Composite Web Application Block have a design that distinguishes between common UI elements, such as menu items or toolbars, infrastructure components, such as logging, exception handling, authentication, or authorization (typically, these are built only once per application or reused from other applications), and business logic, such as the user interface processes, logic, entities, and service agents of the specific application. Figure 1 illustrates an example of a Web application that uses the Composite Web Application Block.

Ff709894.518bf395-d309-41fb-9a2f-18c693ad538a(en-us,PandP.10).png

Figure 2

Separation of concerns with a Composite Web Application Block application

Modularity

The Composite Web Application Block promotes modularity by allowing you to implement business logic, visual components, infrastructure components, presenter or controller components, and any other objects that the application requires, in separate modules. Developers can easily create the UI and implement business logic independently of each other and of the Web site. The Composite Web Application Block design separates the concerns of the following developers participating in a Web solution:

  • Web site and common UI elements developers who are responsible for implementing the Web site user interface design and theme
  • Business logic developers who are responsible for implementing use case logic
  • Infrastructure developers who are responsible for providing common services such as logging, security, and so on

The following are some examples of modules:

  • A module that contains a specific application feature, such as reports
  • A module that contains use cases around a specific back-end system, such as a loan processing system
  • A module that contains infrastructure services, such as logging and authorization services

Extensibility

The Composite Web Application Block provides the foundation for building Web applications. Its design promotes extensibility in many different ways. With it, you can do the following:

  • Replace the behaviors and strategies provided as defaults (such as the way in which modules are loaded and the way that state is saved) with your own implementations.
  • Add custom services and behaviors as required by your applications.