Contents of This Book

We’ve laid out this book in much the same order developers follow while developing software. First we deal with writing code, then troubleshooting, and finally miscellaneous tasks. Individual chapters flesh out each of those areas.

Part I: Writing Code

Chapter 1, Building ASP.NET Applications

This chapter covers tools to help improve and speed your ASP.NET development and application performance. We cover a number of great controls and three different variants of Ajax implementations.

Chapter 2, Working with Windows Forms

.NET’s Windows.Forms namespace has many great features, but there’s room for improvement. This chapter helps you find tools and controls to style up your Windows Forms applications, easily implement docking windows, and examine how controls send and receive messages.

Chapter 3, Developing in .NET 3.0 (a.k.a. “WinFx”)

The components making up the next Framework version (.NET 3.0 or WinFx, call it what you will) are great enablers. The Windows Communication Foundation (WCF, formerly “Indigo”) is drastically changing the way developers handle communication in their systems, and the Windows Presentation Foundation (WPF, formerly “Avalon”) gives an amazing facelift to applications. This chapter covers tools that are fundamental to building great systems in WCF and WPF.

Chapter 4, Working with Code Libraries

A wealth of functionality is available in open source libraries. Here, we’ll show you libraries that let you work with PDF files, create RSS feeds, spellcheck content, build archive files in popular formats, and more.

Chapter 5, Generating Code

Writing repetitious code like data-access layer implementations is tedious and error-prone. This chapter shows you how to automate the generation of everything from classes and mapping files for Object/Relational Mappers to strongly typed datasets.

Chapter 6, Writing Code

Not all .NET development is done in VSTS. Visual Studio Express editions are freely available, SharpDevelop offers a great alternative, and even the plain-text editor Notepad2 has plenty of great features. This chapter presents these editors along with other tools to help you write your code.

Chapter 7, Creating Documentation

Your project isn’t done when you’ve built and tested your software. You need solid documentation so users and maintainers can understand your system. This chapter shows off great tools to help ease the burden of creating critical documentation.

Chapter 8, Enhancing Visual Studio

Visual Studio, in any incarnation, is a great tool that’s missing critical pieces. Read this chapter to see how to accomplish everything from managing window layout more efficiently to improving how the Class Designer works.

Part II: Checking Code

Chapter 9, Analyzing Your Code

You think you’ve designed and implemented a well-architected, well-coded system? This chapter introduces several tools to help you test those assertions, and to highlight portions of your system or code base that might need attention.

Chapter 10, Testing Your Software

Well-written code isn’t enough. You need to prove your assumptions and approaches by ensuring you’ve adequately tested your system. Here you’ll find everything from unit test frameworks to complete frameworks for automating functional testing in Internet Explorer.

Part III: Running a Development Project

Chapter 11, Working with Source-Control Systems

Working with a software configuration management (SCM) system is critical to having a well-running development process. The two most popular open source systems available today are CVS and Subversion. In this chapter, you’ll find tools to help set up a Subversion repository, interface with existing CVS or Subversion repositories, and compare and merge different versions of files.

Chapter 12, Building, Using Continuous Integration on, and Deploying Your Applications

You need to build your software, you’d probably like to have testing and integration run automatically, and at some point you need to get the software out to production servers. Tools in this chapter help you accomplish all that. We’ll look at everything from NAnt and MSBuild for automated build processes to Unleash It for deploying to servers.

Chapter 13, Boosting Team Collaboration

Unless you’re working solo, solid communication is vital as your project progresses. This chapter lays out tools to help foster communication, aid project management, and let you take control of other people’s systems for support or demonstration purposes.

Chapter 14, Tracking Bugs, Changes, and Other Issues

Software changes. Software has bugs. You need systems in place to help you track and deal with both of these issues. Here we show you four different systems, ranging from a bare-bones bug tracker for small projects to enterprise-level tracking systems that interface with source-control systems.

Part IV: Troubleshooting Code and Applications

Chapter 15, Troubleshooting and Debugging

Remember how we said, “Software has bugs?” This chapter introduces tools to help you find and stomp out those bugs, including tools that help you see what’s in HTML traffic between your browser and a server, monitor what’s going on with the Common Language Runtime’s object allocation, learn how to parse logs with a utility, and much more.

Chapter 16, Using Decompilers and Obfuscators

Sometimes you need to get down into Microsoft’s Intermediate Language to understand what your code is really doing. Sometimes you need to prevent others from doing just that in order to protect your company’s intellectual property. Tools in this chapter will help you with both tasks.

Part V: Code Tools

Chapter 17, Tightening Up Your Security

Security is complex and time-consuming, and it’s absolutely critical to get it right, especially if you’re dealing with any form of sensitive data. Read this chapter to learn about tools that help you with threat analysis, cross-site scripting protection, encryption, and working with basic user accounts for development.

Chapter 18, Building Your Application on Frameworks

Frameworks are like code libraries on steroids. They let you reuse already built functionality but often tie in much richer feature sets. Some frameworks even provide you with prebuilt applications to help you get up and running quickly. This chapter highlights tools ranging from application frameworks to content-management systems to business rules engines.

Chapter 19, Working with XML

XML is a ubiquitous language of communication these days. It’s used for messaging between components and systems, it persists application data, and it handles configuration information. Here we cover tools to help you with transformations, merging and differencing XML, and manipulating XML data during processing.

Part VI: Working with Databases

Chapter 20, Interacting with Databases

Many .NET developers make use of Visual Studio’s built-in support for SQL Server; however, Oracle’s database system is also well supported with a number of powerful tools. We’ll show you those tools in this chapter, and we’ll cover utilities to help you easily create those nasty database connection strings.

Chapter 21, Exploring Object/Relational Mapping

Nearly all developers are familiar with the traditional Relational Database Management System (RDBMS), which stores information in table-based schemas. Object/Relational Mapping (O/RM) enables you to work with business objects, often streamlining your entire data-access layer. This chapter covers a number of O/RM tools that help you create objects and persist them in databases.

Part VII: Miscellaneous

Chapter 22, Enhancing Web Development

Web development is a tough task. Your sites must meet numerous standards and achieve cross-browser compatibility. You need to be able to chase down irritating bugs in certain browsers, and you need to ensure that your Cascading Style Sheets behave as you expect. Here we cover a number of tools to help you with standards verification, memory-leak detection, and development for Firefox and Internet Explorer.

Chapter 23, Boosting Productivity with Windows Utilities

A developer’s life is full of small tasks that, together, add up to a huge time drain. This chapter covers handy utilities that will help you with tasks, including figuring out what processes have a file locked, quickly creating regular expressions, and grabbing screenshots for your documentation.

Part VIII: Appendix

The Appendix shows you how to perform two common tasks you’re likely to encounter in using Visual Studio with the tools described in this book. First, you’ll learn how to make your Visual Studio projects aware of the code libraries installed with a tools, and then you will see how to add controls that ship with a tool to the Visual Studio toolbox.

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.