Friday, January 14, 2011

Top 5 Tools for .NET Agile Development

In my opinion, the following are the top 5 tools for Agile Development in the .NET environment.

NUnit - Helps write automated Unit Tests
Automated Unit Tests are at the core of Agile development philosophy. NUnit Framework allows you to write automated Unit Tests for your .NET code.
http://www.nunit.org/index.php

Rhino Mocks - Helps write more robust Unit Tests
Think of Rhino Mocks as a supplement to NUnit. NUnit is very good at verifying the state of an object before and after execution. What RhinoMock adds is verification of object behavior (that is what methods are executed) during the test. The Rhino Mocks web site describes it as "A dynamic mock object framework for the .Net platform. It's purpose is to ease testing by allowing the developer to create mock implementations of custom objects and verify the interactions using unit testing."
http://ayende.com/projects/rhino-mocks.aspx

NCover - Helps gauge if enough tests are written
Simply put NCover monitors and reports the percentage code that is executed during a test run. The Code Coverage Percentage is a useful metric in itself. However, more importantly, NCover is really handy in discovering areas of codes that do not have Unit Tests written for them at all.
http://www.ncover.com/

CruiseControl - Facilitates continuous integration
If you work in a team of more than one, CruiseControl is a must-have. CruiseControl serves the dual-purpose of a build/test machine as well as a continuous integration server. Equally important is the ability of CruiseControl to send build/test failure notifications to the developers. CCTray is a handy tool for developers to proactively monitor the CruiseControl server for build/test failures.
http://cruisecontrol.sourceforge.net/
http://confluence.public.thoughtworks.org/display/CCNET/CCTray

Visual Studio - Helps with refactoring
Visual Studio provides a robust IDE for .NET development. The "Refactor" context menu options are particularly useful when refactoring code. For example, Refactor | Rename can be used to rename a variable or a method. Upon rename, Visual Studio will not only rename the variable or the method declaration but also all the references to the variable or the method. In addition to renaming, there are several other refactoring helpers available in Visual Studio.
http://msdn.microsoft.com/en-us/visualc/aa700831.aspx

Measure Performance of Deployment Machine

CPU-Z utility for checking CPU speed