I've been developing C# Windows Forms applications for a couple of years and while I've heard and read about WPF I've never really come in close contact to it. With some time to spare this spring I though I'd give it a go though, but first it'd be intresting to know what you guys thought about it. What do you think, is it worth the time to learn for a .NET desktop application developer? There's alot of other cool stuff I'd like to spend some more time with too, so if it's just "fun" and to no practical use I'd rather put my attention elsewhere.
8 Answers
Silverlight is a subset of WPF, Silverlight primariliy is focused on animation and media, its not really designed to do complex and large Desktop applications, you could of course but its not its primary purpose.
WPF can be hosted in a webpage and has cross browser support ( IE and Firefox)
I would recommend use and learn WPF, and to a degree this knowledge can be applied to Silverlight later down the track.
And realistically, we are least 2+ years away from having widespread and deployed multi touch screens in the normal persons day to day activities, so a focus on this is worrying about a tiny percentage in the current market.
I'm moving all of my application development work out of WinForms and into WPF. Despite a daunting learning curve (for some reason, I've found WPF generally to be harder to learn than any new technology I've come across in the last decade and a half), I'm finding that the more complex the UI is, the better WPF is as a way of implementing it.
is it worth the time to learn for a .NET desktop application developer?
Absolutely! If that is your specific job there is no better technology to learn (as opposed to RIA developer, web developer, java developer etc).
so if it's just "fun" and to no practical use I'd rather put my attention elsewhere.
It is of major practical use if you ever want to write applications for Windows. Any applications... but in particular ones that have a non-standard, skinned or complex UI.
So no, it's not just fun... but it is fun!
Think about it... its Microsofts first ever major graphics / application framework that has been written without any major concessions to the legacy of Win32 ... this means its a radical architectural departure from what has come before, and with that comes great benefits.
My only warning is it can take a while to get your head around it
If you have a UI that's fairly simple and you want the application to be easily maintainable for future developers( eg someone that hasn't climbed the wpf learning curve) then you're probably better off going windows forms.
If you have complex UI requirements and you'll always have good wpf developers readily available then go the WPF route.
I'm really curious if others agree with this? Please comment.
I would agree that WPF has a steep learning curve and I kind of have this looming feeling in the back of my mind that microsoft will scrap wpf and xaml for something else once touch screens become more popular...
The rumor at Microsoft is that WPF is a dead-end technology. The future is Silverlight for a number of reasons. For one thing WPF only accepts one "focused control" which doesn't work in a multi-touch environment. Silverlight doesn't have this limitation. So it's not compatible with some of MS's future technologies such as multi-touch portable devices and Microsoft Surface.
Right now WPF is more feature rich, but if it was me and I didn't need something WPF-specific, I would develop for Silverlight. And get the bonus of being able to be embedded on web pages.