×

First time here?

You are looking at the most recent posts. You may also want to check out older archives. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting!

There seems to be a lot of buzz around Silverlight lately and I admit, I like it :-).  But I also think that there is a huge misconception about Silverlight “replacing” WPF.  I get emails a lot about people asking me questions about Silverlight and after a bit of prodding, I see that their target platform for their application is Windows.  I then begin my rant on why it should be WPF if that is the target platform.  I’m usually met with some weird looks being that I do a lot of Silverlight, but I state my case accordingly.

The conversation usually follows about not understanding WPF or trying to find more information about it.  Well, the WPF teams are trying to change that perception.  In fact, Jaime Rodriquez and Karl Shifflett have been organizing a WPF LOB Tour to provide 2 days of free WPF training for developers.  Jaime is the technical evangelist for WPF and Karl works on the WPF team.  They will be in these cities soon:

  • Los Angeles, CA
  • London, UK
  • New York, NY
  • Chicago, IL
  • Phoenix, AZ

Take a look at what they’ll be covering about WPF:

  • Day One:

    • Lap Around WPF
    • WPF Tools ( Blend, Visual Studio 2008)
    • Graphics Subsystem
    • Layout
    • WPF Fundamentals and new concepts
      • Application Model
      • Dependency Properties
      • Trees (logical & visual)
      • Events
      • Threading
      • Resources
    • Controls
    • Styling
    • Templating
    • Q&A with instructors at end of day
  • Day Two:
    • WPF integration with Win32 and Windows Forms
    • Data binding
    • Introduction to Model-View-ViewModel
    • Commanding in M-V-VM
    • Views, Navigation and Transitions
    • Data Validation
    • Error handling, Model dialogs, Logging
    • Unit Testing
    • MVVM & LOB tips and tricks
    • Q&A with the instructor
  • If this is coming to an area near you, I’d strongly encourage you to make the time to be there.  There is no cost to you other than getting yourself there (if it isn’t in your same city).  Their first event packed a full house on registration within 2 hours and the feedback from the training was overwhelmingly positive and exciting.  Karl is such a dynamic and fun guy to be around, it will be worth your price of admission to hang out with him and Jaime for 2 days.  I’d love for one city to rally together and all show up wearing Hawaiian shirts to make Karl feel at home :-).

You can find all the information about the events on Karl’s blog or Jaime’s blog.  Registration links and everything are listed there.  If you have a question about the event, please reach out to Karl or Jaime.  I know their most asked question is "why aren’t you coming to <fill-in-the-blank-location>?  Honestly after talking to Karl I’m convinced he wouldn’t sleep if he could go everywhere…and he wants to as well!  I think there are some plans to do some studio recordings and produce the information online, but there is no timeframe for that just yet…and I do believe that nothing really supplements being able to network with others learning and being in-person to ask questions, etc.  It’s a great opportunity to learn and demystify WPF development for yourself…really, make the time to be there.

Additionally, there have been some organized XAMLFest events happening around the country (US – but if there are others worldwide, leave a comment where they are happening).  These aren’t 2-day workshop trainings, but are events organized around our XAML technologies, specifically WPF and Silverlight. 

I think WPF and Silverlight are really great technologies and compliment each other well.  Try not to learn one without the other.  I know personally I’m trying to do more WPF learning myself as the natural progression of the Microsoft platform is the continuum of Silverlight to WPF as shared application platforms.  I hope you’ll do the same.

If you’ve attended one of these WPF events listed above, please leave a comment about your feedback as well. 


This work is licensed under a Creative Commons Attribution By license.


4/16/2009 1:39 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
I will be presenting a a presentation at balto msdn in june called "one code to rule them all" on building wpf+silverlight+surface using the same base code / xaml.

I agree you might as well dive in, and drink all at once. Understanding WPF will help you understand silverlight better and vice versa.
4/16/2009 1:44 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
There was just a XAML fest here in Minneapolis too. Exposure to Blend 3, Sketch flow, dynamic data data generation etc.
4/16/2009 2:03 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
I registered the one in London! :) Plane and Hotel are already booked.
4/16/2009 3:00 PM | # Silverlight vs WPF
Surely it's just about rendering a UI therefore SL & WPF are/should be the same thing, it's just artificially trying extend the life of the web vs. Windows dichotomy (which in time rivals are going to blow away). By all means limit UI functionality on non-Windows boxes, but marketing 2 flavours as distinct is really a false supposition.
4/16/2009 9:38 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Do you know if there are any plans to expand the tour? I would love to see one in my neck of the woods (Winnipeg, Canada)
4/16/2009 9:48 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Kelly -- see Karl's comments: karlshifflett.wordpress.com/.../#comment-1217
4/17/2009 5:16 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Maybe I'm just getting too old or something. Right now, my current project at work is the creation of a WPF-based application. A really big one, to replace (hopefully...) the MFC-based app we currently market.

