Es gibt viele Fragen über WPF vs Winfoms und die Vorteile der Migration zu WPF, jedoch habe ich eine spezifischere Frage, die wahrscheinlich subjektiv ist, aber definitiv helfen würde, WPF zu rechtfertigen.
Da wir uns in einer internen IT-Abteilung befinden, kümmern sich die Geschäftsanwender nicht darum, wie wir zum Endprodukt gelangen, sondern kümmern sich auch nicht um Dinge wie Animationen, Styling usw.
Ich kann einige technische Gründe nennen, aber wie kann ich sie und das Management davon überzeugen, dass WPF ihnen jetzt und auf lange Sicht von Nutzen sein wird?
Alle Beispiele für Verbesserungen der UI-Steuerelemente usw. helfen.
Danke.
Der größte geschäftliche Vorteil von WPF gegenüber WinForms ist meiner Meinung nach der massive Anstieg der Testbarkeit . Wegen der allgegenwärtigen Datenbindung Unterstützung in WPF, Muster wie Model-View-ViewModel wird trivial zu implementieren und ermöglicht es, den Großteil der Interaktionslogik einer Anwendung in ViewModel zu separieren Klassen, die als Plain-Old-Clr-Objekte viel einfacher zu testen sind als WinForms-Steuerelemente.
Der zweite Vorteil kommt von der Kompostierbarkeit der "Widgets" in WPF. Anpassen des Erscheinungsbilds von Elementen in einer ListBox oder einer ComboBox mit Datenvorlagen zum Beispiel ist ein Kinderspiel im Vergleich zu der benutzerdefinierten Zeichnung, die in WinFroms stattfinden muss. WPF macht es also viel einfacher, Anwendungen mit hoher Benutzerfreundlichkeit im Vergleich zu WinForms zu erstellen.
Drittens sind die Kontrollmodell- und Grafik-APIs eine enorme Verbesserung gegenüber WinForms. Als ich ein benutzerdefiniertes Chart-Steuerelement erstellen wollte, mit dem mehrere hundert Serien performant gerendert werden konnten, brauchte ich nur ein paar Tage, um es zu tun - ich erinnere mich an etwas ähnliches, das in WinForms Wochen dauerte. Als ein anderes Beispiel habe ich gebloggt darüber, wie Es ist einfach, mit dem Erstellen eines benutzerdefinierten Gantt-Steuerelements in WPF zu beginnen.
Nun, wenn Sie einfach das Management von den Vorteilen von WPF überzeugen müssen, schmeißen Sie einfach ein paar irre YouTube-Videos. Ich mag besonders dieses und dies . :)
Der wichtigste technische Grund, den ich mir vorstellen kann, ist die Logik des Programms von der Benutzeroberfläche zu trennen. Dies kann jedoch unter Verwendung alternativer Programmierparadigmen erreicht werden.
Um zu wiederholen, was Kensai erwähnt hat - WPF erleichtert die Trennung von UI und Geschäftslogik erheblich.
Sie könnten also ein Argument in den folgenden Zeilen konstruieren:
Es gibt noch ein weiteres Argument darüber, wie eine moderne, gut gestaltete Benutzeroberfläche die Produktivität Ihrer Benutzer verbessern wird.
Aus Erfahrung macht Xaml den UI-Aufbau und die Wartung (insbesondere für komplexe UIs) phänomenal einfacher als WinForms. Die Verbesserungen der Datenbindung sind ebenfalls beträchtlich. Sie machen Ihre Apps nicht nur testfähiger, wie von anderen erwähnt, sondern sie beschleunigen auch die Entwicklungszeit erheblich. WPF enthält auch XPS-Unterstützung. Wenn Ihr Unternehmen also eine "PDF-Druckfunktion" plant, können Sie ihm mitteilen, dass Sie diese kostenlos erhalten. Außerdem ist WPF "beliebter" als WinForms, so dass Sie mehr kostenlose Steuerelemente und neuen, relevanten Beispielcode für WPF finden, der Ihnen Zeit spart. Schließlich geht WinForms nirgendwohin. Die Technologie wird wahrscheinlich lange von MS unterstützt werden, aber WPF ist offensichtlich ihre "Lieblings" -Technologie für neue Entwicklungen und wird die beste Werkzeugunterstützung erhalten. Sie könnten auch argumentieren, dass das Expression Blend-Tool die UI-Entwicklungszeit erheblich beschleunigt und Ihnen die Möglichkeit bietet, viele UI-Arbeiten an einen Designer oder UI-Spezialisten auszulagern.
Sobald Sie die "WPF-Methode" lernen, ist die Erstellung einer voll funktionsfähigen komplexen Benutzeroberfläche in XAML schneller als bei WinForms (wegen der großen Unterstützung für Datenbindung, der Möglichkeit, das automatische Layout zu erstellen usw.) >
Mit WinForms ist es schwierig, Logik von der Präsentation zu trennen, mit WPF ist es viel einfacher - das gibt Ihnen saubereren Code, Testbarkeit und die Möglichkeit, die gleiche Logik mit anderen UI-Technologie in der Zukunft zu verwenden.
Es ist offensichtlich, dass WPF mehr Aufmerksamkeit von MS bekommt und schneller voranschreitet als WinForms (siehe zum Beispiel VS2010).
Aber auf der anderen Seite
Wenn ich ein neues Projekt starte, gehe ich mit WPF, aber wenn Sie eine Menge existierender Arbeitscode haben, ist das wahrscheinlich nicht die beste Zeit.
WPF funktioniert nur unter Windows XP SP2 oder höher, dies ist keine Einschränkung für kommerzielle Anwendungen, da jeder, der Software kauft, vor Jahren auf XP umgestellt hat - könnte aber in einer kooperierenden Umgebung ein Problem darstellen, wenn Sie noch über Win2K-Maschinen verfügen / p>
Geben Sie ihnen nur ein Beispiel dafür, welchen Job markit heute sucht. nicht viele WinForms-Entwickler, sondern WPF-Entwickler. Wenn der Trend darin besteht, WinForms zu verwenden, werden sie vielleicht keine guten Talente bekommen.
Auch WPF macht es einfacher, alte WinForms oder anders herum zu hosten (Host-WPF in WinForms), so haben wir die partielle / gestufte Migration gemacht