Modernize Studio
Sprache: DE
E‑Mail schreiben

Ältere .NET-Anwendungen mit WinForms und Web Forms, modernisiert

Anwendungen, die in den 2000er- und 2010er-Jahren für das .NET Framework geschrieben wurden, sind meist in besserem Zustand als VB6- oder Access-Lösungen und verdienen eine sorgfältigere Antwort als einen kompletten Neubau. Wir klären, was sich unverändert übernehmen lässt und was neu gebaut werden muss, und bringen die Anwendung dann mit denselben Daten und Regeln auf ASP.NET Core.

Warum jetzt

Der Support für .NET Framework 4.6.2 endet am 12/01/2027, die Versionen 4.6.1 und älter werden bereits nicht mehr unterstützt. .NET Framework 4.8 und 4.8.1 folgen dem Lebenszyklus der Windows-Version, auf der sie installiert sind, eine Anwendung auf 4.8 ist also nicht akut gefährdet. Das Framework erhält allerdings nur noch Korrekturen, während neue Bibliotheken, Werkzeuge und Hosting-Angebote für das aktuelle .NET entstehen.

ASP.NET Web Forms läuft nur auf dem .NET Framework und wurde nicht in ASP.NET Core übernommen. Windows Forms läuft zwar auf dem aktuellen .NET, bleibt aber eine Desktop-Technologie für Windows und gibt Ihren Mitarbeitern keinen Zugriff über den Browser.

  1. Windows 10Ende des Microsoft-Supports
  2. .NET Framework 4.6.2Ende des Microsoft-Supports

Was wir modernisieren

Desktop- und Webanwendungen auf Basis des .NET Framework und die Dienste rund um sie.

  • Windows-Forms-Anwendungen

    Desktop-Programme mit DataGridView-Tabellen, typisierten DataSets und TableAdapters, oft per ClickOnce oder MSI verteilt. Sie werden zu Webanwendungen oder wechseln als Desktop-Programme auf das aktuelle .NET, wenn das die bessere Wahl ist.

  • ASP.NET-Web-Forms-Sites

    Seiten mit ViewState, Postbacks, UpdatePanel, GridView und SqlDataSource, Masterseiten und Benutzersteuerelementen. Wir bauen sie in ASP.NET Core mit Razor Pages, MVC oder Blazor neu, je nach Anwendung.

  • Datenzugriff

    ADO.NET-Code, typisierte DataSets, LINQ to SQL, Entity-Framework-6-Modelle und gespeicherte Prozeduren. Ist die Datenbank solide, behalten wir sie und ändern nur den Code, der sie anspricht.

  • Dienste und Schnittstellen

    WCF- und ASMX-Webdienste, .NET Remoting und Windows-Dienste. Sie werden zu REST-APIs und Hintergrunddiensten auf dem aktuellen .NET.

  • Anmeldung und Konfiguration

    Forms Authentication, der ASP.NET-Membership-Provider, Windows-Authentifizierung, Einstellungen in web.config und app.config. Benutzer und Rollen ziehen nach ASP.NET Core Identity um, oder nach Microsoft Entra ID bzw. Active Directory, wenn Sie diese bereits nutzen.

  • Berichte

    Crystal Reports für Visual Studio, RDLC-Berichte im ReportViewer und Excel-Exporte. Daraus werden Dokumente, die der Server als PDF oder Excel erzeugt.

So sieht die Web-Version aus

Anschauungsbeispiel, erfundene Daten

Ein Mietkonto, wie es in einem WinForms-Programm aussehen könnte, und dasselbe Konto als Webseite.

Ziehen Sie den Regler oder nutzen Sie die Pfeiltasten.

Was woraus wird

Im .NET Framework: WinForms-Masken oder .aspx-Seiten
In der Webanwendung: Razor Pages oder Blazor-Komponenten
Im .NET Framework: Code-Behind und Ereignis-Handler
In der Webanwendung: Dienste und Controller mit Tests
Im .NET Framework: Typisierte DataSets, LINQ to SQL
In der Webanwendung: Entity Framework Core oder Dapper, auf derselben Datenbank
Im .NET Framework: WCF- oder ASMX-Dienste
In der Webanwendung: REST-APIs auf ASP.NET Core
Im .NET Framework: Membership und Forms Authentication
In der Webanwendung: ASP.NET Core Identity oder Entra ID
Im .NET Framework: ClickOnce oder MSI auf jedem PC
In der Webanwendung: Eine Adresse, im Browser geöffnet

