Ich spiele seit ungefähr einem Jahr mit C # -Konsolenanwendungen herum und möchte mit der Erstellung von GUI-Anwendungen fortfahren. Ich habe außer grundlegenden Java-Anwendungen noch nie eine GUI-Entwicklung durchgeführt, möchte aber weiterhin C # verwenden. Soll ich Windows Forms lernen oder direkt zu WPF springen? Gibt es einen großen Unterschied? Baut WPF auf Windows Forms auf oder sind sie völlig anders?
74
Antworten:
Wenn Sie gerade erst anfangen, springen Sie direkt in WPF.
Auf diese Weise können Sie umfangreiche Markierungen mithilfe von Markups erstellen, um Ihre Benutzeroberfläche zu definieren, ohne Ihnen die möglichen schlechten Gewohnheiten (für WPF) beizubringen, die Sie von Windows Forms lernen würden.
quelle
Diese beiden sind völlig unterschiedliche Technologien. Sie bieten einige Interoperabilitätsebenen in beide Richtungen, haben aber sonst nichts gemeinsam. Windows Forms ist mehr oder weniger ein leichter Wrapper auf Win32 / MFC , was bedeutet, dass die Erweiterbarkeit in .NET nicht in allen Fällen so gut ist. WPF ist ein neues UI-Framework, das von Grund auf neu implementiert wurde. WPF ist auch viel flexibler, wenn es darum geht, die vorhandenen Typen anzupassen.
Zumindest aus meiner Erfahrung scheint Windows Forms jedoch das in der Branche am häufigsten verwendete Desktop-UI-Framework zu sein. Windows Forms kann jedoch nicht für die Webentwicklung verwendet werden, während WPF Silverlight- und XBAP-Anwendungen anbietet.
Wenn Sie bereits eine UI-Entwicklung durchgeführt haben, kann ich sagen, dass Windows Forms einfacher zu erlernen ist, da es traditionelleren Programmierparadigmen folgt. Das Programmiermodell von WPF ist ganz anders. Während WPF auf die gleiche Weise wie Windows Forms verwendet werden kann, werden die meisten Vorteile erst erreicht, wenn Sie die von WPF bereitgestellte Datenbindung und -kapselung nutzen.
Obwohl ich einige Punkte zugunsten von Windows Forms angegeben habe, wäre es für mich ein Kinderspiel, WPF anstelle von Windows Forms zu wählen, wenn Sie nur ein UI-Framework erlernen möchten. Es ist Windows Forms in allen Aspekten überlegen. Ich wünschte nur, die Softwareindustrie im Allgemeinen würde es in größerem Maßstab anpassen! (Obwohl niemand mehr Desktop-Anwendungen schreibt, seit wir das Web haben.)
quelle
Beide Technologien haben ihre Vor- und Nachteile.
WPF eignet sich besser für die plattformübergreifende Entwicklung und die Erstellung auffälliger Benutzeroberflächen. Es erfordert jedoch ein neueres .net-Framework als WinForms und eine dx9-kompatible GPU oder höher (die die meisten Leute haben werden).
Es ist jedoch etwas komplizierter, die Schnittstelle zu erstellen / alle Ereignisse usw. zu verkabeln.
WinForms ist immer noch eine leistungsstarke Technologie, die oft schneller als WPF entwickelt werden kann. Letztendlich können jedoch beide Technologien verwendet werden, um dasselbe zu erreichen. WPF ist jedoch der "neuere" Standard.
WinForms wird häufig zum Entwickeln von Geschäftsanwendungen verwendet, während WPF häufig zum Erstellen von mehr Endbenutzer-basierten Teilen von Software, Apps usw. verwendet wird.
quelle
WPF bietet sehr umfangreiche Funktionen zum Erstellen äußerst komplexer Benutzeroberflächen. Es vereinfacht die Integration einer hardwarebeschleunigten Grafik in Ihre Benutzeroberfläche. Der Visual Studio WPF-Designer ist jedoch wirklich schlecht (ich benutze ihn fast nie). Ich denke auch, dass WPF viel komplexer ist und es schwieriger ist, damit zu beginnen. Das ist aber natürlich subjektiv.
quelle