Vorteil der WPF-App gegenüber Winform für Business-Apps? [geschlossen]

84

Ich kenne asp.net und Winform-Entwicklung. Ich bin nicht der Typ Entwickler, der in eine neue Technologie einsteigt, nur weil sie neu ist. Es muss mir zusätzliche Vorteile wie eine höhere Produktivität bieten.

Was sind die Vorteile von WPF gegenüber Winforms für reine Geschäftsanwendungen? Ich interessiere mich nicht für die zusätzliche Augenweide, Animation, Farbverläufe, Bildanzeigeeffekte usw., die WPF bietet. Die Geschäftsanwendungen dienen der Dateneingabe, Datenberichterstattung und möglicherweise einigen Diagrammen und der statischen Anzeige von Fotos.

Wie hilft WPF in diesen Apps? Bessere Datenbindung? WinForm ist eine ausgereifte, bewährte Technologie und ich mag die Tatsache, dass ich in Visual Studio alles gegen mehrere IDEs für WPF (VS & Blend-Familie) tun kann. Außerdem denke ich, dass WPF nicht so umfangreiche Steuerelemente für die Datenbindung hat wie seine Winform-Gegenstücke (DataGridView..etc). AFAIK, Microsoft wird Winforms noch viele Jahre unterstützen.

Versuchen Sie, jemanden wie mich zum Wechsel zu überreden.

Abdu
quelle
1
Ich denke, es gibt einige starke Gründe, zu WPF zu wechseln. Ich möchte einen Blog, den ich gerade geschrieben habe , nicht wiederholen , daher werde ich hier einen Link dazu setzen.
Andy Brown
7
Dies ist eine ausgezeichnete Frage. Sollte wieder geöffnet werden. Ich bin ein Winform-Entwickler, der zu WPF wechselt. Die Lernkurve ist riesig. Aber WPF ist die Zukunft, da es von Natur aus eine deklarative Sprache wie HTML ist. Winform ist größtenteils prozedural, was für Algorithmen besser geeignet ist, für die Anzeige der Benutzeroberfläche jedoch ausführlicher. Versuchen Sie, eine .XPS-Druckdatei zu entpacken. Dort wird WPF xaml angezeigt. Bei Winforms gibt es einfach zu viele Einschränkungen. Es funktioniert zwar immer noch, aber die WPF "Augenweide" kann helfen, den Stresspegel des Benutzers zu reduzieren. Sie können mehrere Datensatzzeilen auf eine aussagekräftigere Weise als Listenansicht oder Datagrid darstellen.
Jeson Martajaya

Antworten:

101

Ich kenne asp.net und Winform-Entwicklung. Ich bin nicht der Typ Entwickler, der in eine neue Technologie einsteigt, nur weil sie neu ist. Es muss mir zusätzliche Vorteile wie eine höhere Produktivität bieten.

Für mein Team hat sich WPF als viel schneller als WinForms erwiesen, um Anwendungen mit zu entwickeln. Wir haben kürzlich eine mittelgroße App in 32 Manntagen veröffentlicht. Wir hatten den Vorteil eines erfahrenen WPF-Entwicklers im Team und unerfahrener Leute, die die Technologie unbedingt lernen wollten. Die Moral war großartig und die Produktivität beeindruckend.

WinForm ist eine ausgereifte, bewährte Technologie und ich mag die Tatsache, dass ich in Visual Studio alles gegen mehrere IDEs für WPF (VS & Blend-Familie) tun kann.

Betrachten Sie sich als Handcodierer oder Drag-and-Drop-Codierer? Wenn Sie sich als Drag-and-Dropper betrachten, ist die aktuelle Ernte von WPF-Werkzeugen möglicherweise nicht für Sie geeignet. Vielleicht auf Visual Studio 2010 warten? Ich arbeite fast ausschließlich in XAML. Die meisten WPF-Benutzer werden wahrscheinlich zustimmen, dass dies derzeit die effektivste Methode zum Erstellen von WPF-Anwendungen ist. Aber dann bastle ich mein HTML auch von Hand, so dass es sich für mich natürlich anfühlt ...

Was sind die Vorteile von WPF gegenüber Winforms für reine Geschäftsanwendungen? Ich interessiere mich nicht für die zusätzliche Augenweide, Animation, Farbverläufe, Bildanzeigeeffekte usw., die WPF bietet.

