Yes, it’s that time again—time to throw away everything you know and start all over. The era of Microsoft .NET has arrived, and with it comes a promise to change software development as we know it. Microsoft .NET is many things, but first and foremost it’s a better way to write software in an Internet-centric world. To benefit from .NET, you’ll find it helpful to let go of any preconceived notions and prepare yourself to think about software in a whole new light. That means shedding comfortable clothing such as the Windows API, MFC, and COM, and immersing yourself in new ways of developing and architecting software that are unlike anything you’ve seen before.

When I began writing this book in July 2001, I had been working with the .NET Framework SDK for more than a year. The .NET Framework was in beta at the time and was still months away from emerging as a released product. When I first laid eyes on it, I expected to see something that resembled COM. What I saw instead was a radical departure from anything Microsoft had done before and a better way to write software. If your company’s plans include Web apps, Web services, or other applications that use the Internet as their platform, there simply is no better way to write those applications than to use Microsoft .NET. I would no more consider writing a Web app today with ASP than I would consider using a wrench to drive nails. The first ingredient for a successful software project is picking the right tool for the job. If your job involves Web programming (and maybe even if it doesn’t), Microsoft .NET is just the tool that you need.

This book is about Microsoft .NET—what it is, how it works, and how to write software that uses it. Among other things, you’ll learn about the common language runtime (CLR) and the highly structured environment that it provides for executing code compiled from C#, Visual Basic .NET, and other languages. You’ll learn about the .NET Framework class library (FCL), the stunningly comprehensive class library that provides the API managed applications write to. You’ll become acquainted with the programming models embodied in the FCL, including Windows Forms, Web Forms, and XML Web services. And just as important, you’ll learn how to make all the pieces work together to write sophisticated applications that leverage the power of Microsoft .NET.