Foreword

“We shall not fail or falter; we shall not weaken or tire... Give us the tools and we will finish the job.”

Sir Winston Churchill (1874–1965) BBC radio broadcast, Feb. 9, 1941

I love my toolbox. I hate wasted time, wasted keystrokes, wasted potential. I’ve worked as a professional developer using Microsoft operating systems of one kind or another for nearly 15 years. As a developer, I’ve always tried to get the most out of my hardware and software, and as I’ve learned new techniques or discovered faster ways to work, I’ve gathered tools for my ever-growing collection. My toolbox is my collection of not only cool utilities, but also best practices as a user and a developer.

I remember the joy of squeezing another 2K out of upper memory on my 386SX. The tool that made it possible? QEMM from Quarterdeck. Didn’t have enough space on my massive 20 MB drive? Stacker gave it new life, if only for a few days. Then Windows 3.1 came along, and with it new tools like Norton Desktop and PKZIP. Windows 95 opened a world of Power Toys and Kernel Toys and WindowBlinds to manipulate my reality. The advent of Visual Basic 6 brought with it tools garnished with lime-green backgrounds and purple buttons, but tools they were and use them I did.

When the .NET Framework came along, I continued to add to my tool belt with gems from the increasingly prolific .NET open source community. Since 2004, I’ve maintained a pretty long list of tools at http://www.hanselman.com/tools/ that I revise each year. My list of tools has breadth but is short on depth. This book fills in the gaps so many simple tool lists contain—it gives us deep context, a better understanding of why to choose certain tools, and information on how to use those tools effectively.

James and Jim have done a massive amount of work for us, applying their years of development expertise and enthusiasm for great tools into the creation of the book you’re holding. James’s enthusiasm for hacks and tools has even overflowed onto the pages of his web site, http://www.visualstudiohacks.com.

Why buy a book filled with lists of tools? Tools aim to save you time, and this book aims to save you even more, by tracking down for you those gems you won’t be able to live without. Far from being just a simple list, this compilation is filled with applets and applications along with deep analysis of and commentary on their relevance to your life as a developer. Some of these tools you’ll recognize; some you won’t. All can be incorporated into your own Windows development process and have been carefully selected to help you finish the job.

—Scott Hanselman

http://www.computerzen.com (my blog)

http://www.hanselman.com/tools/ (the tools list)

The Scottish essayist Carlyle famously defined man as the tool-using animal. Somewhere in the deep past, our monkey ancestors started banging together stones and bones and brought forth hand axes, and the idea caught on. These days, the urge to build tools seems to run particularly strong among software developers. Give a developer a choice between writing some code and writing a general-purpose code generator to write the code for him, and you’ll find him staying up late cranking out a wonderfully complex framework that will make life easier down the road.

Microsoft long ago recognized this bit of monkey behavior among some of their customers and started figuring out ways to take advantage of it. You can trace a pattern through Windows, Office, and Visual Studio of documenting APIs, providing sample code, and implementing extensibility points, with the end result being that it has become easier and easier for external developers to layer their own tools on top of Microsoft’s offerings. If you’re faced with a repetitive task in Windows, you can automate it (the new PowerShell command processor brings new levels of flexibility to this arena). If you’re solving business productivity problems, you can inject your own code into Microsoft Office in a variety of ways. If you’re a developer writing tools for developers, you can tap the dozens of extensibility points and thousands of APIs in .NET and Visual Studio to create almost any tool imaginable.

This last ecosystem has been one of the most fertile in the Microsoft universe, and it’s the one that the authors of the book that you hold in your hands have chosen to explore. Several factors come together to explain the explosion of Windows developer power tools in the last few years: the incredible richness of the .NET Framework, the sheer volume of the available documentation, and the rise of the Internet as a home for developer-to-developer interaction have all contributed to a rich environment for tool-building. But there’s another factor, too: developers are inclined to scratch their own itches.

Developers see the problems in their mainline development tools—whether from Microsoft, IBM, Borland, or another major player—every day. When they think about building tools of their own to respond to problems, what’s more natural than to solve their own problems first? It’s this natural urge, together with the desire to share (and perhaps to show off), that gives us the rich variety of tools showcased in the present volume. If you’re only using shrinkwrapped tools from major vendors, no matter how good they are, you’re missing out on an amazing collection of useful code.

Not every developer will need every tool in this book, of course. There’s the ever-present danger of getting so loaded down by your toolbox that you can barely move. But if there are rough edges in your process, places where you feel vaguely unhappy and inefficient, the chances are pretty good that someone else has had the same problem before you. The solution may be just a few pages away. James Avery and Jim Holmes have done great work in locating and documenting a vast collection of useful tools here, saving you the work of hunting them down one at a time. The half-dozen that make their way into your daily process will more than repay the time that it takes you to read their work.

—Mike Gunderloy Editor, Larkware.com

Get Windows Developer Power Tools now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.