I must admit to being seriously underwhelmed by WPF. It didn't start out that way; I really bought into it in the beginning. Now, after nearly two years, I'm not so sure.

Why? Well to begin with, this arguably marks the fifth GUI technology that I've had to come to grips with in my career; and its arguably a complete reset, where perhaps a complete reset was not required. Let see: Win16 (remember those message pumps?); VB; Win32/MFC; WinForms; and now WPF.

Up until WPF, I've generally been enthusiastic about undertaking the challenges of learning these new technologies. Each one has been a significant and worthwhile improvement over what came before.

Win16, back in the day, had lots of capabilities but could be an absolute bear to work with. VB made things more accessible by putting abstractions in place over raw Win16. MFC and Win32 was where things really came together; abstractions where they were useful, but an easy route to get closer to the bare API metal when you needed to. And, finally WinForms. A VB-like abstraction but in a managed environment, and still those back-doors to the lower level APIs.

I can accept that the Win32 model of operation is becoming dated and inflexible. Hell yeah. I can see that basing a new imaging model on DirectX/3D is more modern and advantageous. But that, at least in my mind, does not mean that just about everything that we've learned should be re-learned. Sorry, but the value proposition for WPF just doesn't seem to be there. If MS had just replaced the underlying APIs and selectively changed and improved WinForms, it would have had a real winner.

