Skip to main content

Posts

Showing posts with the label Modularity

Unity vs MEF in Prism

Prism offering two injection containers named Unity and MEF. Both the containers have their own capabilities. Before choosing the container decide your environment needs. Some of the capabilities provided by both ( Unity & MEF ) containers include the following: Both register types with the container. Both register instances with the container. Both imperatively create instances of registered types. Both inject instances of registered types into constructors. Both inject instances of registered types into properties. Both have declarative attributes for marking types and dependencies that need to be managed. Both resolve dependencies in an object graph. Unity provides several capabilities that MEF does not: Unity resolves concrete types without registration. Unity resolves open generics. Unity uses interception to capture calls to objects and add additional functionality to the target object. MEF provides several capabilities that Unity does not: MEF discovers assemblies in a dir...

What is Prism?

Prism is a framework or the set of guidelines which is used to develop  Composite or Complex applications specific to WPF , Silverlight or Windows Phone .   It's a kind of Design Pattern to develop XAML based applications.  Prism mainly helps to design the Loosely Coupled components which can be easily integrated with other components of the application. It uses modularity and allows to break application into pieces can be called as Modules.   Prism uses design patterns like MVVM , Command Pattern , Dependency Injection (DI) and Inversion of Control (IoC) and Separation of Concerns to achieve Loosely Coupling. Prism has the following advantages over other frameworks. Reusability, Extensibility, Flexibility, Team Collaboration, Fault Tolerance, Maintainability and Modularity. Prism has 5 main components: 1) Shell: Template that Defines structure of the UI. Shell can contains several regions. 2) Regions: Regions are used to specify specific portion of shell as ...