What's in it for you is C# is a very good language.
I wouldn't agree. There's a lot of things in the C# and C++/CLI (aka Managed C++) world that are just ass-backwards.
If I wanted the advantage of what the .NET CLR gives me - supposed platform independences - then I'd write Java.
As it is, I don't write Java b/c Java is a major PITA with no advantages over C++ or Python.
Only advantage of .NET CLR/C#/etc is that it is heavily optimized for the Windows environments so its gets a boost that other frameworks (e.g Java) cannot take advantage of. But that, again, goes against the whole platform independence.
Regarding Mono, it's not worth the bytes that make up the source. Apart from the potential legal issues (patents MS holds wrt to Mono were only licensed to Novell/SuSE users for a 5 year period, which has since expired), the APIs are highly tied to Windows. Yes, Mono has made some Gtk equivalents, but then why use it? Why not just use Gtk/C/C++ to start with?
And .net is a fairly well designed framework/libraries for getting stuff done.
Qt is by far better designed. WxWidgets and Gtk are probably better designed too.
I've said this before Microsoft has never ever acted in a predatory manner towards people using their tools. What I mean by that is they want some nominal amount of money, but they don't want to drink your milkshake. Example game companies have used VC++ and other tools to develop games that have sold hundreds of thousands of copies running on windows and does Microsoft ever demand a cut? No.
MS doesn't take a cut because you're giving it to them by using their Platform - Windows. VC++ is a write off in that manner. They invest highly in it to get Developers to write for their platform and products and write it off as part of the marketing/promotion/etc of the various products and company as a whole. If they didn't have Visual Studios then there would be a lot fewer developers developing specifically for Windows, and thus a lot less incentive for people to use Windows.
It's all nice to bitch about Microsoft but a lot of their competitors are far worse, Apple, Google, Oracle. Ever try and develop a console game? Had your app not approved by Apple, of pulled by Google. Found yourself paying license fees through the nose for Enterprise software with no good options to escape, ALA Oracle. Or try and deal with network products ala Cisco?
Yeah.
Microsoft does the same thing. For instance, one company I know of bought a product. They thought they had all the licensing taken care of, only to later discover that they needed another $500m in Terminal Services licenses. Sure, MS might not have taken a cut from the product developers, but they sure did get a big cut of the sales (possibly more than what the product developers originally got).
Or for instance if you develop using SQL Server Express (or whatever it is called now) and they outgrow what that will do; the choice? You build support for another database (e.g MySQL, MariaDB, PostgresSQL, Oracle, DB2, etc) or you help them upgrade SQLServer Express to SQL Server - which of course carries a lot of licensing and hardware requirements with it. Again, a big cut for Microsoft and one that the customer might not have anticipated.