Interoperability unmanaged C++ und managed C#/.NET



  • Hallo miteinander,

    da aktuell ein größeres Projekt geplant ist steht natürlich die Informationsbeschaffung aktuell im Vordergrund, die ich hiermit vorantreiben will.

    Es handelt sich dabei um ein 2D-Game und ich habe mich entschieden die Basis-Kernkomponenten zu schreiben. Aktuell informiere ich über Netzwerkprogrammierung und habe Fragen diesbezüglich.

    Da wir, der Einfachheit halber, einige Tools und z.B. den Launcher des Games (welches "nativ" in C++ geschrieben werden soll) gerne in einer einfacheren Sprache (sprich C# mit XAML - also mit WPF) umsetzen wollten steht hier die Frage an, ob ich versuchen sollte die Network-Libs, als Beispiel, in C++ zu schreiben und dann per Interop die Funktionen und Klassen für .NET zur Verfügung zu stellen oder ob ich gleich eine .NET-Variante schreiben soll. Dabei muss ich zugeben, dass ich mich nie genauer damit beschäftigt habe, was die Effizienz angeht beim Vergleich von managed und unmanaged Code und gerne wissen wollen würde was sich da tatsächlich mehr lohnen würde.

    Gruß,
    Christian



  • .NET bietet eine umfangreiche Sammlung an Klassen fürs Networking.
    Ich würde es als falsch ansehen, wenn da eine C++ Implementiernug via Interop (auf welche Art auch immer) eingebunden wird.

    Dabei muss ich zugeben, dass ich mich nie genauer damit beschäftigt habe, was die Effizienz angeht beim Vergleich von managed und unmanaged Code und gerne wissen wollen würde was sich da tatsächlich mehr lohnen würde.

    Bei deinem Vorhaben kommt natürlich noch der Interop Overhead dazu - sollte nicht unterschätzt werden.

    Meine Meinung zum Mischen von Managed / Unmanaged Code:
    Wenn ein neues Projekt gestartet wird, würde ich mich für die eine oder andere Variante entscheiden und das durchziehen. Managed / Unmanaged Interop macht doch nur beim Legacy Code oder andernen "speziellen" Problemen Sinn.


Log in to reply