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, PlayStation 4, Xbox One, Nintendo Switch, and the OUYA console with even more platforms on the way.
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 Well-known and documented API
The framework implements the XNA 4 API, so games made in XNA can be ported to other platforms using this. This was the same API used by the Xbox Live Indie Games platform so there's lots of documentation online for it.
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. Only good non-Windows IDE compatible with MonoGame is Rider and that costs money & isn't open-source.