WAF extensibility options, Modules, and Roadmap

Feb 6, 2011 at 12:12 AM
Edited Feb 7, 2011 at 12:21 PM

Thanks for WAF it has helped me learn MVVM.  I tried to learn PRISM and WAF simultaneously to figure out which is better.   I was thinking PRISM would win due to it size and history.  However I believe they went to far and I felt very disconnected from the underlying MEF and MVVM frameworks.  Perhaps that was the goal, but for me it made things more confusing.  Below I have some questions that would be helpful.

1)  Can you summarize your perspective in WAF diverging from PRISM?

2) How is WAF intended to support extensibility?  The code is riddled with MEF, but used just to seperate layers.  How could I create extension points for third party WPF usercontrols?  I imagine with WAF I would need to import a View, ViewModel, and maybe a controller from a third-party dll?  Perhaps the best approach is to create Imodule classes like PRISM and somehow glue things together?

3)  Is the module/modulemanager related NET libraries a good companion to WAF or is this a PRISM specific technology?

4)  What is the prefered way to handle events in WAF.  It another post you mentioned create an event service.  Is this a formal .net term or just an Interface that implements INotify?

5) Where is the roadmap for WAF and are you contemplating any near term features?

Thanks Again,

Feb 7, 2011 at 6:45 PM

Hi aidesigner,

Thanks for your feedback. I try to answer your questions as good as I can.

1) PRISM has the strategy to support all platforms WPF, Silverlight and Phone 7. It comes with lot libraries (e.g. Unity, Enterprise Library) and the framework isn’t that small.

A strategic goal of WAF is to stay “lightweight”. Furthermore, I focus on one platform, WPF only. The sample applications are a key part of the framework. Every feature should be used by one of the sample applications at least and the samples provide a lot best practices in the field of WPF developing.

2) WAF doesn’t provide direct support for extensibility. But when you are using MEF then it is quite simple to enable extensibility. Here you can use the concepts shown in PRISM as well.

3) You should be able to mix the module/modulemanager classes from PRISM with WAF without any problems.

4) A service is just a simple .net class that might implement the INotifyPropertyChanged interface if necessary.

5) I have lot ideas for new features but I won’t make them public now. Sorry.

Best Regards,

Feb 8, 2011 at 8:12 AM

4) I have made some use of PRISM's EventAggregator class to handle Application layer events