Export (0) Print
Expand All

Modularity 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.

Modularity is the ability to create rich Web client applications from discrete functional units named modules. A module represents a set of related concerns. It can include entities such as Web pages, business logic, page flows, and pieces of the Web infrastructure, such as the ability to log events or authenticate users. Each module is functionally complete and can communicate with other modules to create a complete application. Web applications that are created from modules are named composite applications. A user accesses the application with a Web browser. To the user, the application appears as a seamless program that offers many capabilities.

An example of a composite application is an online banking program. The user can access a variety of functions, such as transferring money between accounts, paying bills, and updating personal information from a single user interface. Behind the scenes, however, each of these functions is a discrete module. These modules communicate with each other and with any back-end systems such as database servers. The Web server integrates the input from the different modules and handles the communication between the modules and the user. The user sees an integrated view that looks like a single application. Figure 1 illustrates a typical composite Web application.


Figure 1

A composite Web client

Benefits of Modularity

Modularity provides the following benefits to development teams:

  • It allows a high degree of separation between the application infrastructure and the business logic.
  • It allows different teams to independently develop each of the individual business logic and infrastructure components.
  • It provides flexibility because business logic components can be combined to quickly yield a specific solution.
  • It promotes code re-use because it allows business logic components and the application infrastructure to be incorporated into multiple solutions.
  • It provides an excellent architecture for the front-end integration of line-of-business systems or service-oriented systems into a task-oriented user experience.

The purpose of this bundle is to provide guidance on how to implement composite Web applications that are composed of a number of discrete, independent, yet functionally complete modules using the Composite Web Application Block and the Composite Web Client Automation.

The Composite Web Client Automation is not included in this bundle. For information about the Composite Web Client Automation, including download information, see Composite Web Client Automation on CodePlex.

What Is in This Guidance?

The Modularity Guidance contains the following elements:

  • Understanding Modularity. This topic explains how to design composite applications. These are applications that are composed of discrete, functionally complete units named modules.
  • Modularity QuickStart. This topic demonstrates how to create a composite application from modules. The application simulates an order-approval system that allows some users to submit orders and others to both submit and approve orders. The application is composed of two business modules and a foundational module.
  • Development Activities. This topic demonstrates how to perform typical activities that are required to create composite modules. Examples of these activities include how to create a business module, how to create a foundational module, and how to register services.
  • Deployment Activities. This topic explains how to deploy the Composite Web Application Block and how to deploy new modules to existing Web client applications.
© 2014 Microsoft