2009-12-18 7 views
12

Es gibt eine ähnliche Frage an WPF versus Windows Forms, die einige gute Informationen hat, aber in meiner persönlichen Erfahrung sehe ich keinen Grund, WPF über Winforms zu verwenden. Bei WPF wurde anfangs viel über die Multithreading-Funktionalität gesprochen, aber im Einsatz sehe ich keine Vorteile.Warum sollte ich WPF über Winforms verwenden? Beispiele für WPF, die Winforms übertreffen?

Ich habe zwei Anwendungen, die das gleiche tun, eine in WPF und in Winforms. Die Winforms-Anwendung bläst die WPF-Anwendung in Bezug auf die Leistung weg (um den Faktor 10) und sieht genauso gut aus.

Zugegeben, ich bin in Winforms-Anwendungen besser als WPF.

+0

WPF> WinForms, weil Sie einen Webbrowser in eine Schaltfläche einfügen können! ;) – Qberticus

+0

@Qberticus: Ich bin mir nicht sicher, ob ich deiner Antwort folge. Ich kann einfach ein WebBrowserControl erstellen und das Click-Ereignis behandeln. –

+0

Was QBerticus bedeutet ist, dass das WebBrowserControl * innerhalb * der Button-Steuerelement, sowohl visuell als auch logisch (kann nicht sagen, warum jemand das wollen würde) –

Antwort

15

Es gibt eine weitere Diskussion über das Thema hier: When is Windows Forms the correct choice vs WPF?

Die WinForms Anwendung bläst die WPF Anwendung weg in Bezug auf Leistung (um einen Faktor von 10) und sieht genauso schön.

WPF ist mehr als nur schicke Grafik ... Ich bin kein Designer, Hölle Ich habe kein Gefühl für Farben (bis zu einem Punkt, wo meine Verlobte entschieden kann ich nicht mehr meine eigene Kleidung kaufen) aber ich liebe WPF. Databinding-Unterstützung zum Beispiel ist erstaunlich nicht zu erwähnen, wie einfach es ist, eine ItemTemplate für eine List-Box zu erstellen (Sie erinnern sich die Zeichenmethoden in Windows Forms zwingenden nur 2 Zeilen Text zu erhalten und ein Bild in einem ListBox Artikel?)

Was die Leistung anbetrifft ... Nach meiner Erfahrung kann die Verbesserung nur bemerkt werden, wenn Sie Windows Vista/7 mit einer GPU verwenden. (Und natürlich, wie du Code schreibst).

Vielleicht war es ein Fehler von Microsoft zu vermarkten, dass WPF dreht sich alles um rosa Elefant Grafiken, während es so viel mehr tut. (Sie machten einen ähnlichen Fehler mit der überstürzten Version von Silverlight 1, die meiner Meinung nach alle zusammen übersprungen haben sollten).

+5

+1 Definitiv sind die großen Vorteile von WPF die große Flexibilität, die Sie erhalten, und wie Sie viel besseren Code schreiben können, wie das Model-View-ViewModel-Muster. –

+3

Stimmen Sie mit Timothy und Martinho überein, es geht um die Architektur. Templating und Datenbindung sind zwingende Gründe, WPF zu verwenden: Sie können so viel mehr erledigen, so viel einfacher und so viel wartbarer. Und ich war mir definitiv darüber einig, dass Microsofts Marketing von WPF eine Möglichkeit war, dumme Buttons zu entwerfen. Es geht um die Architektur. – itowlson

0

WinForms und WPF sind beide große Rahmen die Frage ist, was am besten für Ihre Anwendung geeignet ist. Wenn Sie eine flüssige GUI mit animierten Steuerelementen und sehr geeigneten Stilen benötigen oder nur eine sehr grafische Benutzeroberfläche erstellen, ist WPF sehr gut für diese Art von Anwendung. WinForms können manchmal sehr einschränkend sein, weil die Steuerelemente genau das sind, was sie sind. Sie können Benutzersteuerelemente erstellen, um ihnen Dinge hinzuzufügen, aber das Ändern ihrer Darstellung kann schwierig sein, wenn Sie ein bestimmtes Aussehen haben.

