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