Over a million developers have joined DZone.

Don't Reinvent the Wheel (Part 2) - Silverlight/WPF Project Frameworks


In this edition of .NET Zone’s “Don’t Reinvent the Wheel” series, I' will take a look at some of the project templates and frameworks available for WPF and Silverlight. The majority of these frameworks are variations on the Model View ViewModel (MVVM) pattern, which lends itself to building maintainable applications. All of them are free and/or open source projects.


WPF Model-View-ViewModel Toolkit

WPF Only : Feb 2010 Release for .NET 3.5

Author: MS WPF Team

From the CodePlex page:

The Model-View-ViewModel toolkit is intended to introduce the Model-View-ViewModel design pattern for building WPF applications to the broad WPF developer community.

MVVM Light Toolkit

WPF & Silverlight : Version 2 for .NET 3.5 & SL3 (v3 Alpha available for SL4/.NET4)

Author: Laurent Bugnion

What makes MVVM Light unique?

This toolkit puts a special emphasis on the "blendability" of the created application (i.e. the ability to open and edit the user interface into Expression Blend), including the creation of design-time data to enable the Blend users to "see something" when they work with data controls.

MVVM Foundation

WPF Only : Not Released

Author: Josh Smith

Josh Smith also published an Advanced MVVM eBook here. A description of the framework from Josh’s blog:

Indispensable types for those of us building MVVM apps in WPF.

MVVM and Unity Container Sample

WPF Only : Version 0.2 for .NET 3.5

Author: Roman Golubin

Blub from CodePlex:

MVVM and Unity sample hows how to implement MVVM pattern using Unity container.


Silverlight 4 Only : Not Released

Author: Davide Zordan

Davide is working on a framework that incorporates the Managed Extensibility Framework. More info from CodePlex:

A simple Model-View-ViewModel (MVVM) implementation using Silverlight 4 and the Managed Extensibility Framework (MEF).

Simple MVVM Framework

WPF & Silverlight : Initial Release Available

Author: David Kelley

The CodePlex project description summarizes its purpose:

A simple MVVM related framework for Silverlight (and probably works in WPF) for slow duck tape programmers like my self. Designed to be simple easy to use and easy to understand and idea for instructional purposes.

WPF Application Framework

WPF Only : Version Available

Author: Juergen Berchtel

Description from CodePlex:

The WPF Application Framework (WAF) is a lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel (aka MVVM, M-V-VM, PresentationModel) pattern.


WPF & Silverlight : Version 1.1 RC

Author: Rob Eisenberg

Caliburn is slightly different in that it doesn’t directly implement any one design pattern. Read Rob’s description from the project site:

Designed to aid in the development of WPF and Silverlight applications, Caliburn implements a variety of UI patterns for solving real-world problems. Patterns that are enabled by the framework include MVC, MVP, Presentation Model (MVVM), Commands and Application Controller.


WPF Only : Not Released

Author: Sacha Barber

Sacha’s description of the Cinch framework:

Cinch is a fully featured WPF MVVM framework that makes it easier to develop rich MVVM WPF applications. It also provides UI services/threading/unit tests helpers and much more. Cinch is a WPF ModelView-ViewModel framework that takes the UI services route to provide a rich WPF MVVM framework that comes with several standard services out of the box as well as Unit test services. It also comes with a small demo app that illustrates how Cinch works.


Generic .NET Library : Not Released

Author: Mark Rendle

You can learn more about Microsoft’s Reactive Framework here. The MvvmRx project summary from Mark:

A Model-View-ViewModel implementation using the Reactive Framework from Microsoft DevLabs.


Silverlight Only : Version 3.4 for SL2 and SL3

Author: Nikhil Kothari

Nikhil’s description of his framework:

Silverlight.FX is an application framework for building Rich Internet Applications with Silverlight 2. It focuses on providing building blocks and controls that allows applications to be naturally well-architected.


General .NET Library : Version 3.0 for .NET 3.5 and SL2

Author: Clifford Hall

PureMVC has implementations in multiple languages and platforms. The C# port can be used with both WPF and Silverlight.

Composite WPF and Silverlight (Prism)

WPF & Silverlight : October 2009 Release for .NET 3.5 and SL3

Author: MS patterns & practices

Glenn Block worked on Prism before moving over to MEF, which is now part of the .NET Common Language Runtime team. Here is the overview of this patterns & practices project on CodePlex:

The Composite Client Application Guidance is designed to help you more easily build modular Windows Presentation Foundation (WPF) and Silverlight client applications. These types of applications typically feature multiple screens, rich, flexible user interaction and data visualization, and role-determined behavior. They are "built to last" and "built for change." This means that the application's expected lifetime is measured in years and that it will change in response to new, unforeseen requirements. This application may start small and over time evolve into a composite client—composite applications use loosely coupled, independently evolvable pieces that work together in the overall application. Applications that do not demand these features and characteristics may not benefit from the Composite Application Guidance.The guidance includes a reference implementation, reusable library code (called the Composite Application Library), documentation, QuickStarts, and Hands-On Labs.

CSLA .NET for Silverlight

Silverlight Only : Version 3.8.2 for SL3 Available

Author: Rockford Lhotka

Rocky has been working on his CSLA .NET Framework for years. He recently created a Silverlight port. What is CSLA?

CSLA .NET allows great flexibility in object persistence, so business objects can use virtually any data sources available. The framework supports 1-, 2- and n-tier models through the concept of mobile objects. This provides the flexibility to optimize performance, scalability, security and fault tolerance with no changes to code in the UI or business objects.

WPF Onyx

WPF Only : Not Released

Author: William Kempf

What makes Onyx unique?

Onyx uses a novel approach based on IServiceProvider which allows the ViewModel to interact with the View in an entirely decoupled and testable manner.



The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}