Last updated:
1. September 2008
(Start sub-menu)
(End sub-menu)
“If you’re developing Windows software for a commercial or shrinkwrap type market, this book should be required reading. ”
“The author has paid a lot of attention to details […] that make the application easier to use and more intuitive. ”
“A highly recommended, user friendly, and much appreciated addition to the Windows programmer’s reference shelf.”
“Petter is one of my favorite techies. When he solves a problem, it stays solved. This book’s great strength is that it details how to do error handling and exception handling in the UI and how to architect that into the design. Error handling is so important and is often done so poorly or not at all.”
by Petter Hesselberg
R&D Books, January 2000
528 pages, includes CD-ROM
ISBN: 087930605X
“Error handling has been omitted for clarity.”
Too many times have I read that sentence in a programming book or article. Not that there’s anything inherently wrong with this; simplification is a legitimate teaching device. The problem is that the literature is terribly one-sided—it’s a rare gem that says, “error handling has been included to show how it’s done.” Many programmers never learn how to handle errors and anomalies. Even more chilling, some never realize that the issue exists. The results are all around us: robustness and reliability are rarely considered defining characteristics of software.
This book gives you an understanding of what it takes to build industrial strength software—software that works reliably and robustly, software that doesn’t get between the user and his task. It will not bestow software nirvana upon you; indeed, no book ever could. That unattainable state of grace can only be approached through experience; the most a book can do is to help you get the right rather than the wrong kind of experience. My highest hope is that the book will inspire you to care—about your users, about your profession and about getting the details right.
The adjective “fragmented” describes much of the computer literature. Many books use minimalist examples to illustrate various APIs and subsystems, and rarely draw things together into a coherent whole. Again, this is not necessarily a Bad Thing; many excellent books use this approach.
Unfortunately, it is not enough. When you assemble those fragments to create a full-blown application, their interaction gives rise to an exponential increase in complexity, and a myriad of details must be considered. This aspect of software construction is rarely covered, and the litterature is left with a hole large enough to drive a truck-full of bugs through. Sadly, bugs and inconsistencies often are considered defining characteristics of computer software.
This book takes a more holistic approach; it is built around the development of a single 20,000-line application.
In addition to error handling and application architecture, the book focuses on usability. Efficient flow of information should receive much consideration during software design, but the current state of the World Wide Web is proof that it rarely receives any consideration at all. Does the user really need that animated deodorant on his desk, or would your development effort be better spent ensuring that the user can get his work done efficiently and effectively, and that his data are never lost? While I like cool stuff as well as the next programmer, I think it should be built on solid ground rather than shifting sands.
Page xvii: The name Leif Arne Roues should be Leif Arne Rones.
Page 46: “…A subclassing function that applies yellow backgrounds, for example, could conceivably be used for both edit controls and list boxes. Then you’d have to store two pointers to two old window functions…”
This does not make any sense. Change to:
“…A single window could certainly have more than one subclassing function associated with it—one to provide a yellow background, another to filter out illegal characters. Then you’d have to store two pointers to two old window functions…”
(Start bottom menu)
Top •
Home
• Articles
• Book
• Resources
Windows Developer Magazine
• R&D Books
• CMP Books
Amazon.com
• Amazon.co.uk
• Contact Petter Hesselberg
(End bottom menu)
TextEdit on CodePlex
PISW on CodePlex
Download source code (archive)
Programming Windows is very tough
Provided your method is wrong;
Your programs get labeled “unusable stuff,”
You won’t have employment for long.
Programming Windows is breezy and cool
Provided your method is right;
You finish on time and can lie by the pool,
You don’t have to work through the night.