So läuft die Migration ab

  1. Analyse innerhalb von 48 Stunden

    Sie schicken uns die Solution mit dem Quellcode, eine Sicherung oder ein Skript der Datenbank und die Konfigurationsdateien ohne Produktionskennwörter. Innerhalb von 48 Stunden erhalten Sie einen schriftlichen Bericht: was das Programm heute leistet, wo die Risiken liegen, wie die Web-Version aufgebaut wäre, einen Festpreis für ein Pilotmodul und eine Schätzung für den Rest. Die Analyse ist kostenlos und verpflichtet Sie zu nichts.

  2. Pilotmodul

    Wir bauen einen Teil der Anwendung auf einer Kopie Ihrer echten Daten, meist den Teil, der am häufigsten genutzt wird. Ihre Mitarbeiter arbeiten damit im Alltag, bevor Sie über den Rest entscheiden.

  3. Automatische Vergleichstests zwischen Alt und Neu

    Wir schicken der alten und der neuen Anwendung dieselben Anfragen und Daten und vergleichen die Ergebnisse, von berechneten Feldern bis zu API-Antworten und erzeugten Dokumenten. Für jede Regel, die wir finden, gibt es einen automatischen Test, der dem alten Programm und der neuen Anwendung dieselben Eingaben gibt und prüft, ob die Ergebnisse übereinstimmen. Sie erhalten die Testergebnisse.

  4. 30 Tage Parallelbetrieb

    Wenn die vollständige Anwendung fertig ist, bleibt die alte Anwendung 30 Tage lang parallel in Gebrauch. Jede Abweichung zeigt sich, solange das alte Programm noch da ist, und wir beheben sie im Rahmen des vereinbarten Preises.

Typische Stolperstellen und wie wir damit umgehen

  1. ViewState und Postback-Logik

    Web-Forms-Seiten halten ihren Zustand im ViewState und in Session, und ihre Logik verteilt sich auf Page_Load, Steuerelement-Ereignisse und IsPostBack-Abfragen. ASP.NET Core kennt nichts Entsprechendes. Wir übersetzen den Seitenlebenszyklus in ausdrückliche Anfragen, sodass jede Aktion einen klaren Einstiegspunkt hat.

  2. APIs, die es nicht mehr gibt

    Anwendungsdomänen, .NET Remoting und Code Access Security sind im aktuellen .NET nicht verfügbar, und manche APIs kompilieren zwar, lösen aber zur Laufzeit eine PlatformNotSupportedException aus. Wir suchen sie in der Analyse im Code, bevor ein Preis feststeht.

  3. Membership-Kennwörter

    Konten aus dem alten ASP.NET-Membership-Provider speichern Kennwörter in einem Hash-Format, das ASP.NET Core Identity nicht verwendet. Wir migrieren die Konten so, dass sich alle mit ihrem bisherigen Kennwort anmelden und der Hash bei der ersten Anmeldung aktualisiert wird, oder planen ein Zurücksetzen, falls die alten Einstellungen das nicht zulassen.

  4. Steuerelemente von Drittanbietern und Berichts-Laufzeiten

    Steuerelement-Suiten für Web Forms und WinForms, etwa von Telerik, DevExpress oder Infragistics, und die Crystal-Reports-Laufzeit sind an bestimmte Framework-Versionen gebunden. Wir prüfen Versionen und Lizenzen und entscheiden Element für Element, was sie ersetzt.

  5. Regeln in gespeicherten Prozeduren und Triggern

    In vielen Anwendungen dieser Zeit stecken die eigentlichen Geschäftsregeln in der Datenbank. Bleibt die Datenbank, bleiben auch diese Prozeduren und werden durch die Vergleichstests abgedeckt. Wechselt sie, verlagern wir sie einzeln und mit Bedacht.

  6. Zustand im Arbeitsspeicher

    Anwendungen, die Daten in Session, in statischen Variablen oder im In-Process-Cache halten, gehen von einem einzigen Server aus, der nie neu startet. Wir machen diesen Zustand ausdrücklich, damit die neue Anwendung auf mehreren Instanzen laufen und einen Neustart überstehen kann.

Preis und Zahlung

Analyse

Kostenlos

schriftlich, innerhalb von 48 Stunden

