Key Features

* Platforms

 * Mono Support: C#, Nemerle, PHP

 * Microsoft Support: C#, VB, .NET Compact Profile

 * DotGNU Support: C#

 * Multiple Framework Version Support: 1.1, 2.0, 3.0

 * Pluggable architecture for adding new compilers and executables.

 * nmaven-settings file for selecting the environment (MONO/MS/GNU, vendor/framework version, install location, etc)

* Other

 * NUnit support

 * Resource generation and embedding

 * Web Application Packaging and Deployment

 * XSD and WSDL Generation

 * Assembly Signing

 * FxCop Support

 * Writing Plugins in .NET
 
* Cool New Features

 * Experimental IDE Support (VS2005, #develop)

 * New artifact resolver that uses RDF