WAF or Prism?

Aug 16, 2010 at 9:23 PM
Edited Aug 16, 2010 at 9:24 PM

I have used Prism.  We took a deep dive and studied Prism, modeled it and taught our developers how to use Prism.  Now you have come out with this WAF.  Do I need to learn this too?  Does it work with Prism? instead of Prism?  Where does it fall on the spectrum of doing MVVM by hand all the way to Prism?

Aug 16, 2010 at 9:35 PM

My opinion: WAF is a 1-man project (for now). The Composite Application Block (Prism) has an entire community around it, including the Patterns and Practices team with multiple release across multiple versions of the framework. If WAF goes anywhere within Microsoft, it will eventually be merged into the P&P project. No doubt it could simply spawn into a more popular community alternative, but if it did, I can guarantee P&P will be observing.

My take-a-way: Learn what WAF is good for if I can find the time and incorporate it as another tool. If WAF is good for one thing and PRISM another, I'll use both (like I currently use Unity and MEF in the same projects).

Coordinator
Aug 18, 2010 at 4:43 PM

The WPF Application Framework (WAF) is a lightweight framework. The sample applications show that it’s not necessary to add a bunch of 3rd party libraries when you want to create an enterprise-level desktop application. You can do this right with .NET and WAF.

The Prism project is much larger. It utilizes Unity as IoC Container and the Enterprise Library for Logging and Exception handling. Prism provides more features and it supports Silverlight.

Sep 12, 2010 at 11:17 AM

Prism has lack of MVVM base classes, Prism is more concerned about modularity and decouplig, but WAF supplies simple and good designed base classes for views, viewmodels and models. I think it is a good idea to use both frameworks, WAF for implemeting MVVM and Prism for all other aspects.

Oct 11, 2010 at 3:31 PM

I don't really agree with sergeisobolev. If you use Prism (and EventAgregator) then the WAF base classes for Controller and ModelView don't bring any value.

Dec 3, 2011 at 12:12 PM

For my projects, I plan to reference PRISM but reuse some of the patterns in WAF too.

I like the way that WAF implements basic Validation using DataAnnotations Attibutes. In Prism they took "one method ValidateProperty(propName, value), big if-else" approach.