WPF oder Windows Forms

74

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?

Saft
quelle
Ich fand diese Seite sehr interessant
Daniel Möller

Antworten:

73

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.

Justin Niessner
quelle
2
+1 Ich stimme absolut zu. WPF ist weitaus flexibler als Windows Forms und langfristig in der GUI-Entwicklung. Bei der Verwendung eines XML-basierten Layouts kommt es HTML sehr nahe. Das derzeit beste Argument für Windows Forms ist, wenn Sie ein Entwicklerteam mit großer Erfahrung in der Verwendung haben. WPF ist die Zukunft, und es ist Windows Forms bereits einen Schritt voraus.
Sidney.andrews
2
+1, WPF kann jedoch aufgrund der Schriftartprobleme in früheren Versionen nur ab .NET 4.0+ verwendet werden. Beachten Sie dies bei der Anwendungsbereitstellung.
Josh
13
@Fauxide WPF kann in .NET 3.5 verwendet werden. Es wurden viele nützliche Apps entwickelt ... Schriftprobleme sind nicht jedermanns Sache.
Justin Niessner
2
+1 - WinForms seit Jahren fertig, jetzt in WPF. Niemals zurückblicken;) WPF ist viel schöner, viel schneller. Ich habe jahrelang nur Steuerelemente von Drittanbietern in Winforms verwendet - jetzt verwende ich sie, aber nicht NUR (dh die Standardsteuerelemente sind verwendbar, 3r Party ist kein Ersatz, sondern neues Material). Besonders mit .net 4.0 - wpf rockt. Oh, und ich mache eine Hochleistungsdatenvisualisierung (auch bekannt als Anwendung für den Handel mit Finanzinstrumenten).
TomTom
2
+1 WPF hat eine etwas steile Lernkurve, aber wenn Sie es einmal gelernt haben, ist es fantastisch mächtig. Stellen Sie sicher, dass Sie mit dem MVVM-Muster beginnen. Es ist nur sinnvoll.
Grokys
23

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.)

Mikko Rantanen
quelle
10

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.

jasttim
quelle
5

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.

n535
quelle