The only way I used it to use Mono and develop using one of .NET languages. You can install Mono on Mac OS X. Mono is the alternative CLR implementation available for many platforms (see the links below).
You can start with development on .NET, if this is more convenient for you. Then you need to test it on Mono for Windows. Normally, if you have identical Mono settings and other identical components on Mac OS X, your code will work without recompilation. The major difference is between .NET and Mono (even on Windows), so it would be your major part of work addressing cross-platform issues.
Please see:
http://en.wikipedia.org/wiki/Mono_%28software%29[
^],
http://www.mono-project.com/[
^],
http://en.wikipedia.org/wiki/.NET_Framework[
^],
http://en.wikipedia.org/wiki/CLR[
^].
If you want behavior close to native Mac OS X behavior, you will need such a project as monobjc:
http://en.wikipedia.org/wiki/Monobjc,
http://www.monobjc.net/.
With it, development on Windows will be much more difficult. Still, you will be able to compile it on Windows, but you would not be able to use visual programming and — worst thing — could not test on Mono for Windows. You would need to do a big part of work on MonoDevelop:
http://en.wikipedia.org/wiki/MonoDevelop,
http://www.monodevelop.com,
http://en.wikipedia.org/wiki/Standard_Libraries_%28CLI%29#Base_Class_Library[
^].
Even worse, you would need to do considerable part of it on MonoDevelop for Windows.
Alternatively, you can use
System.Windows.Forms
application (some incompatibilities apply, so use Mono for Windows for testing everything), but such applications look somewhat ugly and foreign on Mac OS X.
System.Windows.Forms
is not a part of BCL (see the like above) and is not standardized under EMCA standard for CLR. Please read on Mono portability:
http://www.mono-project.com/docs/getting-started/application-portability[
^].
[EDIT]
Probably, you can improve the level of compatibility compared to
System.Windows.Forms
(not 100% sure because I did not work with the very latest versions of Mono) if you use Qt or GTK+ for .NET and Mono. Both libraries can be installed on both Windows and Mac OS X and are integrated with .NET, Mono and MonoDevelop, but the use of Visual Studio is also possible.
The drawback is: you would need to have the installations of one of these libraries on both systems. Please see:
http://en.wikipedia.org/wiki/GTK%2B[
^],
http://www.gtk.org/[
^],
http://en.wikipedia.org/wiki/Qt_%28software%29[
^],
https://qt-project.org/[
^],
http://en.wikipedia.org/wiki/MonoDevelop[
^],
http://monodevelop.com/[
^].
Also, you may want to wait for Windows 2015 which is due in November. It promises fantastic cross-platform features, but I don't know the detail well. Please check it yourself.
[END EDIT]
Note that with Mono development for Linux you have much less problem. You can use the same applications which work on Mono for Windows in all cases.
—SA