Was ist der einfachste Weg, um eine großen C # WinForms-Anwendung auf WPF aktualisieren

StackOverflow https://stackoverflow.com/questions/111817

  •  02-07-2019
  •  | 
  •  

Frage

Ich arbeite an einer großen C # Anwendung (ca. 450.000 Zeilen Code), wir ständig Probleme mit Desktop-Heap und GDI Handle-Lecks. WPF löst diese Probleme, aber ich weiß nicht, was der beste Weg ist, zu aktualisieren (ich erwarte, dass dies eine lange Zeit dauern wird). Die Anwendung hat nur wenige Formen, sondern viele verschiedene Sätze von benutzer Kontrollen enthalten kann, die programmatisch bestimmt werden.

Dies ist eine interne Firma App so unsere Release-Zyklen sehr kurz sind (in der Regel 3 Wochen Release-Zyklus).

Gibt es eine schrittweise Upgrade-Pfad oder haben wir den Erfolg in einem Kraftakt nehmen?

War es hilfreich?

Lösung

Sie können durch Erstellen einer WPF-Host starten.

Dann können Sie die Kontrolle Ihre aktuelle Anwendung hosten. Dann schlage ich vor, eine Bibliothek Ihrer neuen Steuerelemente in WPF zu erstellen. Einer nach dem anderen, können Sie die Steuerelemente erstellen (ich sie benutzerdefinierte Steuerelemente schlage vor, dass, nicht usercontrols). Im Stil für jede Kontrolle, können Sie mit der Verwendung der Kontrolle gehören die „alten“ Windows Forms Kontrolle starten. Dann können Sie Ihre Zeit in Anspruch nehmen, Refactoring und jede Kontrolle als komplette WPF zu erstellen.

Ich denke, es wird noch einen anfänglichen Aufwand, um Ihre Steuer Wrapper zu erstellen und eine WPF-Host für die Anwendung zu entwerfen. Ich bin nicht sicher, die Größe der Anwendung und oder die Komplexität der Benutzersteuerung, so dass ich bin mir nicht sicher, wie viel Mühe, die für Dich wäre. Relativ gesehen, es erheblich weniger Aufwand und viel schneller Sie Anwendung zu erhalten und auf diese Weise in WPF ausgeführt wird.

würde ich nicht nur das tun und darüber allerdings vergessen, wie Sie in Probleme mit Kontrollen laufen können sie überlagern (Windows-Formulare nicht gut mit Folien und Grafiken an mit WPF, vor allem spielen)

Bitte aktualisieren Sie uns über den Stand des Projekts oder mehr technische Informationen zur Verfügung stellen, wenn Sie mehr spezifische Leitlinien möchten. Danke:)

Andere Tipps

Haben Sie für die Stücke viel Bedienelemente verwenden? WPF können winform Steuerelemente ausgeführt, so konnte man in stückweise Teile in die Hauptform bringen.

WPF ermöglicht es Ihnen, Fenster einzubetten bildet Bedienelemente in eine WPF-Anwendung, die Ihnen helfen können, den Übergang in kleineren Schritten zu machen.

Schauen Sie sich die Windows Klasse in der WPF-Dokumentation.

Ich gehe davon aus, dass Sie nicht nur sind looing für ein Element IhrDeterm großen Winforms App zu setzen. Das ist ohnehin keine echte Portierung auf WPF. Betrachten Sie die Antworten auf dieses Thema Was sind die größeren Hürden von WinForms zu WPF Migration zu überwinden? , wird es sehr hilfreich sein.

Es ist ein sehr interessantes Whitepaper auf eine .NET 2.0 winform Anwendung zu WPF Migration finden Sie unter Evolving zu einer .NET 3.5-Anwendung

Papier Zusammenfassung: In diesem Artikel werde ich wir stehen einige der Denkprozesse, Entscheidungen und Themen umreißen mussten, wenn sie von 1.x / 2.x auf 3.x eine Microsoft .NET-Anwendung weiterentwickelt Ich werde sehen, wie wir unsere Kunden geholfen, die neue Technologie zu übernehmen, und doch noch aufrecht erhielt einen Release-Zeitplan akzeptabel für das Unternehmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top