I'm working on my first major application (will be open source) and among other considerations such as localization (another topic, later) I'm woried about making this app cross-platform. The target platforms (including Windows, obviously) are Mac and Linux.

From everything I've been reading, the app should be made to run under mono. Does this mean I have to compile under mono or will mono run .Net apps just fine (with exception to currently unsupported classes, etc)? Since I'm most familiar with the Visual Studio 2005 IDE, this is my prefered IDE. I am willing to switch if needed, please provide suggestions.

Second question: I understand mono does not and is not likely to support the System.Windows.Forms namespace. I also read that GTK is a sutable alternative. What's the likelyhood of getting a Visual Studio 2005 forms designer that uses GTK instead of Windows Forms?