Migration von VB(.NET) -> C#



  • Hallo,

    bin gegenwärtig damit beauftragt, eine alte Software (geschrieben in VB.NET) zu betreuen und das ganze paket nach bugfixing und kleineren gui-änderungen, nach welchen es den anwendern dürstet ^^, nach C# zu portieren.

    nun ist das projekt zwar nicht groß, jedoch auch nicht unbedingt ein miniprojekt - 35 source files, ungefähr 15 windows forms, 2MB quellcode und anbindung an eine oracle DB. meiner meinung nach läuft die software ausgezeichnet, so wie sie derzeit ist, aber es wird hier eben alles in C# entwickelt und deshalb sollte sie eben auch portiert werden, wegen eventueller wartung etc blah.

    nun meine frage -
    das projekt wurde (sowohl in VB als auch jetzt in C#) unter MS visual studio 2005 entwickelt. ich suche nun schon ziemlich lange, aber -> gibt es denn von MS-seite her keine möglichkeit bzw wizards oder ähnliches, um das einfach mit ein paar klicks zu konvertieren und sich dann eben um die dabei entstandenen fehler (ich nehme mal an, dass die automatische konvertierung eventuell bei office cores, datenbank und forms an ihre grenzen stoßen könnte) zu kümmern? da es sich um eine reine datenverwaltung ohne klicki-bunti-oberfläche handelt, machen alleine die ganzen schaltflächen/felder, eben controls, einen großteil des projektes aus, und die will ich sehr ungern nochmal erstellen, wenn es da eine leichtere möglichkeit gibt.

    das einzige, was ich bislang dazu gefunden habe, sind code-converter, welche einfach nur gepasteten code in VB umwandeln - ob das mit den ganzen windows forms jedoch funktioniert, wage ich zu bezweifeln, die teile sehen mir eher wie tools zum schnellen konvertieren von if-abfragen und schleifen aus.

    was ich also suche:
    - erfahrungsberichte
    - evtl tools, plugins, wenn möglich freeware oder auf basis einer günstigen einzelplatzlizenz, das dürfte schon gehen ^^
    - trails, manuals oder soetwas
    - oder einfach sowas wie ruhe da, setz dich auf deinen hintern und fang an, da gibts keine guten tools dazu 😃

    thx!



  • Wäre es villeicht auch eine Möglichkeit, die Applikation in verschiedene Assemblies aufzuteilen um dann nur die Teile nach C# portieren zu können / müssen, die auch wirklich nötig sind?

    Ist der Grund zur Portierung die Wartbarkeit?



  • Ist der Grund zur Portierung die Wartbarkeit?

    jo. ist ein tool zur verfolgung von abläufen und geräten in der halbleiterproduktion. da ändert sich bald mal was.

    die funktionalität wäre ja nicht das problem, da würden die converter reichen. aber bei so vielen datagrids, eingabefeldern etc will ich einfach die ganze oberfläche nicht nochmal nachbauen... deshalb die frage, ob es da nicht eine "bequeme" methode gibt.



  • Schau Dir mal #develop (SharpDevelop) an, das ist eine IDE, die geöffnete Sourcefiles zwischen VB.NET und C# hin- und herkonvertieren kann. Dabei wird über den Bytecode konvertiert (VB.NET -> IL -> C# und umgekehrt), damit müssten sich eigentlich auch die Designer-Dateien umwandeln lassen.

    Ist zwar eigentlich unverhältnismäßig, dafür eine IDE zu installieren, aber Du kannst sie ja nach der Konvertierung wieder deinstallieren.



  • Schau Dir mal #develop (SharpDevelop) an [...]

    frei klingt schonmal gut. die IDE sieht auch gut aus, außerdem auch noch mit forms designer, da kann ich dann sicher richten, was schief gegangen ist... vielen dank für den tipp, hab davon noch nichts gehört 👍 und die ~9mb download und installation kann ich, glaube ich, auch verkraften ^^

    ich starte mit der migration ja erst in 2 wochen, wollte mich nur mal im vorfeld informieren, um dann zügig an die arbeit gehen zu können 🙂



  • Mit dem Reflector und einigen Plugins dazu sollte so einvorgehen auch möglich sein.



  • Mit dem Reflector und einigen Plugins dazu sollte so einvorgehen auch möglich sein.

    kannst du die plugins genauer benennen?

    ich habe auch schon einige plugins für VS gefunden, welche sich für die konvertierung (zumindest laut herstellerseiten) eignen würden, aber ich sehe es nicht ein, für eine solche arbeit geld auszugeben (welches auch nicht mir gehören würde, sondern erstmal anfordern etc), wenn es auch freie alternativen gibt.



  • Ergänzend noch für die "kleine" Wandlung:

    http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx

    @Op Magst Du die Links zu den kommerziellen Produkten mal posten ?



  • Reflector:
    http://www.aisto.com/roeder/dotnet/

    Addins:
    http://www.codeplex.com/reflectoraddins

    Ich denke mit dem FileDiassembler Addin sollte es möglich sein.

    Grüsse
    Simon



  • Mit den AddIns waren die VisualStudio Addins gemeint, dennoch Danke.



  • Ergänzend noch für die "kleine" Wandlung:

    http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx

    hehe, genau den umwandler hab ich heute auch schon gefunden ^^ (gibt da aber ganz schön viele. da check ich nicht, warum sich nach 5 solchen teilen noch jemand die mühe macht, und dann ist es nichtmal besser ^^ zB http://www.carlosag.net/Tools/CodeTranslator/Default.aspx)

    @Op Magst Du die Links zu den kommerziellen Produkten mal posten ?

    sry, da die für mich nicht in frage kamen, hab ich mir die nirgends in die bookmarks o.ä. geholt. bisschen google nach vb to c# migration/conversion dürfte dir jedoch einige treffer liefern, wenns wichtig ist 😉

    @simon.gysi thx 🙂



  • nachtrag @ Knuddlbaer

    hab nochmal in der history gesucht, das hier zB sieht ziemlich gut aus:
    http://www.artinsoft.com/pr_vbcompanion.aspx



  • Ich muss ganz ehrlich sagen, dass ich die Beweggründe für die Konversion nicht verstehe. Wer C# kann, sollte auch ein VB-Projekt warten können (und umgekehrt). Zumal die Konversion bei einem solchen Projektumfang nie ganz reibungslos abläuft, halte ich das einfach für überflüssigen Aufwand.

    Ich würde an euerer Stelle lieber daran ansetzen, das ganze fein zu modulieren und in DLLs auszulagern (falls das nicht bereits so ist). Dann könnt ihr alles, was jetzt noch dazukommt, in C# schreiben und den alten Code in VB lassen.



  • @Konrad Rudolph:

    ich bin in der firma sozusagen nur als "externer" bis ende sommer, weil ich danach studieren werde. ich werde also nur mit den sachen betraut, die sonst keiner machen will 😃 meine kompetente (... ^^) meinung zählt also in diesem fall leider eher weniger.

    die software wurde allerdings nicht innerhalb der firma erstellt, für die ich arbeite, sondern von einem externen entwickler (der da allerdings auch ziemlich viel verbockt hat, absolut unsauberer code, nicht auf die kundenwünsche eingegangen etc) - dem das projekt aus eben genannten gründen allerdings wieder entzogen wurde und jetzt vor sich hindümpelt, während eine 6 jahre alte version verwendet wird. ich denke also, dass mit der konvertierung in C# auch bestehende probleme ausgemerzt werden sollen. auf jeden fall hieß es auf meine nachfrage, dass die "migration außer frage stehe" weil eben alles unter C# laufen würde und naja... ich bin jung und brauch das geld 😉



  • Dann wäre ein neu implementieren aber besser. Schlechten Code in C# zu wandeln macht den Code an sich nich besser 😉



  • schlecht ist er ja nicht mehr - aufgabe war in etwa (rudimentär xD)
    - fehleraufnahme und warum das teil nicht benutzt wird, zusammensetzen mit user
    - ausbessern, auf wünsche des endbenutzers abstimmen & erweitern (done)
    - portieren

    was ja an sich nicht sinnvoll ist. aber anscheinend wollen die erstmal ein funktionierendes tool in VB, damit es zumindest mal eingesetzt werden kann, und portieren is dann nebensache, aber muss ... fragt mich nicht. ich werde erst studieren, um am anderen ende derartiger aufgabenstellungen zu sitzen *:D

    * und es besser zu machen(?) ^^


Anmelden zum Antworten