Need comparison of MVVM / WPF / Silverlight Toolkits - wpf

I'm looking for a good article that compares MVVM Light, Caliburn Micro, Prism, and any other Silverlight / WPF / WP7 frameworks out there. I've seen some good articles on them individually, but nothing that really pits them against one another. Any suggestions?

See this article http://www.japf.fr/2009/10/a-quick-tour-of-existing-mvvm-frameworks/
My recomandation if the app is not too big, better use MVVM Light, and after that deppending of your requirements, Prism(Last Version), nRoute, or Caliburn .

Related

Difference between Caliburn and Caliburn Micro and how to choose a framework?

I have been looking into developing a new MVVM WPF desktop application and have shortlisted Caliburn and Caliburn.Micro for the same.
I especially like the auto binding properties/methods/View-VMs that you get in Caliburn.
I have previously worked with WPF/MVVM using PRISM (with Unity for DI/IoC).
My requirements are for a small to mid-size, WPF application, nothing fancy.
We don't see any need for Regions or IOC or DI at the moment, but from what I have seen, it does seem to provide support to enable all of these features.
However, something I can't really find is the differences between Caliburn and Caliburn Micro.
Can someone help shape my opinion to make a decision between Caliburn and Caliburn Micro, preferably someone who has exposure to either or both ?
Also, what could be the foreseeable challenges or hurdles for someone moving from PRISM to Caliburn, especially in terms of support and an active knowledgebase or active developer community/user base ?
Would something like MVVM Light better suit us ? Since it gives us the familiarity with PRISM and almost the same user base and support as PRISM. Anything that Caliburn misses out on as compared to MVVM Light ?
How would you make a call between the 2 ? Or rather any of the other exciting Open source frameworks out there like Cinch and Catel ?
Each fx has it's cons and pros, and all answers are highly likely to be subjective. One of the pros of Catel is that you get all these components for free (which are all based on Catel):
http://opensource.wildgums.com/
I use them all the time for building fairly large, maintainable WPF applications.

which is the best or widely used MVVM Toolkit for WPF?

Could you tell me which is the best MVVM pattern someone have to follow (like Prism). Where can I find hands-on examples to help? Actually, I am little confused which one to follow?
The Wikepedia article about MVVM has a list of frameworks. Here is a selection of some of the frameworks from the list:
Calcium
Caliburn
Cinch
CoreMVVM
MVVM Foundation
MVVM Light Toolkit
WPF Application Framework (WAF)
WPF Model-View-ViewModel Toolkit
Personally, I can recommend Rob Eisenberg's Caliburn. You can see his very educating introduction to MVVM at MIX 2010: Build Your Own MVVM Framework.
A great list of MVVM frameworks can be found at MVVM Framework Explorer.
I don't know what you are exactly mean. MVVM itself is a design pattern. if you mean what are MVVM's best implementations and libraries then some of them are as follow:
WPF MVVM Toolkit: here
Prism
Cinch: here
MVVM Foundation: here
MVVM Light: here
also here you can find a great article about MVVM. I hope these will help you.
MVVM Light and Caliburn are no longer supported, but there is a new player on the market
Microsoft MVVM Toolkit which ist part of the Windows Community Toolkit. It contains the usual support for MVVM and a very fast messaging system.

Silverlight and MV(VM) Pattern - No Code-Behind - Is this possible?

