c# - 移行 - WPFまたはWindowsフォーム




wpfコントロール windowsフォーム (3)

私はC#コンソールアプリケーションで約1年間プレイしてきましたが、GUIアプリケーションの作成に移りたいと思います。 私は基本的なJavaアプリケーションの他にGUI開発を一度も行っていませんが、私はC#を使い続けたいと思います。 Windowsフォームの学習を始めたり、WPFに直接ジャンプする必要がありますか? 大きな違いはありますか? WPFはWindowsフォームの上に構築されていますか、まったく異なっていますか?


WPFは、非常に複雑なユーザーインターフェイスを構築するための非常に豊富な機能を提供します。 ハードウェアアクセラレーションされたグラフィックスをインターフェイスに簡単に統合できます。 しかし、Visual Studio WPFデザイナーは本当に悪いです(私はそれをほとんど使用しません)。 私はまた、WPFははるかに複雑であると思うし、それを開始するのは難しいです。 しかし、これはもちろん主観的です。


これら2つは全く異なる技術です。 双方向にいくつかの相互運用性レイヤーを提供していますが、それ以外は共通点がありません。 Windows FormsはWin32 / MFC上にある軽量のラッパーです。つまり、.NETでの拡張性がすべての場合において優れているわけではありません。 WPFはゼロから実装された新しいUIフレームワークです。 WPFは、既存のタイプをカスタマイズする場合には、さらに柔軟性があります。

しかし、少なくとも私の経験から言えば、Windows Formsは業界でより一般的に使用されるデスクトップUIフレームワークのようです。 WPFはSilverlightとXBAPアプリケーションを提供していますが、WindowsフォームはWeb開発では使用できません。

前にUI開発をしたことがある人は、Windows Formsがより伝統的なプログラミングのパラダイムに従うので、学ぶのが簡単だと言っています。 WPFのプログラミングモデルはこれとはまったく異なります。 WPFはWindowsフォームと同じ方法で使用できますが、WPFが提供するデータバインディングとカプセル化を使用するまで、ほとんどのメリットは得られません。

WPF for Windows Formsを選択したWindows Formsに有利な点がいくつかあるにもかかわらず、あなたがしたいことがUIフレームワークを学ぶだけであれば、私には間違いないだろう。 すべての面でWindowsフォームより優れています。 私は、ソフトウェア産業が一般的にそれをより大きなスケールで適応させたいと思っています! (私たちがウェブを手に入れて以来、誰もデスクトップアプリケーションを書くことはないが)


どちらの技術もプロとコンズを持っています。

WPFは、クロスプラットフォーム開発と「派手な」GUIの作成に適しています。 しかし、WinFormsよりも新しい.netフレームワークが必要で、dx9互換のGPU以上が必要です(ほとんどの人がそうするでしょう)。

しかし、それはインターフェイスを作成するために少し関与している/すべてのイベントなどをワイヤー。

WinFormsはWPFよりも速いペースで開発できる強力なテクノロジですが、結局は両方のテクノロジを使用して同じことを達成できます。 しかし、WPFは「新しい」標準です。

WinFormsはビジネスアプリケーションの開発によく使用され、WPFは多くのエンドユーザーベースのソフトウェアやアプリケーションなどを作成するためによく使用されます。





c#-4.0