C++ nach C# portieren: Aufwand?
-
Hallo!
Angenommen ich bin sehr fit in C++ und hab ein Programm (C++, DirectX) und würde dies gerne nach C# portieren. C# ist mir komplett neu, in dem Programm selbst kenne ich mich aber aus wie in meiner Westentasche
Wie groß wäre der zeitliche Aufwand?Gibt es große Unterschiede?
Wo würden die Schwierigkeiten liegen / auf was sollte mana chten?
-
So eine Portierung ist zwar lästig, aber in den meisten Fällen nicht sehr schwer (is natürlich stark abhängig von deiner Anwendung; ob du zusätzliche Libs benützt; STL usw.).
Die Unterschiede zwischen C++/DX und C#/MDX sind gering. In den meisten Fällen läuft es auf Feinheiten a la device.RenderStates.RenderStateName = value; statt device->SetRenderState(RenderStateName, value) hinaus. Da zum einen alles etwas durchgestylter und aufgeräumter ist, jedoch die Bezeichner fast immer die selben Namen tragen, solltest du zügig vorankommen. Da ich die Größe/Komplexität deines Programmes nichts kenne, ist eine Einschätzung des zeitl. Aufwandes unmöglich.
-
Naja, aber letzlich wird es wohl doch auf ein komplettes neuschreiben hinaus-
laufen, auch wenn du natürlich die Struktur / Algorithmen beibehalten kannst.
Der Garbage Collector wird einiges überflüssig machen in deiner Anwendung und
die umfangreiche .NET Klassenbibliothek wird für einiges fertige Lösungen
bieten, wo du in C++ noch alles per Hand machen musstest, bzw. externe Libs
verwenden musstest...Also wir haben uns entschieden die ganze Anwendung von vorn anzufangen... Aber
trotz allem geht es wesentlich flüssiger voran als bei C++: Du weißt schon
wie die Anwendung aufgebaut sein musst, weißt was falsch gelaufen ist beim
alten Design, ... Falls du die IDE von Microsoft zur Seite hast, wird alles
noch ein Stückchen schneller gehen, denn das IntelliSense, etc. ist verdammt
gut und errät fast alles im voraus, so dass man nur noch am Enter-drücken ist
-
Ich kann energyzer da nur zustimmen.
Gerade bei einem "professionellen" Programm geht es oft garnicht anders als es neu aufzusetzen. Wir hatten damals ermittelt, dass sogar das umschreiben eines Programms von VB(!) auf C# ueber 1 jahr in Anspruch genommen haette, was allerding nicht zuletzt an der exzessiven Verwendung von ActiveX Komponenten lag
Ein neuschreiben sollte in der Regel nicht viel laenger dauern als das portieren, wenn ueberhaupt. Dafuer bietet es den Vorteil, evtl. gemachte Desing-Fehler zu beseitigen.