WPF vs. WinForms - die Perspektive eines Delphi-Programmierers?

38

Ich habe die meisten wichtigen Themen zu WPF vs. WinForms gelesen und bin festgefahren in der unglücklichen Ambivalenz, in die Sie geraten können, wenn Sie sich zwischen der bewährten Vorgängertechnologie (Winforms) und deren Nachfolger (WPF) entscheiden.

Ich bin ein langjähriger erfahrener Delphi-Programmierer, der endlich den Sprung nach C # schafft. Meine Kollegen unter den Delphi-Programmierern werden verstehen, dass ich gespannt bin, dass Anders Hejlsberg, der in Delphi berühmt ist, der Architekt hinter C # war. Ich bin stark von Delphis benutzerdefinierten VCL-Komponenten abhängig, insbesondere von denen, die mehrstufige Assistenten und Komponenten erstellen, die als Container für untergeordnete Komponenten fungieren.

Vor diesem Hintergrund hoffe ich, dass diejenigen von Ihnen, die von Delphi zu C # gewechselt sind, mir bei meiner Entscheidung zwischen WinForms und WPF beim Schreiben meiner ersten Anwendungen helfen können. Beachten Sie, dass ich sehr ungeduldig bin, wenn Codierungen und Dinge wie vollständige automatische Vervollständigung und ordnungsgemäße Debuggerunterstützung ein Projekt für mich erstellen oder unterbrechen können, einschließlich der Möglichkeit, sofort verfügbare Informationen zu API-Funktionen und -Aufrufen zu finden, und insbesondere Problemumgehungen für Fehler .

Die SO-Threads und Kommentare im Datumsbereich von Anfang 2009 geben mir große Sorge über WPF, wenn es um potenzielle Frustrationen geht, die meine C # UI-Entwicklungscodierung beeinträchtigen könnten. Andererseits ist es ebenso problematisch, übermäßig viel Zeit damit zu verbringen, eine API-Technologie zu erlernen, die, auch wenn sie nicht aufgegeben wird, bald ersetzt wird (WinForms), und ich finde die GPU-Unterstützung in WPF verlockend.

Daher meine Ambivalenz. Da ich noch keine der beiden Techniken gelernt habe, habe ich die seltene Gelegenheit, einen Neuanfang zu machen, und muss mich nicht der großen "Verlernen" -Kurve stellen, die in verschiedenen Threads erwähnt wurde, wenn ein WinForms-Programmierer zu WPF wechselt. Wenn die Verwendung von WPF für einen ungeduldigen RAD-Entwickler wie mich zu frustrierend ist oder andere schwerwiegende negative Folgen hat, bleibe ich bei WinForms, bis WPF den gleichen Grad an Unterstützung und Benutzerfreundlichkeit erreicht. Um Ihnen ein konkretes Beispiel für meine Psychologie als Programmierer zu geben, habe ich VB und anschließend Delphi verwendet, um den wirklichen Schmerz des Codierens mit MFC, einer Windows-UI-Bibliothek, unter dem viele Entwickler bei der Entwicklung früher Windows-Apps zu leiden hatten, vollständig zu vermeiden. Ich habe mein Glück, MFC zu vermeiden, nie bereut.

Es wäre auch beruhigend zu wissen, ob Anders Hejlsberg an der Architektur von WPF und / oder WinForms mitgewirkt hat und ob es Unterschiede in der kreativen Vision und Benutzerfreundlichkeit gibt, die in beiden Codebasen enthalten sind. Lassen Sie mich zum Schluss noch einmal für die Delphi-Programmierer wissen, wie viel "IDE-Schock" ich zu erwarten habe, wenn ich WPF im Gegensatz zu WinForms verwende, insbesondere wenn es um die Unterstützung von Debuggern geht. Alle für 2011 aktualisierten Kommentare zum Stellenmarkt sind ebenfalls willkommen.

