MonoGame is a C# framework based on XNA’s API. It uses Mono instead of .NET so that it can run on Windows, Mac, Linux, iPhone, and Android.
Ranked in these QuestionsQuestion Ranking
Support for iOS, Android, Mac OS X, Linux, Windows (both OpenGL and DirectX), Windows 8 Store, Windows Phone 8, PlayStation Mobile, and the OUYA console with even more platforms on the way. Though it is an extra cost to do any platform other than Windows.
Pro Open source
All the code is available to you ensuring you'll have the ability to make changes when you need to or even port to whole new platforms.
Pro Managed code
By leveraging C# and other .NET languages on Microsoft and Mono platforms you can write modern, fast, and reliable game code.
Pro Good community
The community MonoGame has to offer is helpful and mature.
Pro Performance on desktop
The performance on desktop platforms matches that of C++, but you still get all the pleasant features that C# has to offer.
Con Non-Windows tools are a bit funky
Monogame support for Xamarin Studio or Monodevelop is a bit shaky especially for library references.