Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

How to Get Started in WPF or Silverlight: A Learning Path for New Developers

So you're new to WPF or Silverlight and need to know how to get started? Here my "How to Get Started in WPF and Silverlight" learning path.

I'm going to assume you know what these technologies are (at a high level), just not how to use them.

 

1. Set up your Environment

The first thing you'll want is Visual Studio 2010. At the time of this writing, it was in RC, but it will be releasing soon. Visual Studio 2010 includes a decent Xaml editor that is far better than what we had in Visual Studio 2008. (Xaml is the markup language that WPF and Silverlight use for defining the UI) In addition, if you're targeting Silverlight 4+, you'll need VS 2010. Incidentally, the shell of Visual Studio 2010 was written in WPF. Yes, you can use the free editions of Visual Studio for Silverlight or WPF development.

It can be a bit much when starting out, but at some point, you'll likely need Expression Blend if you plan to do any real UI/animation work. Blend works for both Silverlight and WPF. It's a designer-oriented tool, so it looks a bit different from Visual Studio. I wouldn't grab it right away, and instead wait until you need it.

You'll also want to check out my Essential WPF/XNA/Silverlight Developer and Designer Toolbox article for ideas on what other tools may be helpful to you.

 

2. Follow one or more of these Tutorials

Various blogs, and the community sites have great getting started information.

Much of that information is available on the get started pages. The Silverlight one is more current than the WPF one. We're working on that.

 

3. Get a good Book

Some folks learn really well by reading books. If you're one of this group, this section is for you.

  • My current favorite WPF book is Windows Presentation Foundation Unleashed by Adam Nathan. The version that's out now is a bit outdated, but the concepts still apply. I understand Adam is working on a WPF4 version.
  • You can get in on early (digital) releases of my Silverlight 4 book as well.It's a book for folks who have written a fair amount of code, but haven't necessarily dabbled in Silverlight.

 

4. Follow these Bloggers

Blogs are the best thing to come about in the development community since usenet. There's a lot of great information out there. There's a lot of crappy information too. For that reason, I recommend you start with these blogs and expand out from there.

  • My blog. Besides tutorials, I put out a weekly link list of WPF, XNA, Windows Phone and other client developer links.
  • Tim Heuer - Program Manager for Silverlight.
  • Jesse Liberty - Program Manager for Silverlight. He puts out tons of great "getting started" type content. Jesse and I both work for Scott Hanselman on the same community team.
  • Mike Taulty has a lot of great WPF and Silverlight content on his blog.
  • WynApse, creator of Silverlight Cream. He puts out a daily link list of all that's good in Silverlight land.

 

5. Join these Communities

Once you get beyond the installation phase, you're going to grow faster if you leverage the community.

 

6. Build a Simple Starter Application

Start with a hello world app, similar to the demos. Some folks start with a Twitter client, but I don't recommend that unless you're really committed to the idea. The reason many folks get discouraged when learning a new technology, is they pick a starter app that is way too complex.

Start small, and build in iterations. You want to keep hitting milestones that both excite you and let you know you're making progress. For example, get a window or page up, then populate it with some fields, then handle navigation (if any) then worry about hooking into a data source. Refactor all the way through so you continue to have something you're learning from and proud of.

Really exercise data binding in the app you build. Binding is at the heart of Silverlight and WPF.

Oh, and remember, just because you're working in WPF/Silverlight doesn't mean you need to make the UI complex or fancy. Look at Visual Studio 2010 vs Visual Studio 2008. The differences are subtle, not in-your-face.

 

7. Wash, Rinse Repeat

Iterate on your sample app, or start new ones. Either way, expand your knowledge of things like styles, templates, binding, navigation and other core features.

 

8. Only then, worry about Patterns and Practices

You'll hear a lot about MVVM/ViewModel, MVP, Inversion of Control, TDD etc. Those are all excellent things to learn, but get the basics down first. When learning a new technology, folks often go in assuming they can tackle the same level of project they would with their technology of choice. Remember, despite all you've learned, you're a beginner at this specific technology.

 

Have other things that have helped you get started? Let me know in the comments below.

13 comments for “How to Get Started in WPF or Silverlight: A Learning Path for New Developers”

  1. Petesays:
    I agree, Kindle would be good. I'll see if my publisher has any plans in that area.

    @Antoine
    Silveright TV, yep. Lots of good stuff on Channel 9 in general. Silverlight TV isn't necessarily geared towards beginning devs, but it's good follow-up material.

    @Ray
    Great, thanks for the recommendation.

    @Chris
    Sure, just make sure you autograph it with something funny :)

    Pete
  2. Asim Sajjadsays:
    Nice to see that you have good articles on your site, but I am surprize to see that you have mention your web site name at first place , can I ask the reason, I think it was the user choice to choose your site at top not you. here is what you have posted.

    ◦My blog. Besides tutorials, I put out a weekly link list of WPF, XNA, Windows Phone and other client developer links.
    ◦Tim Heuer - Program Manager for Silverlight.
    ◦Jesse Liberty - Program Manager for Silverlight. He puts out tons of great "getting started" type content. Jesse and I both work for Scott Hanselman on the same community team.
    ◦Mike Taulty has a lot of great WPF and Silverlight content on his blog.
    ◦WynApse, creator of Silverlight Cream. He puts out a daily link list of all that's good in Silverlight land.

  3. Sagarsays:
    Hi,

    When a new technology comes up, thinking about architecture design is a most import thing we need to take care specially when we are going to use it in big big project. In most of sample application written in SL i have seen coding as follow:


    <StackPanel Orientation="Horizontal" >
    <TextBlock Text="Binding FirstName"></TextBlock>
    <HyperlinkButton Content="Binding LastName" Tag="Binding ID"></HyperlinkButton> </StackPanel>


    .....if talk about architecture design clean separation of layer is most important and here we have mixed PL layer with binding directly....so whats are the best practice while developing SL project keeping in mind architecture design,separation of layer):
    Thanks
    Sagar
  4. Dick Bakersays:
    Pete,

    this page was created approx March 2010 (VS2010 and SL4 still in Beta) and MUCH has changed since!
    - please update it with the SL5 latests and eventually what BUILD reveals

    I bought the SL4iA title so reluctant to buy the SL5iA+SL4iA bundle especially as not MUCH has changed
    - there should be Manning discount for validated purchasers to buy the SL5iA (to replace earlier)

    thanks
  5. Petesays:
    @Dick

    You say to update this because much has changed, but then say not much has changed. :)

    I don't control the pricing on the book at all. However, there is a 50% off code right now, good for just a little bit longer. Article is on my blog.

    That said, I'll update this in a bit.

    Pete

Comment on this Page

Remember me