Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Learn Silverlight or WPF first?

It seems that Silverlight/WPF are the long term future for user interface development with .NET. This is great because as I can see the advantage of reusing XAML skills on both the client and web development sides. But looking at WPF/XAML/Silverlight they seem very large technologies and so where is the best place to get start?

I would like to hear from anyone who has good knowledge of both and can recommend which is a better starting point and why.

like image 836
Phil Wright Avatar asked Sep 14 '08 13:09

Phil Wright


People also ask

Does WPF use Silverlight?

1. Silverlight is simply a subset of WPF. 2. Silverlight is meant to be used online, while WPF is for local use.

Is WPF easy to learn?

Speaking from a trainer perspective, WPF is complex, so it can be tricky to learn when poorly explained. It involves learning XAML and it many cases MVVM. If you want to learn quickly about both WPF and the MVVM pattern, read this book: Learn WPF MVVM.

What is WPF and Silverlight?

Silverlight is Microsoft's latest development platform for building next-generation Web client applications (WPF) is Microsoft'slatest development platform forbuilding next-generation Windows client applications.


4 Answers

Should you learn ASP.NET or Winforms first? ASP or MFC? HTML or VB? C# or VB?

Set aside the idea that there is a logical progression through what has become a highly complex interwoven set of technologies, and take a step back and ask yourself a series of questions:

  • What are your goals; how do you want to balance profit against enjoyment
  • Are you short term oriented or in for the long haul
  • Are you the type of person who likes to get good at something and do it a lot or do you get bored once you fully understand it?

The next and hardest step is to come to accept that any advice you are given is bound to be wrong; and the longer the time horizon the more likely it is to be incorrect. If the advice is for more than six to 12 months, the probability the advice is wildly incorrect approaches 1.

I can only tell you my story, quickly. In 2000 I was happy as a consultant working profitably in C++ on Windows applications, writing about ASP.NET and WinForms. then I saw C# and the world turned upside down. I never went back.

Two years ago I had the same kind of revelation, only an order of magnitude bigger, stronger and with more conviction about Silverlight. Yes, WPF is magnificent, and it may be that I'm all wet about this, but I believe in my gut that Silverlight changes everything. There was no doubt then and there is no doubt today that Silverlight is the most important development platform for Microsoft since .NET (certainly) and possibly since the switch to C++.

In a nutshell, here is why. I don't understand where its limitations are. With most platforms I do: you can do this, but you can't do that. WPF is a pretty good case in point, as was ASP.Net and WinForms and, well really everything until now.
With Silverlight, I don't see the boundaries yet. Silverlight has already leaped off the desktop onto phones, and I don't see any reason for it to stop there. Yes, it is true, it is bound by the browser, but I see that less as a jail cell than as a tank in which Silverlight will be riding over lots of terrain (it must be very late, I should go to bed).

In any case, for now, learning Silverlight is a gas, there is a lot of material on the Silverlight.net site, and what is the very best thing about learning Silverlight is that if you don't see what you need you can holler at me and I'll make sure you get it pretty quickly.

Enjoy, good luck and the dirty little secret is you'll be fine whichever you choose. It's all just software.

-jesse


Jesse Liberty "Silverlight Geek"

like image 139
Jesse Liberty Avatar answered Oct 16 '22 11:10

Jesse Liberty


I'd say go with Silverlight first!

I have programmed with WPF and Silverlight before.

But as Silverlight is a subset of WPF if you go in too deep and try to switch to writing Silverlight applications, you'll be scratching your heads looking for that "tag" you learned to love in WPF but is not available in Silverlight.

When you master the basic things in Silverlight first, the extra mechanism/trigger/whatever features in WPF will simply add to most of what you've already known.

Silverlight in WPF differs at the features level, not just some missing controls or animations. Take the WPF triggers mechanism for example, is not available fully in Silverlight.

So learning the smaller subset first, you can extend that knowledge to the full set later, but if you started at the full set and gets addicted to some of the niceties available, you'll have trouble down the line when someone asks you to port your designed-utilizing-WPF apps to Silverlight.

like image 28
chakrit Avatar answered Oct 16 '22 13:10

chakrit


I'll go against the grain and say learn WPF first.

Here's my reasoning:

  • Much more resources are available for WPF than Silverlight, such as books, blogs, and msdn documentation

    • WPF Books
  • You're not dealing with a Beta, moving target

  • You don't have to deal with working with only asynchronous calls

  • Not limited by lack of features such as Merged Dictionaries, Triggers, TileBrushes, etc.

  • You don't have to worry about re-learning to do things correctly because of lacks of features in SL

like image 44
Alan Le Avatar answered Oct 16 '22 12:10

Alan Le


Silverlight is a stripped down version of WPF so it should have fewer things to learn inside. On the other hand, the two platforms have different targets (web & rich client) so I guess it depends on what app you're going to build.
If you just want to learn for yourself (no app in the close future) I'd pick Silverlight because it would be less to assimilate. Still, Silverlight is pretty much a moving target, much more than WPF, so you'll have to keep up with some changes from time to time (the joys of being an early adopter :)).
WPF has lots more stuff that you will probably want to use at some point but I would wait for the needs to arise first.

like image 5
kokos Avatar answered Oct 16 '22 13:10

kokos