Ein guter Vergleich wäre der Unterschied zwischen einer WinForms-Anwendung und einer Silverlight-Anwendung. Silverlight und WPF teilen einen gemeinsamen Rahmen und es wird Ihnen helfen, die Unterschiede zwischen den beiden zu verstehen.

Werfen Sie einen Blick auf diese Silverlight und WPF-Bibliothek und Sie werden einige der Dinge sehen, die in einer WPF-Umgebung getan werden können.

Silverlight Library: http://demos.telerik.com/silverlight/

WPF-Bibliothek: http://demos.telerik.com/wpf/

1

größte Problem mit WPF ist, dass das Toolset ist lahm und Lernkurve ist sehr groß. Bisher war die Akzeptanz bei WPF sehr gering, vor allem wegen der eben erwähnten Probleme. Laut Microsoft ist WPF die Zukunft und sie haben stark in sie investiert.Infact nächste Version von Visual Studio ist in WPF geschrieben (http://www.onedotnetway.com/writing-visual-studio-2010-shell-in-wpf-reflects-confidence/)

Es bleibt jedoch noch zu sehen, ob WPF jemals Mainstream werden wird. Das Framework ist großartig und es kann wirklich coole Sachen machen, die hauptsächlich mit Augenschmaus verbunden sind. Microsoft nennt es UX, aber in einfachem Englisch ist es Augenschmaus. Die meisten Anwendungen brauchen es nicht.

+3

Wer behauptet, dass die coolen Sachen, die man in WPF machen kann, * meistens * im Zusammenhang mit Augenschmaus steht, ist entweder 1) jemand, der mit WPF * gespielt * hat, aber * WPF *, 2) nicht gelernt hat. –

2

Der größte Grund, mit WPF zu gehen, ist keine Augenweide. Die echten Vorteile liegen in der Zuverlässigkeit und Produktivität und ermöglichen es den künstlerischen Typen, das Aussehen Ihrer Benutzeroberfläche zu verändern, ohne Ingenieure einzubeziehen.

4

WPF

  1. ermöglicht einen Designer/Nicht-Programmierer das Aussehen der Benutzeroberfläche getrennt vom Code zu verbessern. Designer können Tools wie Expression Blend verwenden, um das Aussehen einer App stark zu verändern.
  2. Das Wissen für das Schreiben von WPF erforderlich ist fast vollständig für das Schreiben von Silverlight-Code transportabel, so dass Sie eine Lernkurve für zwei Technologien
  3. ist stark und aktiv von Microsoft gefördert wird, und hat wahrscheinlich mehr Zukunft als WinForms. WinForms wird den Weg von MFC vor WPF gehen.

auf der anderen Seite:

  1. die Lernkurve ist für WPF schwerer als WinForms
  2. Designer Unterstützung im Vergleich zu WinForms fehlt, obwohl dies
  3. der Strom mit Visual Studio 2010 ändern Trend ist, View-ViewModel-Modell zu verwenden, um Anwendungen zu bauen: das ist weiter oben auf dem WPF-Framework zu lernen, aber es lohnt sich, wenn Sie nichts als einfache UI
bauen

Wenn Leistung (Geschwindigkeit und Ressourcenanforderungen) Ihre Kriterien für eine gute UI-Plattform für Windows ist, dann ist der Gewinner eine native Win32-Anwendung. Sie übernehmen eine andere Technologie für das, was sie zu bieten haben, und letztendlich hat WPF mehr zu bieten als WinForms.

+1

+1. Ein Punkt, den ich nicht verstehe: Sie erwähnen die Verwendung von Blend, um das Aussehen der App zu ändern, und dann haben Sie gesagt, dass die Unterstützung von Designern fehlt. –

+0

Der Designer ist Teil von Visual Studio, während Expression Blend ein separates Microsoft-Produkt ist. –

Verwandte Themen