Robert Oschler
quelle
2
Hat WPF nicht einen wirklich schlechten Ruf für schlechte Leistung?
David Heffernan
9
@ David: Es hat zwar diesen Ruf, aber wie immer ist die Realität nicht ganz so schlecht wie der Rap. Die grafische Benutzeroberfläche von Visual Studio 2010 wurde in WPF neu geschrieben, und auf den meisten Computern scheint es im Vergleich zu VS 2008 keinen merklichen Geschwindigkeitsverlust zu geben. @Robert: Abgesehen davon würde ich WinForms sehr empfehlen. speziell für einen Delphi-Konverter. Aber ich zögere ein wenig, dies als Antwort zu posten, damit es nicht in Vergessenheit gerät. Jeder scheint dagegen zu sein, weil es "alte" Technologie ist, als ob das tatsächlich etwas bedeutete.
Cody Grey
@Cody. Verstanden. Ich erhalte einige großartige Informationen mit den Antworten und Kommentaren, aber ich hoffe auf direktere Informationen zu WPF und dessen Debugger-Unterstützung im Vergleich zu WinForms und einige Informationen zum Arbeitsmarkt. Die Antworten auf meine Fragen in diesen Themenbereichen fehlen noch.
Robert Oschler
1
@ CodyGray: Sie müssen scherzen. VS2010 ist hundertmal langsamer als VS2008, ebenso wie WPF. Ihr Eindruck beruht wahrscheinlich auf der üblichen Neigung des Programmierers: Sie sehen sich nur die neuesten High-End-Maschinen an, die die meisten normalen Benutzer nicht haben.
Timwi

Antworten:

21

Wenn Sie einen Delphi-Hintergrund haben, werden Sie von WinForms enttäuscht sein. Sie werden versuchen, Dinge zu tun, die in der VCL einfach waren, nur um festzustellen, dass sie schmerzhaft schwierig oder sogar unmöglich sind. WPF wird viel weniger einschränkend sein.

Zum Beispiel sind hier nur einige der Einschränkungen von WinForms, auf die wir gestoßen sind:

  • In WinForms gibt es nichts Vergleichbares wie in TAction. Wenn Sie es also gewohnt sind, mit Aktionen zu codieren, müssen Sie denselben Text und dasselbe Symbol für ein Menüelement und eine Symbolleistenschaltfläche sowie ein Kontextmenü freigeben, Ihre Aktivierungslogik zentralisieren und den Aktivierungsstatus aktualisieren im Hintergrund mit OnUpdate ... Sie werden WinForms hassen, wo Sie all das auf die harte und fehleranfällige Weise tun müssen.
  • WinForms 'altes (.NET 1.0 Vintage) MainMenu unterstützt keine Bilder neben Menüelementen, und das neue (in .NET 2.0 eingeführte) MenuStrip ist mit Fehlern übersät , die Microsoft nicht beheben möchte (da die Bugfixes möglicherweise die Abwärtskompatibilität beeinträchtigen).
  • Viele Steuerelemente, z. B. TreeView, sind im Vergleich zu ihren VCL-Gegenstücken völlig unterfordert (schmerzhaft langsam, kein Besitzerzug, viele Anpassungsoptionen fehlen usw.).
  • Es gibt nichts, was der lebendigen Community von Steuerelemententwicklern ähnelt, die Sie in Delphi gewohnt sind. Es gibt Qualitätskontrollbibliotheken, aber Sie zahlen dafür - kostenlose Angebote wie VirtualTreeView sind für WinForms einfach nicht verfügbar.

