Why use PRISM?
When designing and developing software it is important that your approach involves developing the architecture as loosely coupled modules or components. Prism assists these loosely coupled components, instantiating, delivering and communicating between the application modules. Prism can help developers design feature rich, maintainable and flexible applications. WPF has adopted the MVVM (Model View – View – Model) pattern, prism 4.0 co-operates with this pattern and helps the developer to manage the modules and navigation whilst using the MVVM pattern.
Prism should be used when you are looking to develop an application which must be extensible, or will require future changes. Due to the nature of prism you are able to create new modules and attach them to your application, if you have adopted the correct infrastructure your modules should slot in and extend the functionality of your application. If you are developing applications as “Software as a Service” Prism can be of benefit to you. At runtime the modules can be discovered and then loaded into Prism, therefore recently downloaded modules (the services) can be extended into the application. Although Prism does not provided the functionality to discover new modules it does however provide methods to assist in attaching the modules which are available.