WinForm のすべての機能は WPF に含まれていますか? WPF ではなく従来の WindowsForm を使用する特定の利点はありますか?
5 に答える
理論的には、WPF で行うことのほとんどすべてを Winforms で行うことができますが、場合によっては、特にグラフィック効果に関して、さらに多くのコードが必要になります。
WPF と比較した Winforms のいくつかの利点は次のとおりです。
- より簡単なテクノロジー
- 非常に古いため、非常に安定した技術。たとえば、 XAMLバインディングエラーは出力ウィンドウでのみ比較され、例外は発生しません。
- 自由が少なくなり、より実用的になる可能性があります。WPF では、コントロールのカスタマイズなど、グラフィックスの自由度が非常に高くなります。これは非常におもしろいこともありますが、時間を浪費する可能性もあります(色、ブラシ、アニメーションなどに多くの時間を費やすという意味で)。 . Winforms では、おそらくグラフィックスにかける時間は少なくなります (少なくとも私の経験では)。
それはあなたの問題によって異なります。WPF は新しいテクノロジであり、懸念事項の分離が向上し、柔軟なレンダリングが容易になり、UI のハードウェア アクセラレーションが可能になります。
どのテクノロジーの利点も、プロジェクトの制約と要件によって異なります。例: WinForms の利点の 1 つは、.NET 2 では WinForms しか利用できないため、.NET 3+ を搭載していない、または搭載できない Windows XP マシンにのみ展開する場合です。
Winforms は、WPF よりもいくつかの利点しかありません。
- すぐに使用できるインボックス コントロールが多数あります (ただし、WPF では新しいコントロールのカスタマイズと作成が容易であり、多くのサード パーティ ライブラリもあります)。
- レガシーシステムに適合 (Win2000)
- Winforms の経験を持つ開発者が増えています
他のすべては WPF の方が優れています。
これは、Flash ムービーで HTML テーブルを表示する理由を尋ねるのと少し似ています。まず第一に、要素レベルでも (WinFormsControlHosts を使用して) 好きなようにミックスできます。しかし、なぜこれらのテクノロジーを混在させたいのかを自問する必要があります。
あなたは WPF にかなり慣れていないようです。WPF は WinForms でできることはすべて実行できますが、非常に急な学習曲線があなたの前にあることに注意してください。マークアップの世界では事情が異なります...
混合の理由は、金銭的なものに限られます。それを WPF に実装するための時間/お金/リソースがないか、その方法を学ぶか、顧客が予定どおりの納品を期待し、コードの品質を気にしないかのいずれかです。おそらく、サード パーティ製の WinForms コンポーネントに多額の費用を支払ったことで、厄介な開発時間を節約できる可能性があります。
一方、混合しない理由は次のとおりです。
WPF はハードウェア アクセラレーションをサポートし、WinForms は Cpu のみでレンダリングされます。相互運用を使用するときにレンダリング モードが正確にどうなるかはテストしていません。
WPF を更新しています。.Net 4.5 では、さらに DataBinding 機能が追加されています (とにかく WinForms よりも優れています)。WinForms は、.Net 2.0 以降、言及可能な更新を受け取っていません
要約すると、あなたのケースで混合する理由はありますか? そうでない場合は、しないでください。絶対に必要な場合は、WPF ダイアログを追加して Winforms アプリに機能を追加しますが、その逆は常に回避しようとします。
たぶん簡単だから?しかし、私はwinformsをしません。WPF を使用します。Aそして、MVVM が難しすぎると思われる場合でも、MVVM を強制されることはありません。また、MVVM は、小規模なアプリケーションではやり過ぎになる可能性があります。