Früher habe ich so gedacht, aber kürzlich habe ich eine Geschäftsanwendung entwickelt, die Farbverläufe, grundlegende Animationen und Effekte enthält. Diese ausgefallenen Funktionen wurden hinzugefügt, um die Benutzererfahrung zu verbessern. Warum sollten Geschäftsanwendungen Battleship Grey sein? Warum sollten sie unbrauchbar sein? Zugegeben, es sind nicht Farbe, Farbverläufe oder Animationen, die eine Geschäftsanwendung nutzbar machen, aber die Verwendung dieser Effekte kann die Benutzererfahrung verbessern, und das ist mir wichtig. Ich hätte alles tun können, was ich in der WPF-App in WinForms getan habe - es hätte einfach viel länger gedauert.

Bessere Datenbindung?

Die Datenbindungsunterstützung ist wirklich erstaunlich. Es ist meine beliebteste Funktion auf der Plattform. Schauen Sie sich dieses wunderbare Datenbindungs-Cheatsheet an .

Versuchen Sie, jemanden wie mich zum Wechsel zu überreden.

Ich habe beschlossen, dass ich nicht versuchen werde, andere davon zu überzeugen, zu WPF zu wechseln. Die Entwickler, die ich zu "überzeugen" versucht habe (alle erfahrenen Winforms-Entwickler), haben normalerweise Probleme mit der Plattform. Sie sind nicht in die Technologie investiert. Sie "verstehen es nicht". Ich ermutige die Leute, die Technologie zu überprüfen, um festzustellen, ob sie für sie als Entwickler richtig ist. Die Lernkurve ist riesig. Wenn Sie anhand von Büchern lernen, lesen Sie in diesem SO-Beitrag einige Mini-Rezensionen zu WPF-Büchern. Wenn Sie anhand von Videos lernen, sehen Sie sich die WPF-Videos von windowsclient.net an . Wenn Sie anhand eines Beispiels lernen, sehen Sie sich dies oder das an Beitrag. Vergessen Sie alles, was Sie über WinForms wissen. WPF scheint ASP wirklich näher zu sein als WinForms. Erstellen Sie einige Beispielanwendungen. Sehen Sie, ob es für Sie und Ihr Team funktioniert.

Da Sie über mehrere Fachkenntnisse verfügen (asp.net/winform-Kenntnisse), können Sie den Vorteil einer Qualifizierung in WPF erkennen, da diese sehr eng mit Silverlight verbunden ist. Silverlight füllt diese Lücke zwischen Ihren Rich Client-Anwendungen und Webanwendungen.

Ich persönlich bin der Meinung, dass WPF die beste clientseitige Technologie ist, die für das .NET-Framework verfügbar ist, und dass die Entwicklung in WinForms für zukünftige Arbeiten im Allgemeinen vermieden wird. YMMV

Viel Glück bei Ihrer Entscheidung.

Brad Leach
quelle
10
Tolle Resonanz Brad - unser Unternehmen hat gerade mit dieser Entscheidung zu kämpfen. Ihre Beobachtungen sind gut durchdacht und stimmen sehr gut mit dem überein, was wir bisher gesehen haben. Wir haben noch keine Entscheidung getroffen, aber Ihr Battleship Grey-Absatz findet großen Anklang bei uns, da wir die Auswirkungen einer gut aussehenden Benutzeroberfläche auf den Umsatz gesehen haben. Vielen Dank, dass Sie sich die Zeit genommen haben, eine hervorragende Antwort zu schreiben.
Gidmanma
3
Es gibt einen enormen Unterschied zwischen einem einzigen erfahrenen WPF-Entwickler in einem Team und einem überhaupt keinen. Kombinieren Sie das mit einer steilen Lernkurve und wenn Sie geschäftlich tätig sind, werden Sie überhaupt nicht viel erreichen. Realistisch gesehen ist WPF großartig, wenn Sie jemanden haben, der Sie führt, und nicht so sehr, wenn Sie lernen, während Sie gehen. Und wenn Sie dies tun, bereiten Sie sich auf größere Umgestaltungen vor.
Sergey Akopov
3
+1 - "Warum sollten Geschäftsanwendungen Battleship Grey sein?" - Stimme voll und ganz zu!
Samuel Slade
5
-1 Wenn der einzige Grund für den Wechsel zu WPF in der Möglichkeit besteht, Farbverläufe zu erstellen und Ihre Anwendungsdialoge von "Schlachtschiffgrau" zu ändern, müssen Sie tatsächlich lernen, wie Sie WinForms verwenden.
Deegee
1
+1, vollständige Antwort. Der Link windowsclient.net WPF-Videos ist nicht verfügbar. Weiß jemand, wo diese zu finden sind?
Damien
11

