Laden...

Wie Aufwendig ist die Umstellung von .NET 4.7 zu .NET 5.0

Erstellt von Christoph K. vor 2 Jahren Letzter Beitrag vor 2 Jahren 325 Views
Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor 2 Jahren
Wie Aufwendig ist die Umstellung von .NET 4.7 zu .NET 5.0

Hallo zusammen,

wir überlegen gerade aus verschiedenen Gründen von .net 4.7 (das alte .net Framework) auf das neue universelle .net 5.0 zu migrieren.
Hat jemand Erfahrungen, wie aufwendig so etwas ist?
Ein Teil des Projektes ist ein ASP.net MVC 3.0 Projekt. Ist eine einfache Migration hier überhaupt machbar?

Viele Grüße
Christoph

190 Beiträge seit 2012
vor 2 Jahren

warum nicht gleich auf .NET 6?

  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF

309 Beiträge seit 2020
vor 2 Jahren

Kommt auf das Projekt an,
hier ist eigentlich alles beschrieben: https://docs.microsoft.com/de-de/dotnet/core/porting/

2.078 Beiträge seit 2012
vor 2 Jahren

Ein Teil des Projektes ist ein ASP.net MVC 3.0 Projekt. Ist eine einfache Migration hier überhaupt machbar?

Nein - zumindest nicht einfach.

Ich hab's mal geschafft, das alte ASP.NET unter .NET Core 3 ans Laufen zu bringen, aber einfach ist das nicht und langfristig klug ganz sicher auch nicht ^^
Auch eine Neuentwicklung unter ASP.NET Core ist nicht "mal eben so" machbar, mit genügend KnowHow zu beiden Frameworks, dem Projekt und einer halbwegs vernünftige Architektur ist das aber überschaubar.

Der Artikel zur Migration zu ASP.NET Core geht (beim rüber scrollen) hauptsächlich nur auf die Unterschiede auf die Frameworks ein. Das ist sicher nützlich, ich würde das Projekt aber vorher vorbereiten, die ASP.NET Core Umstellung ist dann nur der letzte Schritt.

Schau dir an, wie ASP.NET Core arbeitet und wie man die Geschäftslogik aus den Controllern raus hält, sodass die dann eigentlich nur noch Endpunkte sind.
Abt hat zu der Architektur von diesem Forum einiges geschrieben: [Artikel] Die myCSharp.de Software Architektur
Ob das bei Euch auch angebracht oder Overkill ist, weiß ich nicht, aber aber ich will darauf hinaus, dass Controller und Logik nichts miteinander zu tun haben. Der Controller sollte seine Abhängigkeiten per DependencyInjection bekommen und die Abhängigkeit sollte nichts von ASP.NET benötigen.

Das gemacht kannst Du den ausgelagerten Code auf .NET Standard 2.0 umstellen, das wird in .NET 4.7 und .NET 6 unterstützt.
Ich habe das bisher manuell gemacht, aber dafür gibt's meines Wissens nach auch ein Tool von Microsoft.
Eventuell habt Ihr Abhängigkeiten die es nicht für .NET Standard 2.0 gibt, da müsst Ihr dann natürlich Alternativen suchen.

Als nächstes schau dir die "Microsoft.Extensions.***"-Frameworks an, die werden in ASP.NET Core genutzt und sind (wenn ich mich nicht irre) alle .NET Standard 2.0.
Außerdem können diese Frameworks (Logging, DependencyInjection, Configuration) als Abstraktion dienen und viele altbekannte Frameworks aus der Community unterstützen das.
Das Hosting-Framework lässt Du aus, das ist eine Start-Infrastruktur, die wirst Du so ohne Weiteres nicht umstellen können - nicht solange ASP.NET noch an Board ist.
Wenn alles darauf aufbaut, kann ASP.NET Core direkt damit umgehen.

Es bleibt noch das ASP.NET-Projekt (es sollte an dem Punkt nur noch ein Projekt sein) und das müsst Ihr neu entwickeln, doch mit den Vorbereitungen sollte das überschaubar sein.
Und von .NET Standard 2.0 zu .NET 6 ist es dann nur noch ein Katzensprung, ggf. einige Packages aktualisieren.

Danach könnt Ihr dann Stück für Stück ältere, wenn auch noch unterstützte, Frameworks ersetzen, ich denke da z.B. an Newtonsoft.Json vs. System.Text.Json.

16.807 Beiträge seit 2008
vor 2 Jahren

ASP.NET MVC zu ASP.NET Core ist nicht so einfach möglich; das ist quasi wie ein Framework-Wechsel mit entsprechender Lernkurve.
Der gesamte Aufbau ist neu; ausser dem Namen haben die beiden Varianten nicht mehr viel gemeinsam.

Wenn man sich aber an die Grundregeln von Software Architektur gehalten hat, und keinerlei Logik in den Controllern hat, dann ist das möglich.
Machbar ist es immer - alles eine Frage der Zeit. Aber "einfach?" kann Dir natürlich kein Mensch beantworten - alles relativ.

J
641 Beiträge seit 2007
vor 2 Jahren
Kommt drauf an

Das kommt eben ganz auf die Applikation an, wieviele externe Abhängigkeiten du hast, usw.

Wir haben bei uns in der Firma eine große .NET Applikation (WMS und Visu) mit Webserver, Appdomains, verschiedenen Services, ...

Bei uns hat die Umstellung ca 4-5 Mannmonate gedauert. Die meiste Arbeit war die Entfernung der Appdomains

cSharp Projekte : https://github.com/jogibear9988