Modularity Bundle

What's the value of this guidance?

Provides guidance on how to develop composite Web applications through the use of modules

Provides guidance on how to independently develop and deploy loosely coupled modules

Provide guidance on how to allow teams to independently develop each of the individual business logic and infrastructure components.

Describes the how the Composite Web Application Block uses the Inversion of Control, Dependency Injection, and Service Locator patterns to enable loosely coupled modules

What is the concept?

Modularity is the separation of an application in independent and collaborative modules. You use modules to encapsulate a set of concerns of your application and independently develop and deploy them to your applications. These modules are developed and maintained
by multiple teams.

A Web client application that uses the Composite pattern generally involves a shell module, which provides the overall user interface structure. A shell module typically registers user interface components shared by other modules, contains global pages and
one or more ASP.NET master pages that module developers can use to create a consistent layout for pages.
Modules contain functionally discrete pieces, but they integrate with the user interface and communicate with each other. The shell module provides access to services required by other modules throughout the application. This means that the modules can use
these capabilities instead of having to implement them themselves.

This approach provides a number of advantages in terms of a separation of roles between the developers of the modules and the solution designer/builder. Module developers are typically focused on implementing the business logic required to provide specific
business focused functionality (for example, providing access to the inventory, CRM, ERP, and HR systems). The solution designers are able to define a solution to a business problem at a level that is higher and more broadly focused (for example, providing
a call center solution, a bank teller solution, or a document collaboration solution).

What are some scenarios to consider using Modularity Bundle?

Separating the development of business logic from infrastructure logic

Separating the development and deployment of application code by teams or department

What kind of web solutions is this guidance appropriate for?

Who should use this bundle?

This bundle is for Developers and Architects who are interested in improving the testability of the user interface.

What is in the bundle?

Modularity QuickStart: Source code to demonstrate how to implement the Composite pattern
Library: Contains the binaries from Enterprise Library and the Web Client Software Factory required to run the QuickStart.
Acceptance Tests: Automate tests that can be executed to walk you through the Modularity functionality.
Unit Tests: Automated unit tests in Visual Studio. Documentation: Documentation explaining the Modularity Quickstart, and the associated patterns.

What needs to be installed?

.NET Framework 3.5 Bundle

Microsoft Visual Studio 2008 (Professional or Team System to run the unit test) / .NET Framework 3.5