Ich habe ziemlich viel Erfahrung mit Winforms und habe nur ein bisschen mit WPF gespielt, aber ich bin verkauft.

Warum?

  • VIEL mehr Flexibilität. Wenn Sie in Winforms etwas tun möchten, das nicht dem Standard entspricht, kommt es zu Schmerzen und Leiden, aber in WPF ist es einfach.

  • Viel bessere Datenbindung

  • Einfacher zu entwickeln (sobald Sie die Kernkonzepte verstanden haben, was leider eine Weile dauern wird)

Orion Edwards
quelle
4

Als ich anfing, mir WPF anzuschauen, behandelte ich es als "Winforms with Vector Graphics" und rannte direkt auf die Seite der Lernklippe. Der richtige Weg, um von WinForms zu WPF zu wechseln, besteht darin, eine heldenhafte Dosis des Betäubungsmittels einzunehmen, das Sie in die Hände bekommen können, um alles zu vergessen, was Sie wissen, und dann von vorne zu beginnen.

Im Ernst - es ist viel sauberer und einfacher, wenn Sie ein Muster wie Model-View-ViewModel verwenden. Lesen Sie mehr unter The Orbifold , diesem Google Groups-Thread und Channel9

Dann haben Sie irgendwann eine Offenbarung und beginnen, alles zu binden. Ihr Code-Behind wird nicht viel mehr als ein Aufruf von InitializeComponent ().

geofftnz
quelle
4

Danke für den Beitrag. Mein Unternehmen hat viel Zeit in WinForms investiert. Ich kann mir nicht vorstellen, in 32 Manntagen eine mittelgroße Anwendung herauszubringen. Unsere Zertifizierungszeiträume sind Monate und Release-Zyklen manchmal jährlich oder länger (obwohl wir so nah wie möglich an einer agilen Entwicklungsphilosophie festhalten). Dies ist die Art der Anwendungen, die wir entwickeln.

Ich habe gerade zum ersten Mal mit WPF gespielt und festgestellt, dass ich mit ElementHost einige Vorteile von WPF in WinForms erzielen kann. Ich habe eine WPF-Textbox erweitert, dann meine erweiterte Klasse in ein Win Forms UserControl eingeschlossen und habe jetzt eine WinForms-App, die dieses WPF-Textfeld verwendet, einschließlich Unterstützung für die Rechtschreibprüfung.

Ich bin beeindruckt, dass Microsoft darüber nachgedacht hat (Hosting von WPF in WinForms und umgekehrt), da ich wirklich nicht sehen kann, dass mein Unternehmen zu WPF wechselt, es sei denn, wir können über einen langen Zeitraum hinweg wechseln. Es wird einfach zu viel in WinForms investiert, um erneut zu starten. Aufgrund meiner jüngsten Erfahrungen kann ich anfangen, mit einigen anderen Entwicklern über meine jüngsten Erfahrungen zu sprechen und ihre Gedanken zu sehen. Ich denke, WPF wird einige Zeit brauchen, um sich daran zu gewöhnen, und das scheint mit anderen Kommentaren übereinzustimmen.

Wayne H.
quelle
0

Überprüfen Sie einfach diese Suchergebnisse hier in Stackoverflow, um zahlreiche Antworten zu erhalten. https://stackoverflow.com/search?q=WPF+Winforms

Jobi Joy
quelle
3
Ich hoffe du denkst, dass ich das schon versucht habe!
Abdu
0

Stellen Sie sich vor, Sie könnten dieselbe Benutzeroberfläche (XAML) von Ihrer ASP.NET/(Silverlight) -Seite mit Ihrer Desktop-App verwenden. Sie würden es nur einmal erstellen, aber an beide anschließen ... das ist eine der Absichten von WPF / XAML ... sind wir wirklich schon da? Noch nicht, aber näher.

Webjedi
quelle
4
Der Versuch, dieselbe Benutzeroberfläche in Silverlight und eine Desktop-App zu verwenden, ist eines der Dinge, die theoretisch gut klingen, aber in der Praxis wird dies meiner Meinung nach nur zu einer beschissenen Benutzeroberfläche auf beiden Plattformen führen.
Orion Edwards
Ja, die Überlappung zwischen WPF und Silverlight2 ist groß, aber nicht genug, um Ihren Code portabel zu machen. Unterschiede in den Bindungsfunktionen schränken Ihre WPF-Entwicklung übermäßig ein.
geofftnz
1
Nun, ich habe gesagt, wir sind noch nicht ganz da ... aber das ist die ultimative Absicht.
Webjedi
geofftnz: Meinen Sie beschränken Silverlight - Entwicklung?
Abdu