Now, Silverlight is something different. Here the value proposition is much clearer. HTML/AJAX will continue to improve, but it still seems to be a kludge. No disrespect to the AJAX enthusiasts -- they have got to be geniuses for the way they took a minimalist document rendering technology and turned it into an application platform. But to be able to use a significant language (C# or VB, take your pick) in the browser, thats a real step forward.

So, if you want to know why there is such interest in Silverlight at the expense of WPF, perhaps there are reasons.

.NET Framework: exactly what I've been looking for all these years.

Silverlight: COOL, and I'm really working at learning it. It (or something similar -- Flex anybody) is where the future is.

WPF: A lot of effort for not a sufficiently big improvement over what I've already got. (Why are widget vendors bringing out widgets which provide WPF-like capabilities for WinForms?)
4/17/2009 7:59 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Tim, I've been trying to get windows-only LOB folks to use WPF for years. It just doesn't happen. Despite what many consider and concede to be compelling arguments, they end up going with an asp.net app for an internal windows-only network.

Why? Deployment. For some reasom, actually deploying applications to end-user workstations, (even via clickonce) is seen as a huge burden for IT shops. Installation has been the argument for a long time, and it's what drove shops to go with web apps even when they could have a clearly superior UX, developed in half the time, if they had gone with Windows forms at the time.

Silverlight changes that because there's the plugin install hit, but then no per application hit.

In my experience, it hasn't been Use WPF or Silverlight, it has been "WPF and Windows forms are off the table. We're doing ASP.NET (or sharepoint) or Silverlight"

IMHO, WPF is going to end up being important to ISVs, people who develop for Surface, and applications that really need hardware access and/or a vastly richer UX. For the rest of the folks, SL (even on windows-only environments) will be the better choice.

It used to bum me out, but I've made my peace with it :)

Pete
4/17/2009 9:52 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
In response to Keith's comments, a couple of posts above...

I totally get where you are coming from regarding WPF and Silverlight. Firstly, let me state that I really like the end-results that many developers have produced in both areas (Client and Web respectively). These sample applications alone make me feel that we have two winners here -- and it's nice that XAML provides a fundamental base that's common to both.

However, I have felt differently when experimenting with both WPF and Silverlight from a development perspective. For me, working with Silverlight was a pure joy -- in sharp contrast to some of the frustrations I had with Flash (as well as HTML/CSS/Javascript in general). Silverlight feels intuitive and the learning curve wasn't so steep as I had expected.

However, with WPF I experienced a few bumps and some things didn't seem so obvious to me at first. In this environment we've gotten used to client UI development tools that made things progressively easier to build an application, and there seems to be more of a radical departure that we need to get over.

I believe this was the point that Keith was making above. It's the comparison of the development environment we had available before there was Silverlight and WPF, and the expectations being exceeded in one area but not so much in the other area.

I think it's worth perservering with however. Ultimately I believe we will see a tremendous leap in the kind of client-based WPF applications of tomorrow, let alone with the web stuff that Silverlight promises. And the fact that you are using and learning XAML in both will help in transferring skills and knowledge between the targetted platforms respectively.
4/17/2009 10:37 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Great feedback; I agree with all of you, but I have a glass is half-full view into it, not sure if yours was the same (it felt half empty to me).

Yes, joining our training and learning WPF will help you learn Silverlight. In fact, having trained both in the past, I think our training will help you much better understand Silverlight and prepare for the future. Things like Dependency Properties, RoutedEvents, are in Silverlight, but are not fully implemented yet. In our WPF training, we explain the whys and hows of all of these. Some of this goodness will continue to trickle into Silverlight over time and I have heard from people it helps to understand the design principle behind it.

Keith, change can some times be good. Win32 had been around for 20 years. We really needed a new vector-based, hardware accelerated platform with richer services (like animation, data binding,etc); the good news is that the new concepts and XAML are here to stay, so I can say what you are learning now should do you good for another 15 years, and it includes desktop, web, surface, mobile, and maybe more in the future.

Pete Brown, I am not sure I fully grasp just one point (since you make two or three). People did run towards HTML/AJAX (served via ASPX), but people are also excited about client technologies (like Silverlight). I think Silverlight and WPF compliment each other well, I am already seeing people who started doing Silverlight and choosing to get back into the desktop with a companion.
Your other point is that there will always be ISVs and Enterprises that need full-trust, shell integration, true unrestricted off-line, etc. These are features not in Silverlight today. So, yes there is room for WPF; the good news is if you have learned XAML (Silverlight or WPF) you have a lot to reuse. Again, this synergy makes WPF more relevant (within its context).
Your 3rd point, I agree that Silverlight should have higher demand on consumer space and therefore higher demand altogether in the long-run, but again it can't do everything the desktop ca, so there is room for both. In .NET 4 when Microsoft gets Client Profile to be side-by-side the choice will be a 5 MB SL run-time, or a 22 MB .NET run-time; and over time, maybe it will be one single .NET+XAML run-time.

Peter Matuchniak, totally agree with you. Silverlight being a subset of WPF (so easier) and coming two years later, is obviously not as painful as WPF back in the days of Xamlpad. All I can say there is: we want to flatten the learning curve, our tools continue to improve, I highly recommend you watch Mark Willson Thomas' MIX session on tooling improvements in Cider, I think we have a lot of good features coming and I hope we are up-to-par with older tools; I know it sucks to say four years later we are meeting the bar, all I can say is the bar was high before that is why it has taken so long.

If you read this long, THANKS!
I would recommend my "MIX09 recap series". I tried to explain:
Why WPF is relevant:blogs.msdn.com/.../mix09-recap-series-part2.aspx
and how it is all about a bigger vision: the client continuum.
blogs.msdn.com/.../mix09-recap-series-part3.aspx

Tim Heuer, sorry for writing a whole post in your comments section; thanks for plugging in our training. Please send us the bill for the ad.

Long-live XAML!










4/17/2009 11:37 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Guys, thanks for the replies and feedback.

My original reply was perhaps a tad long; I'll try to avoid doing that here.

I don't want to come across as being against change. I enjoy embracing change in the tech world. Its just that I perceive WPF as being the wrong type of change. I totally accept that Win32 is long in the tooth and needs to be modernized. The underlying technologies that WPF uses are probably the best ways of doing that. I just wonder if perhaps the details of WPF were too radical a change.

Prediction: given the rate at which the internet and web are evolving, is it possible that in, say, 5 years, the desktop won't matter, or won't matter nearly as much? If we can accomplish a significant fraction of desktop app features in Silverlight, and we don't have to worry as much about deployment and maintenance, where are the incentives to re-learn desktop app development via WPF?

Tim: where is that "Programming Silverlight 2" book? I really need it, like yesterday!!

Keep up the great blog posts. They are one of the sources I use to learn about Silverlight.
4/17/2009 12:54 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
keith - I'm no longer involved in that book. I recommend http://tinyurl.com/sl2unleashed for a replacement.
4/17/2009 5:16 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
When to use Silverlight
* Must be cross-platform (really only OS X & Windows)
* Need to deploy to the Web and XBap's .NET runtime requirements are too heavy
* App primarly interfaces with Browser DOM / web services.
* Primarily a Deep Zoom application

When to use WPF
* True 3D Support
* Printing, Reporting
* Winforms, Win32, or COM/Active-X interop needed
* Specialzied Hardware Support (Scanners, Webcam, Card Readers, etc...)
* Arbritrary access to the local file system, operating system functions, and/or full socket port support (break out of the sandbox)
* More data support (Data, datatables, direct access to various DBs without crossing the WCF barrier)
* Access to specialzied functions in the Win32 API, full .NET Framework, etc...

XAML related Features in WPF not in Silverlight
Triggers (DataTriggers!), MultiBinding, DynamicResources, FlowDocuments, Full 3D, Commanding, TileBrush, Typed DataTemplates, Adorners

More on differences between WPF and Silverlight are outlined here:
http://msdn.microsoft.com/en-us/library/cc903925(VS.95).aspx
4/17/2009 5:20 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Ack, didn't post my introduction to the above post....

Hi Tim,

Been reading your blog since you've starting writing about Silverlight. I saw you at Mix '09 and talked to you a bit, but didn't realize who you were until afterwards. Either I'm very bad at faces, or you look little like your blog picture, ;).

