Okay, I know this may be dismissed offhand. HOWEVER, there are quite a few valid reasons why SpaceEngine would benefit from .NET.

Xamarian: Develop with a .NET language, have your application run natively on Macs, iPhone, Android devices, & Windows phones (err...). And with Xamarian forms, you can abstract the UI so that your UI remains compatible and consistent across platforms. Microsoft bought it last year and now Xamarian is free.

C# & OpenGL interoperability: there are about half-a-dozen libraries available to do just that.

LINQ/PLINQ: Allows you to query collections in a fast & cleanly written manner. It adds significant overhead and is non-performant for smaller collections, but for larger ones the improvement can be on an order of magnitude. This can even be improved upon using PLINQ, which allows a collection to be searched in a parallel manner.

Sandcastle: Autogenerate professional-looking SDK documentation with code comments. I have used it extensively & it is invaluable when generating developer reference.

.NET CodeDOM library: Allows you to autogenerate code, including at runtime. Probably not useful to SpaceEngine but cool nonetheless.

Easy serialization: The data constract .NET libraries allow easy serialization/deserialization to XML/JSON by just adding an attribute above the classes & properties you want to serialize. This provides a very, very easy way to save program state.

So you want to throw out entire SE course code (C++) and write a completely new one using C#? LOL.And what is a purpose for that? This?

Quoteform_d_k ()

Xamarian: Develop with a .NET language, have your application run natively on Macs, iPhone, Android devices, & Windows phones (err...). And with Xamarian forms, you can abstract the UI so that your UI remains compatible and consistent across platforms. Microsoft bought it last year and now Xamarian is free.

SE doesn't needs this because it uses it's own GUI rendering as a part of OpenGL engine.

So you want to throw out entire SE course code (C++) and write a completely new one using C#? LOL.And what is a purpose for that? This?

Oh no! Not at all. That would be a ridiculous suggestion to rewrite the entire engine.

I'm suggesting utilizing .NET in situations where it may be beneficial. And that doesn't mean using C#, just a .NET-enabled language. That would include Visual C++.

One example would be to use CodeDOM to parse your C++ source code & autogenerate SDK shims in Visual C++, C#, F#, JScript .NET, & IronRuby/Python. There is even an open source library to generate Java source code.

You could also use CodeDOM to utilize C++, C#, or another supported language as a scripting language, compiled & run in realtime.

There is also a compiler switch that can compile standard C++ code into a managed library. And while you may not want your release compiled into managed code, you could have a separate managed build that is only used to autogenerate developer documentation with Sandcastle.