First, let me say I like programming in C#.NET but I thought one of the original aims of the .NET framework was portability e.g. code written using managed code could run on any platform provided that there was a runtime available for that platform (e.g. Mono project.) Surely  using the  DirectX namespace doesn't provide portability as the underlying library is tied to Windows? So, are there any real benefits of using .NET for Games development when C++ is generally better performance, no big runtime is required and there is no portability?