Pilotmodul

1.000–1.500 €

meist, zu 50 % bei Beginn und zu 50 % nach Abnahme

Die Analyse ist kostenlos. Wenn Sie sich gegen das Projekt entscheiden, behalten Sie den Bericht und schulden uns nichts.

Die Preise sind fest und werden vor Projektbeginn schriftlich vereinbart. Ändert sich der Umfang, schicken wir ein neues schriftliches Angebot und warten auf Ihre Freigabe, bevor wir die zusätzliche Arbeit erledigen.

Bei einer kompletten Migration wollen wir 40 bis 60 % unter dem üblichen Angebot einer Agentur liegen. Das ist möglich, weil wir ein kleines Studio sind, ohne teure Büros und ohne Vertriebsabteilung.

Preise zzgl. MwSt.

Zur Preisschätzung

Eine echte Migration, durch Tests belegt

Northwind ist die Beispieldatenbank, die Microsoft mit Access ausgeliefert hat, kein Kunde von uns. Wir haben eine öffentliche Kopie zu SQLite und PostgreSQL migriert, jede Tabelle und jede Abfrage mit automatischen Tests gegen das Original geprüft und auf dem Ergebnis eine funktionierende Webanwendung gebaut. Die Fallstudie nennt die Zahlen, der Äquivalenzbericht führt jede Prüfung auf.

Northwind ist eine Access-Datenbank, bei .NET WinForms und WebForms gehen wir aber genauso vor: migrieren, gegen das Original testen, beides parallel betreiben.

Äquivalenzbericht (auf Englisch) · Klickbare Vorschau und Beispielanalyse (Demo)

Häufige Fragen

Müssen wir alles neu schreiben?

Nein. Klassenbibliotheken mit Geschäftslogik lassen sich oft mit überschaubaren Änderungen auf das aktuelle .NET bringen, und die Datenbank kann meist bleiben. Am stärksten ändert sich die Oberfläche, also die Web-Forms-Seiten und die WinForms-Masken. Die Analyse trennt, was übernommen werden kann und was neu gebaut werden muss.

Kann unsere WinForms-Anwendung ein Desktop-Programm bleiben?

Ja. Windows Forms wird im aktuellen .NET unterstützt, und der Wechsel dorthin verlängert die Lebensdauer des Programms für weniger Geld als ein Neubau fürs Web. Brauchen Ihre Benutzer Zugriff über den Browser oder von außerhalb des Büros, ist eine Webanwendung die Antwort. Wenn beides sinnvoll ist, nennt die Analyse für beide Wege einen Preis.

Unsere Anwendung läuft auf .NET Framework 4.8. Ist das dringend?

Nicht wegen des Supports, denn 4.8 und 4.8.1 folgen dem Lebenszyklus der Windows-Version, auf der sie laufen. Die Gründe für einen Umstieg sind meist andere: Zugriff über den Browser, Hosting unter Linux, Bibliotheken, die das .NET Framework nicht mehr unterstützen, oder die Schwierigkeit, Entwickler für Web Forms zu finden.

Lässt sich die Migration in Etappen durchführen?

Ja. ASP.NET Core und die alte Anwendung können unter derselben Adresse nebeneinander laufen, während ein Bereich nach dem anderen umzieht. Microsoft beschreibt diesen schrittweisen Weg für ASP.NET-Anwendungen in der eigenen Dokumentation.

Setzen Sie automatische Upgrade-Werkzeuge ein?

Dort, wo sie helfen, etwa beim Aktualisieren von Projektdateien und Paketverweisen. Sie entscheiden aber nicht, wie eine Web-Forms-Seite in ASP.NET Core funktionieren soll, und jeder umgewandelte Teil durchläuft dieselben Vergleichstests wie der Rest.

Welche Datenbank werden wir verwenden?

In der Regel die, die Sie schon haben, meist SQL Server. Ein Datenbankwechsel ist eine eigene Entscheidung, die wir nur bei einem klaren Grund empfehlen.

Kontakt

Per E‑Mail:

riccardo@modernizestudio.com
E‑Mail schreiben

Schicken Sie uns den Quellcode und eine Kopie der Datenbank mit Testdaten oder eine kurze Beschreibung der Anwendung. Wir antworten innerhalb eines Werktags.

Wir arbeiten von Italien aus.

E‑Mail schreiben