You're right, if you use managed C++, calling C# code is easy. I was thinking in terms of calling C# from unmanaged code. I'm a little bit concerned about adding managed code to a large project like SSU which currently uses only unmanaged code, although there shouldn't be any problems.
But the example project Goth made is
unmanaged C++ code calling managed .NET code (it doesn't matter if it is managed C++ code or managed C# code, both get compiled to .NET, anyway). That's what a mixed-mode assembly is for: it houses both unmanaged and managed code. This is also precisely what makes it so easy to create the calls.
I think you confused the demonstration of an advanced flow in Goth's example (unmanaged C++ Orbiter code calls managed .NET classes inside mixed-mode MCC DLL, which in turn late-binds and demand-loads a managed .NET application to integrate and show the dialogs of it inside Orbiter) with a strict requirement to do it so. He could also have early-bound any .NET DLL and used its types right within the managed C++ classes in the MCC DLL, or simply implemented all of the WinForms code within it.
The way he is doing it now just demonstrates the unmatched ability to create a stand-alone application that can be snapped-in into Orbiter as well. Whether or not the data-link is then done via sockets to achieve a stand-alone connection to Orbiter is an application aspect and has nothing to do with the framework choice.
I can understand your concern about the managed code in the unmanaged project, though. However, this is only because of the advanced requirement of having the .NET runtime installed, something you can't easily bundle in an add-on distribution. If other approaches (besides the obvious and cumbersome direct WinAPI tinkering, of course) allow for a better deployment story, that is certainly a plus. Knowing how .NET is ubiquitous in modern Windows environments, I just think it is a weak plus.
You will find feature-rich .NET DLLs to be very small, simply because of the huge class library already inside the .NET framework. This could also count as a deployment plus on the .NET side.
But anyway, I think the simple truth is that the only willing contributor for this application is Goth ATM. He is also happier with the Qt route, and less experienced in C# AFAIK. That would already make the decision IMHO. If anybody wants to go the Java or .NET route nevertheless... hey, it is open-source, nobody is excluded, right?
