In order to appreciate better what WPF brings to the table, I feel it’s necessary for me to learn about its predecessor, GDI+. At the office, we have an amazing library of books related to .Net programming, software architecture, mathmatics, basically anything that will assist us in becoming better at what we do (cranking out software). One book I found in our collection was GDI+ Programming in C# and VB.Net. Although it’s not the most recent book in the world (published in 2002), it is a pretty encompassing text on everything you can do with GDI+ and it even gives some introductory background on how it improves upon GDI (the precursor to GDI+). GDI+ is essentially a .Net wrapper around GDI that adds the power of object-oriented programming to a procedural API.
From the first example, the author (Nick Symmonds) shows how GDI+ simplifies the task of drawing a line from six steps in GDI to three in GDI+. It truly is as dramatic as going from creating a form based application using the Win32 API to developing in Winforms. WPF is a similar leap in terms of ease of development (once you get past its learning curve).
So my goal is to learn GDI+ and discover what it takes to transistion the skills required for GDI+ programming to WPF. My hope is that this process will make me a stronger WPF developer.
The other book that I will be referencing is Programming WPF by Chris Sells. I will be using that book to learn how to translate GDI+/Winforms code into WPF code. The next post will be my first side by side comparison of GDI+/Winforms development and WPF development.