If the concern is that people don't understand the difference between when WPF should be used vs Silverlight, it might be useful to list some scenarios in your post where WPF is still preferable.

I get asked the question of why go with WPF, especially now that Silverlight 3 brings a lot of WPF features into parity with it. I recently gave a What's New in SL3 to my local Bay.NET user group and made a slide concerning that issue. Some of the points include: (see above)

4/17/2009 10:05 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
I'll chime in on the ASP.NET WPF decisions. I wrote this a year and a half ago. I still stand by every word in the post.

karlshifflett.wordpress.com/.../reasons-for-cho...

I would submit that large LOB apps in SL would have challenges today and possibly for awhile.

Rather than enter into a debate or back and forth exchanges, the bottom line is each developer or company must make a decision on which platform makes the most business sense for the business problem they are trying to solve.

Application maintenance plays a large role in this selection. I wanted to pick a platform that 3 years after I deployed my application it would still run, even though Windows updates were applied and the browser version changed and possibly the O/S AND the next version of Visual Studio would allow me to continue to maintain that application without a rewrite or a lot of costly work.

I believe that WPF delivers on the above.

WPF & MVVM pattern make Unit Testing simple, natural application structure and logical separation of concerns. Once you "get" WPF and MVVM a new world of productivity opens up to you.

I hope this WPF LOB Training Tour delivers on this and opens the platform up to many developers.

My best to you,

Cheers,

Karl
Gravatar
4/18/2009 10:26 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
We are in neither of these cities nor do we want to miss this FREE opportunity.
By any chance this event is webcasted + recorded for distant viewers like us?
4/18/2009 10:34 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
PP see the note above in the description. I believe Karl/Jaime are going to record at some point, but they haven't had time yet.
4/19/2009 7:49 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
And why dont we have a tour like that in Europe?
4/19/2009 12:12 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Thomas -- see karlshifflett.wordpress.com/.../#comment-1217 -- there is no other reason other than economics. Karl/Jaime would love to do it in as many places as possible. One thing they are considering when they can find the time is to record these sessions and make them available.
4/20/2009 8:17 PM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
Jaime mentioned the MIX09 videos on the new WPF (and Silverlight) tooling coming up in Visual Studio 2010.

You can check these out at

http://videos.visitmix.com/MIX09/T39F
(this session is more WPF focussed; the demo of new designer features starts at around 18 minutes in and lasts about 20 minutes)

Also
http://videos.visitmix.com/MIX09/T73M
(this is a more Silverlight focussed session but as you'll see the tools are very nearly identical against both platforms)

I'd love to hear what people think - send me mail at mwthomas at microsoft dot com, reply here, or tweet on #VSDesignerSLWPF.

Cheers
Mark Wilson-Thomas
5/31/2009 11:48 AM | # re: Learning WPF at the WPF LOB tour and XAMLFest events
It was one of the most useful training sessions I have attended so far. It was worth spending two whole days in New York.
Thanks for the opportunity.

 
Please add 5 and 8 and type the answer here:

DISCLAIMER:

The opinions/content expressed on this blog are provided "ASIS" with no warranties and are my own personal opinions/content (unless otherwise noted) and do not represent my employer's view in any way.