tags:

views:

419

answers:

4

Hi,

I think I have got some grasp over basic WPF fundaes.

Now I want to go deep. However, apart from understanding how the classes work under the hood, I would like to learn practical aspects of WPF; that is, how to use it in real life projects.

I have seen a number of such books for Web Frameworks and languages such as Django, PHP etc, but none for WPF or for that matter, Winforms. All books of WPF/Winforms just include snippets, for that particular section/chapter.

I saw this question: http://stackoverflow.com/questions/720727/practical-silverlight-wpf-books, but it has more silverlight taste. I want for WPF.

I think reading blogs by WPF disciples and others is a good option, but I was thinking more of a systematic study.

So my question in nutshell is, what is the best systematic way to learn practical WPF programming for an advanced beginner?

Thanks!

+2  A: 

If you have some of the basics under your belt, the best way to learn is to write code. Give yourself a small project at first. Maybe a small component or very basic app, and then try to build it. You'll be amazed at how quick you'll hit a stumbling block for something you don't know and then 9 / 10 you can find the answer on the internet. Hey presto, you've learnt something practical that may have come up if you were building it for your employer or client. For the other 1/ 10 just ask the question here.

Once you have completed two or three of these it'd definitely then be worth getting some more advanced books. Flick through these to see if you could improve what you have already done. The more advanced books and online articles will become a lot clearer once you have got a lot of the practicalities under your belt.

James Hay
But do you and other readers think that this is the right approach for learning some good practices?In my opinion, if I have some mentor, in form of an expert author, I would be able to learn certain practical good practices and then apply them to my own projects.
virtualmic
I still believe this is the right approach. Experience taught me that i improve mainly by making mistakes at some point. You have to ask yourself a lot of these questions most of the time. Personally i would try to solve a problem, take a look at what i have done, is there any way i could improve it, is it simple to understand, is it instantly clear what it does, does it 'feel' right. If i'm still not happy, THEN i would ask someone else for their opinion. Something that StackOverflow is perfect for.
James Hay
If you find any books that teach good practices, tell the world! Most books I've seen simplify things to the point where they're teaching bad practices. Same for conference sessions.
Joe White
+5  A: 

I started with "Essential Windows Presentation Foundation", because it starts you out building running applications from the beginning. It starts with Window and goes from there. The first working WPF code sample is in Chapter 1, starting on page 17.

Then I read "Windows Presentation Foundation Unleashed", which goes much deeper overall, but starts with theory. IMO, it wouldn't have been a good book to start with -- far too much dry theory, and no chance to try it out until they finally get to Application and Window in Chapter 7; you don't know enough to write a running WPF app until page 198. So I wouldn't recommend this as the first WPF book you read. But for someone who already knows the basics, it's terrific.

After that:

  1. Start writing hobby apps. I've been teaching myself WPF by writing a couple of video games and a dependency-tracking task-list app. Haven't finished any of them yet, but I've learned loads.
  2. Teach someone else what you know. This is a fabulous way to find out where the gaps in your knowledge are, and to help cement what you already do know. I've been doing WPF Lunch and Learns for the other devs in my department. One day we sat down with a blank Visual Studio project and made up a movie-database app over lunch.
  3. Whenever you find something you don't know how to do yet, search Google and/or StackOverflow. If you don't find the answer, ask it here.
Joe White
A: 

My own experience at learning WPF was taking a WPF course which eventualy made me confident enough to try writing my first apps.

Soon after I realized that I don't have a clue where to start :).

What helped me most was going over MSDN samples, not always code production quality, they are simple enough when you try to grasp the basic foundomentals.

ArielBH
A: 

I recommend Charles Petzold's WPF book Applications = Code + Markup as being the best in-depth treatment of WPF: it takes you right down into the bowels of the beast!

Samuel Jack