Hallo und guten Tag!
Ich würde von euch gerne wissen, wie ihr vorgehen würdet, wenn ihr zehntausende Zeilen .Net 1.5 Code auf .Net 3.5 portieren sollt.
Würdet ihr den ganzen schmarn in 3.5 compilen und dann jeden Compiler-Error berichtigen?
Schon mal Danke im Vorraus für eure Hilfe!
Grüße
Kuchiki
Hallo Kuchiki,
naja es kommt auf das Projekt an. Sollte es sich um hauptsächlich Backbone Komponenten ohne grafische Oberfläche sein, dann einfach Quellcode mit VS konvertieren lassen neu kompilieren (Fehler, z.B. Obsolete Fehlermeldungen beheben) und gut ist.
ASP.NET Projekte würde ich neu konzipieren und dann explizit schauen, ob und welche Codeteile ich übernehme, da ist so viel passiert zwischen 1.x und 3.5, da liegen Welten dazwischen.
WinForms Projekte: Das kommt darauf an, was man haben möchte. Wenn man mit der "alten" WinForms Anwendung zufrieden ist, dann genügt eine Portierung. Sollten viele Win32 API Zugriffe realisiert sein, dann würde ich schauen, ob es nicht inzwischen im Framework .NET Klassen dafür gibt.
Allgemein:
Es sind z.B. Generics hinzugekommen, ebenso die ganzen Dinge wie WPF, WCF etc. Das sind Komponenten, bei denen ein Einsatz sich echt lohnt. Von daher würde ich mir jederzeit den Aufwand in Kauf nehmen, und schauen, was es neues gibt, und wo man in der alten Software das sinnvoll einsetzen könnte.
Eine 1:1 Portierung ist meist ungenügend, so hab zumindest ich bisher immer die Erfahrung gemacht.
Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Hallo Kuchiki,
vor allem sollten im Zuge einer ordentlichen Portierung untypisierte Collections usw. unbedingt durch die generischen Varianten ersetzt werden.
Das .net framework ansich wird ja nichtmal intern portiert, was collections und so angeht, auch wenn die collections nirgendwo veröffentlicht werden. 😁
Hallo Floste,
am Framework hängen aber auch hunderttausende wenn nicht Millionen von Anwendungen. Da will man vermutlich kein unnötiges Risiko eingehen und erträgt lieber die Nachteile, die durch die Nicht-Umstellung entstehen.
Wenn man eine eigene Anwendung portiert (und wenn zu erwarten ist, dass diese in Zukunft häufiger geändert wird), dann sollte man der Empfehlung von winSharp93 schon folgen.
Da man sich ja beim Programmieren immer wieder bei bestehendem Code bedient, besteht sonst zusätzlich noch die Gefahr, dass sich in neue Programmen untypisiere Collections einschleichen.
Generics ist die entscheidende Verbesserung in .NET 2.0. Wie ich immer schreibe: "ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic."
herbivore