The Mono project has released Mono 2.0. As most of you will know, Mono is an open-source implementation of Microsoft's .NET framework for Linux, Mac OS X, Windows, and other operating systems. The 2.0 release comes packed with new features, the main ones being the compiler upgrade to C# 3.0 with support for LINQ, as well as the inclusion of ADO.NET 2.0, ASP.NET 2.0 and System.Windows.Forms 2.0. The release notes detail all the changes and new features.

Excuse my ignorance, but how useful is Mono for porting .NET apps to Linux without modifying the source? For example, Paint.NET would be a nice program to have under Linux. Can we just take the source and compile it with Mono without hacking the source?

You don't need to recompile fully-managed .NET apps to get them to run on Linux under Mono. They will Just Work.

The problem is when a .NET application calls into native c libraries (unfortunately, Paint.NET does this, but people are working on a Linux port of the native library that Paint.NET uses).