Anwser #1: I may have perfect sense, but who knows? The problem is that Mac is more hostile to the "foreign" developers than Linux and any other OS. Basically, if you managed to develop some application which runs on both Windows and Mono, it will be executed on Mac OS X or iOS without recompilation, but might look not like a first-class citizen. You can use MonobjC to develop near-native Mac OS X or iOS applications, but this is too far from .NET libraries (and from any mainstream development, in fact). Please see further detail in my other answers referenced below.
Answer #2: It depends on your previous experience.
Answer #3: Yes, MySQL is one of those you can use. You can use Oracle, but one problem with Oracle is that the only provider available at Mac is OracleClient, deprecated by Microsoft since .NET v.4.0. I've done a migration project from .NET to multi-platform, so I had to developed a whole detailed abstraction layer to use both in one application selectable during run time depending on the platform. These providers even have different query syntax.
Answer #4: Yes, please see previous answer.
Answer #5: Normally, no. You can build everything on Windows and execute on Mac without re-compilation. The process I recommend is this: develop on Windows with Visual Studio, then test on .NET for Windows, then test on Mono for Windows, then deploy to Mac and have the final fun. However, if you use MonobjC (please see see further detail in my other answers referenced below), you won't be able to use the Designer with native Mac objects, but you can compile it all with MonobjC, even on .NET, quite formally, not being able to test on .NET. You can use
System.Windows.Forms
on Windows and .NET — most of it will work on Mac right away, if you develop accurately and totally avoid platform-dependent tricks.
Answer #6: Yes, you will, but there are some kind of incompatible features, but I remember only those which are relaxed on .NET but needs strict approach on Mono. In other way, .NET allows deviations from standard, but Mono will not. You also need to learn how to install the certificates on Mono — it has its own data files; so see the Mono documentation on this topic. On .NET, the server certificates defined in the system are used. (Certificates are only applicable when you use HTTPS.)
Answer #7: I have no idea what is that. Sounds bad… :-)
Answer #8: Normally, this is true if you are using Forms only. Please see further detail in my other answers referenced below. Actually, I developed some tricky approach to overcome it. I tried to develop the UI using two different UI threads: one for Forms, another one for Mac OS X Cocoa, to show the main menu only. This is quite possible. And then the two threads just exchange user input data. This is a thunk between completely different systems though, tricky enough.
Answer #9: I've listed some already.
Answer #10: Digest this answer and provide some feedback. Look through the further links to Mac OS X related libraries and their Mono binding I provided. This topic is to wide to cover in one answer. I'll gladly try to answer your further questions.
I have fairly good experience on Mono porting where Mac is involved, so please see my past answers to the questions on related topics:
Programming for ipad/iphone onn windows 7[
^],
how can i make mac software?..............[
^],
Learning write c# for mac[
^],
Need to make small apllication that runs on iphone-Ipad (maybe stupid question : ( )[
^],
about mobile operating systems[
^].
—SA