April 28th, 1988 was a break through year for Windows programming. Windows had been out for close to 5 years is some form or another, the current iteration was Windows 2.0 for the 386 processor. At this point in time, it was hundreds of lines of code talking to undocumented APIs and lots of voodoo to get a simple Hello World application up and running. Charles Petzold released the first edition of Programming Windows. It was 860 pages of black magic distilling goodness that really enabled the giant leaps forward in Windows programming enabling a whole new generation of programs being written. He did it again in 1992 with Programming Windows 3.1 and again in 1998 with Programming Windows Version, Fifth Edition.
I, fortunately, didn’t have to read any of those because I was doing either VB or web programming. I started reading Charles’ books with Programming Windows with C#. It was the must have book for Windows Forms development if you wanted to really understand what was going on and why things did the things that they did. Now, it was not a style guide and it was not going to help you build Windows applications from a design perspective. It was hard core how the System.Windows.Forms and System.Drawing namespaces are put together. Even today – if I need to understand something deep in .NET Forms programming, I pull this book out to understand how the base controls work or how GDI+ works or how to work with images or anything else deep and black belt.
While he’s written a number of other books, the must have book that you need these days is 3D Programming Windows. It’s not going to teach you how to use Expression Design or Expression Blend to build applications. Rather it’s Petzold’s style of really going deep and explaining the underpinnings of the technologies and dispels the black magic. He explains the math behind the 3D objects, lighting effects, movements and more that you a creating. He dives deep into the controls available and lays out the best practices for the best performing 3D applications. It’s a great book and if you have any 3D work that you are working on – you should definitely pick this book up.
Now – why am I talking about this today? Turns out, Charles Petzold is going to be coming out to Memphis, TN to the Memphis Day of .NET. That’s quite a score for them. I can’t wait to hear his keynote. I’m sure that it will be deep and enlightening and I’ve always enjoyed hearing him talk.
Hopefully I’ll see you there.