WPFを使用するやむを得ない理由はありますか
絶対!WPFは絶対に素晴らしいです!これは、Windowsフォームに欠けている非常に多くの機能と機能を備えているため、実質的にすべてのプロジェクトにとって大きなメリットになります。
ビジネスアプリケーションの場合、最大のメリットは次のとおりです。
- 素晴らしいデータバインディングとテンプレートが最大の違いを生みます。適切なデータモデルが配置されたら、数回クリックするだけでデータテンプレートを作成し、Expression Blendを使用して、ドラッグアンドドロップを使用してオブジェクトがどのように表示されるかを正確に構成できます。そして、色や形のようなものへのバインドは簡単です。
- 画面レイアウトは非常に柔軟です。WPFのすべてがコンテナーのサイズと形状の変更にスムーズに適応できるだけでなく、アイテムを簡単に拡大および回転でき、さらには含まれているフレームの外側に拡張することもできます。
- 通常のオブジェクトは、好きなように表示でき、さまざまな画面でさまざまな表示を簡単に行うことができ、表示を共有でき、データ値の変更に合わせて表示を調整できます。
- 印刷する必要がある場合、プリンターへのレンダリングは簡単です。適切に構成されたWPFにより、CrystalReportsまたはSQLServer Reporting Services(SSRS)は子供のおもちゃのように見えます。
- ユーザーインターフェイスは、マウスをボタンの上に置くとアニメーション化するボタンなどの優れた機能を含め、はるかにダイナミックなルックアンドフィールになります。
ユーティリティとゲームの場合、他の利点が前面に出てきます。
- 外部エディタを使用せずに、形状、線、および任意の図面をアプリケーションに簡単に追加できます。これらのすべてのコンポーネントは、データにバインドしてアニメーション化することも、コードで制御することもできます。Windowsフォームでは、通常、多くの作業を行う場合を除いて、ビットマップをインポートしてそのまま使用する必要があります。
- アニメーションはかっこいいです!あなたがそれをやり過ぎない限り、ユーザーは本当に感動するでしょう。また、人々が何が起こっているのかを確認し、ハイライトの必要性を減らすのに役立ちます。たとえば、オブジェクトをドラッグするときに、ターゲットをアニメートして、ドロップした場合に何が起こるかを示すことができます。
- 色、グラデーションの塗りつぶし、ブラシ、派手なフォント、オブジェクトの回転、タイルブラシなど。グラフィカルに必要なものはすべてあなたのものです。
- 信じられないほどカスタマイズ可能。1つのアプリケーションで線路を描く必要があったので、線路に電車を落とすことができました。数時間後、ベジェ曲線を使用して画面上のどこにでも描くことができる線路ができました。線路は自動的に結合して切り替わります。
要するに、Windowsフォームで構築できるかなりのサイズのGUIは、3分の1の労力(またはそれ以下)でWPFに構築でき、見た目もはるかに良くなります。
WPFはより多くのリソース(特にRAM)を必要としますか
Windowsフォームに比べて料金はかかりますが、少額です。
- RAMは、実装に応じて上下する可能性があります。WPFはデータをより効率的に格納するため、個々のオブジェクトは小さくなりますが、WPFにはWindowsフォームよりも多くのオブジェクトが存在する傾向があるため、これはバランスが取れており、どちらかを先に進めることができます。
- CPUはWindowsフォームと比較して上昇します。私の経験では、画面上のWPFオブジェクトの実際の更新には、通常のWindowsフォームレンダリングの約2倍のCPUが必要です。アプリケーションが画面の更新にほとんどの時間を費やしている場合、WPFは適切ではない可能性があります。ただし、その場合は、おそらくWindowsフォームも使用していません。ほとんどのシリアスゲームは、DirectXに直接書き込まれます。
- WPFのディスク使用量は、Windowsフォームよりもはるかに少ないコードで済むため、わずかに少なくなります。もちろん、データは同じサイズになります。
CPUの使用に関するもう1つの注意事項:アニメーションと変換(モーション、変換など)は、保持モードストレージがあるため、実際にはWindowsフォームよりもWPFの方が効率的です。遅いのは、そこにあるオブジェクトの最初の取得です。
メンテナンスのオーバーヘッド
WPFは、メンテナンスに関してWindowsフォームよりも大きなメリットがあります。すべてが以前の1/5のコードで行われるため、維持するコードは1/5になります。さらに、ボイラープレートのすべてがなくなったので、実際に作業を行うコードに集中できます。
XAMLの利点
XAMLはWPFのコアです。WPFはXAMLなしで使用できますが、XAMLを使用すると非常に使いやすくなります。XAMLにはユーザーインターフェイスを簡単に指定するHTMLの機能がありますが、組み込みのタグははるかに強力であり、独自のタグを簡単に定義できます。(実際、そうするのは正常です)。
XAMLのいくつかの特定の利点:
- UI全体は、ユーザーとツールの両方にとって読みやすく操作しやすいテキストファイルで定義されます。
- MarkupExtensionsを使用すると、バインディングを明確かつ簡単な方法で指定できます
- タイプコンバータを使用すると、複雑なタイプのプロパティを簡単に指定できます。たとえば、Brush = "Green"と言うか、3つのストップがある放射状グラデーションブラシを指定できます。
- 独自の要素を作成できます
- WPFの強力な「添付プロパティ」を簡単に活用できます
その他の洞察
私は何年もの間、WPFのようなものを夢見ていました。多くの人がこの機能の一部を実装していますが、すべてを1か所にまとめてこのような価格($ 0)で入手できるのは素晴らしいことです。
WPFは、Windowsフォームからの大きなパラダイムシフトであり、慣れるまでに時間がかかりますが、WPFの学習に費やす時間は、何倍もの利益をもたらします。
WPFには、5年経ってもまだいくつかの疣贅がありますが、一度経験すると、その力は完全にあなたを吹き飛ばします。誰かがあなたをWindowsフォームに引き戻そうとすると、あなたは蹴ったり叫んだりするだけです。
ヒント:-開発用にExpressionBlendのコピーを入手してください-時々XAMLを手動で編集してください-最初は奇妙に思えても諦めないでください