Developing .NET without an IDE
It might be a wrong decision for a .NET developer to switch to OS X. Granted, Mono simply works and that in itself is fabulous news. The C# compiler it ships is mature, stable and produces efficient code. Heck, even the Windows Forms implementation is completely usable.
But how to develop?
On Linux and OS X, I use the terminal for everything — in fact, this was one of the main reasons for me to make the switch. I create all text documents in MacVim or even plain Vim — including source code. Usually, this is no big deal. Contrary to popular beliefs from the Windows folks, this is a very rich development environment. Especially for languages such as C++, life is good.

Enter .NET. For the purpose of the discussion I will concentrate on C# because the other mainstream .NET language — VB — has no mature, up-to-date compiler for Mono (yet). Compiling and running is as easy as
make debug make test
(with a little makefile magic).
So this part of an IDE is well taken care of. The interactive debugging I can live without. What remains now is editing code. And unfortunately, my previous observations no longer apply: editing C# source code in a text editor is a royal PITA.
Several factors contribute equally.
First off, developing GUIs without a form designer is just no fun. Even before the advent of WPF, the Visual Studio WinForms designer has shown how effortless good SmartClient design can be. In particular, coding GUIs manually involves a lot of typing.
Sure, there’s the Mono WinForms designer which looked quite nice — right until I tried placing a control which simply didn’t work, try as I might.
My memory is worse than I previously thought. The .NET framework is just too large to memorize more than a small subset of it. IntelliSense for auto-completion of methods has become an integral part of how I write C# code and I now see that I can’t work efficiently without it. Just to retrieve member names I now have to have dozens of MSDN browser windows open and since the MSDN online documentation is also quite slow, this puts a real, measurable damper on development speed.
.NET development used to be agile for me.
Last but not least, error correction. Even though C#’s background compilation pales in comparison to VB’s, it’s very good at recognizing the single error that constitutes an estimated 90% of all my errors: typos. I’ve got spelling switched on in Vim but that’s not enough, so most of these errors are found by the compiler.
Did I mention that Mono’s integration into Unix tools is less than perfect? Usually,
makeworks together very well with Vim: compilation errors are displayed inside the editors and I can jump back and forth between the offending lines. So far, I haven’t got that working for the Mono’s C# compiler so whenever there’s an error, I’ve got to navigate to the right file and source line manually.
It’s time for a good cross-platform .NET IDE to emerge. MonoDevelop unfortunately isn’t usable under OS X (no, really), and even under Linux it leaves a few things to be desired.

Why not put XP/Vista/Win7 into a VM. If you use paralells then you should even be able to have visual studio open onto the desktop just like an application?
If you’re platform is a Mac, then this might be the best solution. I wholeheartedly agree with you regarding the designers for the gui’s, that is what makes C# development simple, not the language per se.
Hi Spence, a VM would be a solution, right. In fact, I’ve used Parallels for quite some time and it’s true that this works remarkably well. However, it is still a crutch. I have to maintain (at least partly) two separate (file) systems and there are a lot of minor problems, beginning with the fact that Windows uses different keyboard bindings, culminating in the realization that Windows an OS X are just different, and that I chose OS X for specific reasons and I don’t want to give up on its user experience, even when using Visual Studio. For me personally, the biggest problem is probably that I work a lot on the console, something which simply doesn’t work on Windows any more.
MonoDevelop on the Mac has full intellisense. Pretty much as good as VS. Also, they have all the basic refactorings.
Still, no WinForms designer, but its a pretty good IDE.