A client recently moved its user community to a standard desktop configuration with enhanced security to reduce the installation of non-standard applications. The development staff was agitated when confronted with the details of the migration since the organization deemed many of their applications unnecessary. The situation was resolved after countless meetings, but developers were forced to go to bat for their favorite pieces of software. We all have our favorite applications, but which ones increase productivity and make our job easier?
.NET developers have a standard group of applications that are often necessary to handle daily development chores. While there are other development environments available, Visual Studio is the standard. Developers often have a local SQL Server instance for development and testing, and a version control application is necessary when more than one developer works on a project.
Multiple versions of these applications are often necessary for both maintaining older code while building new applications and keeping up with technology advances. For example, I have versions 2003 and 2005 of Visual Studio, along with an older version for legacy applications. In addition, both SQL Server 2000 and 2005 is running.
Beyond these standard tools, there are a variety of applications to assist with the various tasks developers face on a daily basis. A good example is the ASP.NET Version Switcher utility that allows you to easily switch between ASP.NET versions when and if necessary. Let's take a closer look at a sampling of utilities you may use or need.
More from Microsoft
Microsoft provides a number of tools to help developers be more productive. A good example is the Application Blocks, which provide solutions to common development scenarios. You can use them to greatly reduce the coding time and reduce errors with fully tested code. The Application Blocks are available free of charge.
For those developers focused on Web development, Microsoft's Expression product line provides tools to help with the process. In addition, the popular open source NDoc documentation tool has been replaced with Microsoft's Sandcastle to ease the painful process of creating documentation. Also, you can check your code against design guidelines with the FxCop tool. You can browse MSDN for more tools. Let's turn our attention to non-Microsoft tools.
If you ask 10 developers to list their favorite development tools, you would probably hear 10 different answers. The following list provides a sampling of some of the more useful and popular tools available today.
- Snippet Compiler: Developers often need to run a bit of code to see the results, and building and compiling a project is overkill in this situation. The Snippet Compiler allows you to compile small code snippets quickly and easily with support for .NET Framework 1.1 and 2.0.
- NUnit: Testing is a critical aspect of every development project. The NUnit tool facilitates the creation of unit tests to test projects as they are developed.
- NAnt: The popular NAnt tool allows you to easily create build processes for your projects. It is a great tool when working with multiple developers, but the latest version of the .NET Framework includes the powerful MSBuild tool, which provides much of the same functionality without the need of an additional install and setup.
- CruiseControl.NET: This provides an automated integration server so that code changes are automatically incorporated into project builds. It smoothly integrates with NAnt and Visual Studio and provides monitoring tools to keep tabs on projects and builds.
- Altova XML Suite: Simple text editors are fine for working with the occasional XML file, but larger XML-based work is simplified with XML-specific tools like the XML Suite from Altova.
- NDepend: Examine the efficiency of an application's code with code metrics generated by the NDepend tool.
- CodeSmith: Reclaim development time by generating common code with the CodeSmith tool.
What about you?
While a .NET developer can build applications with a simple text editor and the command-line tools available with the .NET Framework, there are a variety of tools available to help with the process. What tools do you find the most valuable in your daily development chores? Share your experiences with the .NET community by posting to the article discussion.
Miss a column?
Check out the .NET Archive, and catch up on the most recent editions of Tony Patton's column.
Tony Patton began his professional career as an application developer earning Java, VB, Lotus, and XML certifications to bolster his knowledge.
Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a production environment on a daily basis.