When building large complex applications, a common approach is to divide up the functionality into discrete module assemblies. Even further it is desirable to not have static references between these modules. This allows the modules to be more easily versioned, tested independently, and promotes decoupled communications.

How then can a module work with or leverage content from another module? How can a command such as “Save All” execute multiple handlers spread across several modules? How can business logic code in one module alert other modules of an event?

In Prism we answered these questions using three mechanisms:

1. Shared Views/Services

2. Commanding

3. Event Aggregation

In the next three posts, I will review how we used these three mechanisms in the Prism "Stock Trader" reference implementation, Command & Event Aggregation quick starts.