WPF ist in mancher Hinsicht ein bisschen einfacher als WinForms, aber es ist immens erweiterbar.

  • Du willst so etwas wie TAction? WPF verfügt über ICommand, das genauso umfangreich ist wie Sie es gewohnt sind (lesen Sie jedoch unbedingt den MVVM-Artikel von Josh Smith - normalerweise müssen Sie Ihre Befehle manuell aktivieren / deaktivieren, wenn sich der Status ändert, aber seine Version löst automatisch Ihren Aktivierungscode aus im Hintergrund (wie Sie es von OnUpdate gewohnt sind).
  • Sie möchten Bilder auf Menüs? Das ist eingebaut (und bei weitem nicht so fehlerhaft wie in WinForms).
  • WinForms verzichtet bei einigen wichtigen Steuerelementen auf Owner-Draw. Wenn Sie jedoch stattdessen WPF verwenden, benötigen Sie kein Owner-Draw. Wenn Ihre TreeView-Knoten schwarzen Text gefolgt von einer blauen Zahl in Klammern haben sollen, müssen Sie dies nur tun Fügen Sie es in Ihr DataTemplate ein, und es funktioniert. Es wird kein hässlicher Code zum Zeichnen von Inhabern benötigt.
  • Sie möchten Steuerelemente von Drittanbietern? In vielen Fällen brauchen Sie sie nicht, da Sie die vorhandenen Funktionen in WinForms erweitern können und von denen VCL-Entwickler nur träumen können.

WPF hat eine sehr steile Lernkurve, aber wenn Sie sich ein gutes Buch zulegen (z. B. " WPF 4 Unleashed "), hilft es Ihnen, das Schlimmste zu überwinden - und Sie werden froh sein, mit einem solchen Framework zu arbeiten hält Sie nicht zurück, wie es WinForms tun wird.

Joe White
quelle
1
Danke für den direkten Delphi-Kommentar. Haben Sie Kommentare zum Stellenmarkt und Informationen zur Debugger-Unterstützung von VS 2010 für WPF, insbesondere zu Problemen bei der Nachverfolgung / Überprüfung? Ich schaue mir das Buch an, mit dem Sie verlinkt sind.
Robert Oschler
1
Ich weiß nichts über den Arbeitsmarkt. Was den Debugger angeht, sollten Sie mit Frustration rechnen, wenn der Konstruktor Ihres Fensters eine Ausnahme auslöst, da der Debugger Ihnen nur ungern einen Stack-Trace ausgibt. Sie müssen sich jedoch im Dialogfeld mit den Ausnahmedetails des Debuggers nur in zwei Ebenen von InnerException vertiefen. Wenn Ihre Bindungen nicht funktionieren, führen Sie den Debugger aus und überprüfen Sie im Ausgabefenster die Bindungsfehler. Abgesehen davon bin ich mir nicht sicher, welche Bedenken Sie haben. Nach meiner Erfahrung sind WPF-Debugs in Ordnung, und mit MVVM können Sie mehr von Ihrer UI-Logik testen als in WinForms.
Joe White
6
Sehr steile Lernkurve. Sie programmieren nicht so viel in WPF. Sie stellen Fragen, wie Sie WPF davon überzeugen können, das zu tun, was Sie wollen.
Ian Boyd
Tatsächlich geht es bei einigen der größten Hürden darum, zu lernen, mit einem Framework zu arbeiten, das die Verantwortlichkeiten richtig trennt, anstatt alles blind von TKitchenSink abzuleiten.
Joe White
1
Kann ich Delphi-Formulare haben, aber die C # -Sprache behalten? Bitte?
Robert Harvey
13

Ich bin normalerweise sehr überrascht, wenn Leute sagen, dass sie keine guten Erfahrungen mit WPF gemacht haben. Ich bin ein Entwickler, der von C ++ / MFC zu C # / WinForms zu C # / WPF gewechselt ist. Der Übergang von WinForms zu WPF war nicht einfach, da das Erlernen von XAML nicht sehr einfach ist, aber wenn Sie erst einmal darauf gekommen sind, ist es eine großartige Technologie. Ich kann nicht zu WinForms zurückkehren. WPF ist einfach fantastisch.

Die andere Sache, die mich stört, ist, wie Leute normalerweise WPF nur mit UI verbinden. Es ist in der Tat meiner Meinung nach 100-mal besser als WinForms, was das Design der Benutzeroberfläche angeht, aber es gibt viele andere Gründe, warum Sie gerne WPF verwenden:

  1. UI natürlich.
  2. Bindungen. Einfach nur Magie. Die leistungsstärkste Funktion nach der Benutzeroberfläche. Davon profitieren vor allem LOB-Anwendungen.
  3. Befehle.
  4. Trennung von Bedenken. Designer arbeiten am Design, Programmierer am Programm.
  5. Angehängte Eigenschaften. Sie können die Funktionalität von Steuerelementen von Drittanbietern ohne Quellcode erweitern (obwohl dieser Punkt durchaus Teil des ersten Punkts sein kann).
  6. Einfacher Übergang zu Silverlight (sowohl Web als auch WP7)

Vielleicht stimmen Sie mir in Bezug auf den letzten Punkt nicht zu, aus dem Sie WPF lernen möchten, aber wenn Sie mich fragen, ist dies einer der größten. Wenn Sie WPF lernen, können Sie problemlos zu Silverlight wechseln. Silverlight wird immer größer und es ist auch eine großartige Technologie.

Und der größte Grund ist, dass es die Zukunft ist. Es könnte mit Silverlight zusammengeführt werden, aber die Fähigkeiten bleiben gleich.

Daher rate ich Ihnen dringend, den WPF-Weg zu gehen.

Yogesh
quelle
1
Ich sage nicht, dass ich nicht einverstanden bin, aber alle diese Gründe hängen mit der Benutzeroberfläche zusammen (obwohl Sie sagen, dass die andere Sache, die mich stört, ist, wie die Leute normalerweise WPF nur mit der Benutzeroberfläche assoziieren )
Ed S.
1
+1 weil ich mit all deinen Punkten einverstanden bin. Ich musste mich entscheiden, ob ich WPF oder Winforms lernen wollte, und ich entschied mich für WPF und habe es nie bereut. @Ed: Ich sehe keine davon als eng mit der Benutzeroberfläche verbunden, mit Ausnahme der ersten.
Rachel
1
@ Rachel: Wirklich? Die Bindung wird verwendet, um die Benutzeroberfläche zu aktualisieren, wenn sich ein Eigenschaftswert ändert. Die Trennung von Bedenken in # 4 gilt offensichtlich nur bei der Entwicklung einer Benutzeroberfläche. # 5 dreht sich alles um Kontrollen von Drittanbietern. Keine Benutzeroberfläche, keine Steuerung. # 6 dreht sich wieder alles um die Übersetzung in eine Silverlight-Benutzeroberfläche. Vermisse ich etwas?
Ed S.
3
Ich bin mehr oder weniger den umgekehrten Weg gegangen: WPF -> WinForms -> C ++ / MFC. Ja, ich bin ein Rebell. Ich schwimme flussaufwärts. Ich sehe einfach keine überzeugenden Aussagen darüber, was WPF in die Benutzeroberfläche einbringt. Ein Haufen schrecklicher, nicht nativ aussehender Software ist nicht meine Vorstellung von "Fortschritt". Darüber hinaus bin ich mir nicht sicher, wie die Designmuster, die so viele (einschließlich dieser Antwort) mit WPF in Verbindung bringen, in irgendeiner Weise ausschließlich für WPF gelten. Sie können Entwurfsmuster in jeder Sprache oder in jedem GUI-Framework verwenden. Ist der Unterschied einfach, dass die Leute es nicht tun, wenn Sie nicht dazu gezwungen werden? Der einfache Übergang zu Silverlight ist hier der einzige zwingende Grund.
Cody Grey
5
Meine erste Aufgabe mit einer WPF-Anwendung: Eine Symbolleiste ablegen und 14 dlus groß machen. kann nicht gemacht werden . Zweite Aufgabe: Festlegen der Formularschrift, die der Schriftart und -größe des Benutzers entspricht. kann nicht ausgeführt werden Dritter Schritt: Hinzufügen von Elementen zu einer Listenansicht ohne Bindung kann nicht ausgeführt werden Ich beende.
Ian Boyd
5

Offensichtlich ist WPF der richtige Weg, um in Zukunft zu denken. Es ist schwer zu meistern, aber die Plattform ist sehr gut aufgebaut und flexibel.

Einige Ratschläge:

  • Einfach starten: Versuchen Sie nicht, Ihr erstes Projekt nur mit MVVM oder ausgefallenen Animationen zu implementieren. Beginnen Sie einfach mit Fenstern, Schaltflächen und Listen.
  • Nutzen Sie DataBinding.
  • Kaufen Sie das Buch WPF Unleashed von Adam Nathan.
Eduardo Molteni
quelle
+1. Praktische Antwort. Versuchen Sie nicht, Ihr erstes Projekt nur mit MVVM oder ausgefallenen Animationen umzusetzen
Karthik Sreenivasan
4

Ich sollte zuerst bemerken, dass ich größtenteils ein asp.net-Entwickler bin, obwohl ich schon oft Winforms verwendet habe. Der Wechsel zu WPF ist nicht so groß wie Sie es (imo) nach einer Woche oder so (40+ Stunden) machen, die meisten waren wieder zweite Natur.

Jedenfalls glaube ich, dass Anders Hejlsberg einer der Architekten hinter WPF ist, zumindest laut den Herausgebern dieses Buches->

Als einer der Architekten hinter WPF erklärt Chris Anderson nicht nur gekonnt das Wie, sondern auch das Warum. Dieses Buch ist eine hervorragende Ressource für alle, die die Gestaltungsprinzipien und Best Practices von WPF verstehen möchten. - Anders Hejlsberg, technischer Mitarbeiter der Microsoft Corporation

http://www.amazon.com/Essential-Windows-Presentation-Foundation-WPF/dp/0321374479

Gespenster
quelle
11
"Als einer der Architekten hinter WPF erklärt Chris Anderson gekonnt ..." legt nahe, dass Chris Anderson einer der Architekten hinter WPF ist. Anders Hejlsberg ist laut dem zitierten Text nur ein "technischer Mitarbeiter" der Microsoft Corporation, was seine Beteiligung an WPF nicht belegt.
Andreas Rejbrand
Ah das könnte wahr sein, aber es zeigt, dass er es respektiert!
2
Zumindest respektiert er Chris.
Bruce McGee
1
Oder zumindest, dass die PR-Abteilung jemanden mit Ruf dazu gebracht hat, einen Kommentar abzugeben.
quick_now
@Andreas; Guter Witz: nur "technischer Typ". Chris Anderson nicht schmälern wollen - Er ist ein großartiger Kerl, der ein wenig zurückhaltend ist ( msdn.microsoft.com/en-us/ff395959 ist da, aber simplegeek.com wurde schon lange nicht mehr aktualisiert). Anders Hejlsberg ist an vielen .NET-Dingen beteiligt (Technical Fellows haben eine große Reichweite), schließlich ist er ein Framework-Typ (VCL, WCF usw. - siehe simple-talk.com/content/article.aspx?article=673 und microsoft .com / Presspass / exec / techfellow / Hejlsberg / default.mspx ) und es gibt nur wenige technische Kerle ...
Jeroen Wiert Pluimers
2

Winforms ist nahezu identisch mit der Delphi-Entwicklung. Und dafür gibt es natürlich einen Grund. So wie das Delphi / Object Pascal-Objektmodell C # stark beeinflusste, beeinflusste das Formularsystem Winforms.

WPF scheint die Richtung zu sein, in die die Dinge gehen; Es heißt, dass die (umwerfende!) VS2010-Benutzeroberfläche im Gegensatz zu früheren Generationen, die auf Winforms basieren, auf WPF basiert.

Wenn Sie in Ihrer Komfortzone bleiben möchten, entscheiden Sie sich für winforms. Wenn Sie sich über das Neueste und Beste informieren möchten, tauchen Sie in WPF ein.

3Dave
quelle
3
WinForms ist das, was Delphi erweitert, es ist tatsächlich sehr frustrierend im Vergleich zu Delphi. Es ähnelt eher VB-3 als Delphi, und IME hat eine ähnliche Frutsration.
2

Ich bin kein Delphi-Programmierer, aber ich habe sowohl an WinForm (stark) als auch an WPF (weniger als mäßig) gearbeitet. Ich bin einigermaßen mit Ihnen einverstanden, was die Frustration für jemanden angeht, der von WinForm zu WPF wechseln würde, da ich mich in dieser Situation befinde, aber nur, bis ich mich daran gewöhnt habe. Erfahren Sie, wie wunderbar und flexibel WPF im Vergleich zu WinForm ist. Zumindest für jemanden, der aus Delphi stammt und nicht aus Winform, ist die Lernphase sehr lang. Für Sie lohnt es sich definitiv, auf WPF anstatt auf WinForm umzusteigen, und die Zeit ist es wert.

Vielleicht möchten Sie zunächst die folgenden Links durchsehen:

Kumar
quelle
1

Ich hatte einige Windows Forms-Arbeiten ausgeführt (hauptsächlich auf Pocket PCs) sowie eine andere Nicht-.NET-Umgebung, in der dieselben Prinzipien verwendet wurden. Als ich vor ungefähr drei Jahren zu WPF wechselte, habe ich in den ersten Monaten darauf geschworen. Irgendwann hat es einfach "geklickt" und ich habe nicht zurückgeschaut - tatsächlich wäre ich verblüfft, wenn mein nächstes Projekt erfordert, dass ich zu Windows Forms zurückkehre.

Das letzte Mal, dass Windows Forms aktualisiert wurde, war 2005 (VS 2005). Es ist immer noch vorhanden, wird jedoch von Microsoft nicht mehr verbessert. WPF ist das neue Kind auf dem Block für Desktop-Apps. Wenn Sie also mit MS-Tools auf die .NET-Plattform wechseln möchten, ist dies die sichere Wahl. Einige Leute empfehlen Silverlight als Desktop-Lösung, aber als ich es als eine Möglichkeit ansah, stellte ich fest, dass es zu viele Einschränkungen hatte (was in einem Web-Kontext vielleicht Sinn macht, aber nicht so sehr auf dem Desktop).

Fazit: Es gibt eine steile Lernkurve und ich lerne sie immer noch. Aber es hat sich gelohnt. Es macht viel Spass.

MetalMikester
quelle
1

Wenn Sie neue Anwendungen von Grund auf neu schreiben möchten, ist die Verwendung von WinForms ein Fehler. Es ist im Grunde genommen aus Investitionssicht tot. Microsoft wird es für eine lange Zeit beibehalten, aber Sie werden keine neuen Funktionen oder neue Unterstützung usw. erhalten. WPF ist die klare Richtung für Desktop-Anwendungen für die Zukunft auf der MS-Plattform.

Aus beruflicher Sicht sind Sie auch weitaus besser in der Lage, WPF vs. WinForms zu kennen. Aus den gleichen Gründen wie oben. Außerdem haben Sie einen guten Einstieg in das Erlernen von Silverlight. Es gibt eine Menge Überlappungen zwischen diesen beiden Plattformen.

Und schließlich macht WPF einfach mehr Spaß. Und mächtiger.

Die Lernkurve ist steiler, das gebe ich dir. Aber am Ende ist es lohnender.

RationalGeek
quelle
0

Eine zusätzliche Überlegung, die erwähnt werden sollte, ist, dass es keinen Plan für die WPF-Unterstützung in Mono gibt . Mir ist klar, dass Sie kein Interesse an (mono) plattformübergreifender Unterstützung bekundet haben, aber es könnte in Ihrer Zukunft eine Gelegenheit dafür geben (wenn Sie sich für Winforms entscheiden). Voraussichtlich wird WPF in Mono (oder ähnlichem) unterstützt.

Bearbeiten: Wie der von mir bereitgestellte Link und Gulshans Kommentar hervorhoben, handelt es sich bei Moonlight um eine Open-Source-Aktion, die vom Mono-Team durchgeführt wird, um plattformübergreifenden Silverlight-Support bereitzustellen .

Argalatyr
quelle
Aber Moonlight befindet sich in aktiver Entwicklung.
Gulshan
-1

Ich war aufgeregt, als ich von WPF hörte, die Idee klang großartig und alles, was ich darin gesehen habe, war wunderschön. Als ich es jedoch in Visual Studio 2008 (zugegebenermaßen eine Beta) verwendete, fand ich es frustrierend und eigenartig, mit dem Designer / der IDE zu arbeiten.

Ich habe zu der Zeit ein paar Informationen in meinem Blog gepostet:
http://blog.dantup.com/2007/08/visual-studio-2008-beta-2-first.html
http://blog.dantup.com/2007 /08/wpf-designer-cider-part-2.html

Ich habe es 2010 nicht ausprobiert, obwohl ich mit ein paar Leuten gesprochen habe, die es getan haben, und es klingt, als wäre es immer noch etwas kompliziert / nervig, sich damit auseinanderzusetzen.

Ich denke, Ihre Anwendung würde in WPF zweifellos besser aussehen / sich besser anfühlen, aber ich denke auch, dass Sie länger brauchen werden, um sie zu erstellen, und Sie werden Ihren Kopf auf dem Weg viel schlagen.

Danny Tuppeny
quelle
"Ich denke, Ihre Anwendung würde in WPF zweifellos besser aussehen / sich besser anfühlen". Nicht unbedingt - WPF wird Sie nicht davor bewahren, eine beschissene Benutzeroberfläche zu schreiben. Ich habe hier einige Beispiele (eines davon ist meins, obwohl dieses nur eine schnelle und schmutzige Einweg-App war, um ein paar Sachen zu testen) Zeit und Mühe, können Sie einige erstaunliche Dinge in WPF tun.
MetalMikester
Gutes Argument. Was ich damit meinte, war, dass Sie mit WPF eine schönere App erstellen können, da Sie weniger an die Widgets von Windows gebunden sind. Das kann natürlich sowohl gut als auch schlecht sein!
Danny Tuppeny
3
Auf jeden Fall eine schlechte Sache. WPF hat eine Ära völlig nicht-nativer Schnittstellen eingeläutet. Schwer zu verstehen und noch schwieriger zu betrachten. Was eine Person für schön hält, ist der schlimmste Albtraum einer anderen Person. Es ist eine fantastische Möglichkeit, alle glücklich zu machen, wenn Sie die eingebauten OS-Steuerelemente "skinnen" lassen. Andererseits lehne ich es ab, die neuesten Versionen von Office zu verwenden, da ich die Benutzeroberfläche nicht ausstehen kann. Also, weißt du, geh von meinem Rasen und so.
Cody Grey
1
Ich würde sagen, das ist etwas subjektiv. Ich würde wahrscheinlich nicht wollen, dass mein Textverarbeitungsprogramm alle diese Regeln verletzt, aber einige Software-Teile können damit durchkommen. Z.B. Eines der besten WPF-Beispiele, an das ich mich erinnere, war Yahoo. Für mich ist das eine große Verbesserung gegenüber einer Windows-Widget-basierten App: blogs.msdn.com/cfs-filesystemfile.ashx/__key/…
Danny Tuppeny