Gibt es eine praktische Möglichkeit für uns, langsam eine WinForms-Anwendung zu WPF zu entwickeln, ohne einen Support-Albtraum für uns selbst mit seltsamen Interop-Szenarien zu erstellen?WinForms zu WPF - Wie kommen wir von hier her?
Hintergrundinfo:
Wir haben eine große Schlacht grau WinForms-Anwendung, die stark durch eine interne Gruppe von etwa 60 bis 75 Benutzern verwendet wird. Wir fangen an, an Orte zu rennen, an denen wir einen Nutzen aus der App in WPF ziehen könnten, aber das ist nicht genug, um ein großes Projekt zu rechtfertigen, das es komplett neu schreibt. Alle Bildschirme in der App sind in sich geschlossene Kontrollen Benutzer WinForms und die WinForms-Anwendung ist nur eine Hülle, die menuing, zum Öffnen/Schließen-Formulare verarbeitet werden, bietet einige gemeinsamen Hilfsmethoden, etc ...
Bis jetzt der beste Die Idee, die wir hatten, besteht darin, die Shell-Anwendung in WPF zu konvertieren und dann die darin enthaltenen WinForms-Benutzersteuerelemente zu hosten. Wir dachten, dass wir dann die Benutzersteuerelemente im Laufe der Zeit konvertieren könnten, und diese Änderungen an Initiativen binden, die genügend geschäftlichen Nutzen für die zusätzliche Arbeit haben. Ich bin besorgt darüber, wie gut die Interop funktioniert und wie sie die Leistung beeinflusst. Ich bin auch besorgt darüber, wie wir zu einem neuen Look für die App übergehen. Es wäre merkwürdig, die Shell-App pfiffig aussehen zu lassen und dann alte graue Benutzersteuerelemente für Schlachtschiffe zu beherbergen, und es erscheint auch seltsam, die Shell-App in WPF zu erstellen und sie so aussehen zu lassen, wie sie es in WinForms getan hat.
Wenn eines der Caliburn-, Prism- oder eines anderen ähnlichen Frameworks den Übergang erleichtern würde, wären wir bereit, diese Optionen ebenfalls zu untersuchen.
+1 Dies beschreibt meine eigenen Erfahrungen sehr gut. Hier ist auch eine interessante PDC-Sitzung darüber, wie Visual Studio 2010 mit NET Framework 4 Interop implementiert wurde: http://microsoftpdc.com/2009/CL09 –
Ich bin mir nicht sicher, es gibt eine "richtige" Antwort auf dieses, aber ich denke, dass dies der Ansatz ist, den wir am ehesten annehmen werden. –
und haben Sie bei all diesen Bemühungen, die vom Unternehmen bezahlt wurden, den Endbenutzern neue nützliche Funktionen zur Verfügung gestellt oder hatten Sie gerade eine gute Zeit, Augenschmaus zu machen? – smirkingman