I am working on Silverlight 3.0 and currently using code-behind in my Views. I would like to implement the MV(VM) pattern into my project as the project is growing. I have seen some WPF projects where the code-behind has NO CODE except for the InitializeComponent method, which I believe is the right way to go and just looks clean. Is this possible in Silverlight 3.0, that is, no code-behind?
Can anyone point me to some good Silverlight (3.0) MV(VM) tutorials / articles?
Without using some additional framework, Silverlight 3 does not support what you saw in WPF. Specifically, full Commanding support. Silverlight 4 has included Commanding for Buttons, which is a start.
You can look into other frameworks that provides this feature set, like Prism. This will get you along the right path, but I'm sure there are other options.
You can follow the MVVM pattern for Silverlight 3 applications without using a framework. However, it is much easier to use one of the many MVVM frameworks out there. Here are a few good ones:
MVVM Light
MEF
Simple MVVM
I'd recommend not using Prism as it is more complicated than it needs to be.
Other options include things like MVVM Light, which is lighter weight alternative to Prism for things like handling events and commands, however Prism does have a lot of functionality (and the Prism 4 talk has that sounding like a good option when it gets released).
One good community site to check out is the Composite Development Patterns Community, which was newly started but has an excellent goal of collecting articles and other help for working with development patterns like MVVM.
Lastly, John Papa gives a great overview of MVVM, limited to links so head to Google and look up "John Papa MVVM". :)
One thing to consider though, resources for SL3 aren't going to be as valuable as those for SL4, which opens up additional options for framework based commanding (ICommand that greglev mentioned), although it isn't still the full command support from WPF.
Jesse Liberty has a good primer on MVVM also using Behaviors for wiring events.
Silverlight and MV(VM) Pattern - No Code-Behind - Is this possible?

What WPF frameworks should I use?

I'm a newbie to WPF and I'm developing a brand new windows desktop application and I would like your opinion on what WPF framework I should use. I know this question has been asked before, but the last question was asked at least several months ago. A lot has changed since then.
Right now, I'm using MVVM Light which is more of a library than an actual framework, as the name suggests. I’m looking for something more comprehensive. I prefer a framework that I can use on future WPF projects. Consequently, it should be general purpose and productive.
Any insights or suggestions?
If you are a newby I would suggest that you try to use PLAIN WPF first to get a feeling for it instead of right away extending WPF with other frameworks.
Your title is a bit confusing. WPF is just a graphics/UI layer. WVVM is a Model View ViewModel framework, for implementing a MVVM pattern using WPF ( or Silverlight ).
So, are you asking what design pattern you should use for your WPF application? ( As in MVC, MVVW, MVP, etc... ) Or are you asking which MVVM frameworks are compatible with WPF?
Ugh, acronym soup.
As to my answer, if you are new to WPF and want to learn WPF, I would start with no framework, you can always refactor later once you have a good solid grasp of the underlying technology.
It's definitely on the heavy weight end, and plenty of people will warn you about it, but you seem to be asking for CAG
http://compositewpf.codeplex.com/
It's a pattern that comes with a sample implementation that you can bend into your own. For example, it comes with Unity for IoC, but you should be able to put in another IoC container.
The download comes with a lot of samples for both Silverlight and WPF.
Caliburn (http://caliburn.codeplex.com/) handles a lot of shortcomings of the WPF inherent model (like writing a ton ot stupid routing code for events) and introduces MVVM ;) My bet ;)
You might have a look at the WPF Application Framework (WAF). The sample applications show:
View composition
UI Workflow (Wizards)
Command binding / Shortcut Keys
MVVM pattern, Unit Testing
Validation
Entity Framework
Open/Save FileDialog
Print Preview / Print Dialog
Localization

Sample WPF apps for line of business apps?

I am learning WPF and wanted to look at source code to some good full fledged WPF apps which are used for business apps, data binding using data bound controls like grids and good use of WPF design and patterns.
Not interested in WPF apps which show off WPF's graphics capabilities. Yes I am into your typical boring business apps. Also looking further than codeproject.com. If you know something good at CodePlex, a pointer would be helpful.
Any recommendations?
CodeProject.com is a very good resource for finding examples of .NET applications. Some articles are at a "here's a control, here are some example usages", but there are the occasional full-fledged app write-ups too.
Here are a couple of examples of some business-y WPF usage which may fill your needs:
WPF Business Application Series Part
1 of n By Karl Shifflett
WPF DataGrid Practical Examples By
Colin Eberhardt
Binding and using Friendly enums in
WPF By Sacha Barber
You can find many more in the WPF section.
The Patterns and Practices group at Microsoft has published a Composite Application "guidance" that is code-named Prism. It includes a demo stock-trading app and source code with examples of various design patterns. It's here on Codeplex.

Resources