2008-09-16 10 views
15

私たちは、商業銀行向けのインフラストラクチャサービス(データ検索とストレージ)と小型スマートクライアントアプリケーション(ほとんどの場合はファンシーレポート)を行っています。私たちのチームは、C#.NETプログラマーである40人の奇妙な契約上の従業員です。私たちが開発した50の奇妙なアプリケーションとシステムをサポートしています。私のC#.NETチームはWindows Presentation Foundationに移行する必要がありますか?

チームのいくつかのメンバーが、WPFWFおよびWCFベースのアプリケーションを作成し始めました。彼らが最初であることを考えると、ほとんどのメンバーはこれらの技術を理解していません。チームの再訓練のコストを克服するどんな利点を伝えますか?

答えて

15

WPFのUIは、現在のC#の代替案よりも実装と保守を設計する方が簡単です。そのため、多くのコードベースがUIの処理を担当している場合、マイグレーションは役に立ちます。チームが時間を節約します彼らのUIレイヤを扱う際に。あなたのコードの大部分がビジネスロジックであれば、それはあまり役に立たないでしょう。

+5

これはまったく当てはまりません。 WPFよりWinFormsの*シンプルなUIを設計して実装する方が簡単だと思いますが、私は数ヶ月のWPF経験でこれを言います。例外は、WinFormsがすぐに使えないものが必要なときには、それを得るためにもっと多くの作業を行うことです。 – PeterAllenWebb

+8

@PeterAllenWebb - これは私とVS2010では当てはまりません。私は何年ものWinFormsの経験をしていましたが、かつてはWPFの面白さを学んでいましたが、複雑さにかかわらず、はるかに速くWPF UIをノックアウトすることができます。これは主に、XAMLで宣言的にUIコードを記述し、それをC#ビューモデルにバインドすることが容易なためです。 – codekaizen

0

あなたのオリジナルの質問のキーワードは「気に入っている」と思います。あなたの顧客が実際に多くの光り輝くものを期待している場合は、おそらくWPFに切り替えることで何かを得るでしょう。

0

私は最初は分かりませんでしたが、ほとんどのアプリケーションは非常に遅いようでした(WinFormsは高速ではありません)。これは.NET 3.5 SP1で修正されたようですが、ハードウェアアクセラレーションをいくつかの手法で統合しています。

統合されたアニメーション/ストーリーボード/ベクター機能は非常にうれしく、正しい方向へのステップです。 Expression Blendを手にしたら、プロトタイプをすばやく作成できます。私の意見では、これは明らかな利点です。

私はWinFormsや古い技術が持続可能な選択ではないと思います。

Adob​​e Flexもあります。Adobe/Macromediaは、Flashの経験から、より強力でエキサイティングなGUIソリューションの経験があります。私はちょうどすべてのそれらの異なるフレームワークを実行するために、我々は10の異なるVMのデスクトップPCにインストールで終わるしないことを望む

...

再:

空想報告

恐ろしいことはおそらくWPFの強みの1つです...

23

自分自身と他の4人がかなり成功したプロジェクトをラッピングしています完全な分散エンタープライズアプリケーションです。私たちはWin32の使用を開始してから、最初の反復の後に私たちのユーザビリティの専門家の要求を満たすためにWPFに切り替えました。ここに私の経験があります。

WPFには本当に素晴らしい機能がいくつかあります。一般的には、テーブルやコピーなどの画像を混在させたリッチなプレゼンテーションデータを表示するリストボックスを作成するなど、本当に難しいことはほとんどありませんが、Win32ではこれを簡単にすることができます痛いほどイライラする。私はWPFで6ヶ月間働いていますが、まだコンボボックスをXMLデータプロバイダにバインドして、恐ろしい経験をしています。

上記のように、WPFにはいくつかの偉大ではないほど大きな結合があります。私はあなたがXML文書またはインラインフラグメントにバインドする方法を好むXPathを使用していますが、あなたのバインディングが双方向の場合にのみビルトインバインディングの検証を使用する方法が嫌いです(と私は二重にデータがビジネスルールの範囲外にある場合でも、ユーザー入力をオブジェクトに戻す組み込みのバインディング検証)

WPFには大きな学習曲線があります。それは曲線でもなく、壁です。それは大まかな動きです。これは、Windowsプレゼンテーションとは全く別のやり方です。私にとっては、とにかく、いくらか快適に感じる前に、多くの読書と演奏が必要でした。これは世界で最も簡単なことではありませんが、私たちのプロジェクトでは、約300行のXSLTを使用してXMLから完全なXAMLフォームを作成するフォームエンジンを作成しました。 )。

全体的に、学習曲線、ややバグのある性質、深い欲求不満の中にもかかわらず、私たちはXAMLを選択したことに非常に満足しています。ポジティブはネガティブをはるかに上回っていて、私たちはパフォーマンスに多大な負担をかけることなく、可能ではなかったことを可能にしました。

あなたがWPFのルートを行くことに決めた場合、私は非常にこれらの2冊をお勧めします:アダムネイサンによる

幸運!

+1

私は学習の壁に完全に同意します。しかし、WPFでは本質的に難しいものがあるという意見には同意しません。あなたがそう感じるアイテムは、あなたがまだ「壁の間違った側面」にいるだけのものです。 –

0

WPFは、UIを設計するための非常に新鮮なアプローチです。唯一の問題は、XAML(XML)の冗長性を隠すための概念だけを大量に導入することです。それはまた、デザインへのarchitecture astronautアプローチから少し苦しんでいますが、全体的に私はそれにかなり満足しています。これは、あなたが以前にしたことがない方法を、管理しやすいものにします。

12

WPFを使用すると、驚くべきことを行うことができます。私はそれを愛しています...しかし、開発者が新しいテクノロジに移行する必要があると思うかどうか尋ねるたびに、

あなたの開発者はWPFを効果的に使用する方法を学ぶ時間を費やすことを望んでいます(できればEAGER)。私はMFC、Windowsフォーム、または管理されていないDirectXについてこれを言うことは決して考えなかったでしょうが、チームが通常の開発者の過程でWPFを "ピックアップ"しようとは思わないでしょう。船積みのためのサイクル!

あなたの開発者の少なくとも1人または2人はデザイン感覚を持っていますか?最終的な設計権限を持つ人は開発問題をよく理解しているので、WPF機能を活用して、無償のアニメーションを特集した「カラフル」

対象の顧客ベースの一部は、計画していた機能をサポートしていない統合グラフィックスチップセットを実行していますか?Windows 2000をまだ使用していますか?90年代初頭の「私たちのビジネス顧客は色と写真を気にしません」という議論をしていた私は、競合他社の優れたソリューションが彼らに気を配り、実際の問題は条件が正しいかどうかであり、あなたが今気にするものを提供できるようにするためです。

互換性のないレガシースキャフォールディング(Windowsフォームとの相互運用性はシームレスではありません)にフックしようとする複雑さを避けるため、プロジェクトは少なくともプレゼンテーションレイヤーの開発に関わっていますか?

あなたのマネージャは、開発者の生産性を大幅に低下させることを受け入れることができますか?

この最後の問題は、WPFの「FizzBin」の性質、どのようなタスクを実装するための10の異なる方法、別のアプローチを優先する明確な理由もなく、あなたが選択をするのを助けます。どのような選択肢の欠点もプロジェクトの後半で明確になるだけでなく、プロジェクトのすべての開発者に異なるアプローチを採用させることが実質的に保証され、メンテナンスの重大な問題となります。フレームワークを習得しようとすると、すべての中で最も不満は、常にあなたを上に移動する不一致です。

あなたは私のブログのエントリでより詳細なWPF関連情報を見つけることができます。

http://missedmemo.com/blog/2008/09/13/WPFTheFizzBinAPI.aspx

2

WPFは、Windowsフォームとは根本的に異なっています。これはあなたのチームのための多くのトレーニングを意味します。

+0

私は文言を修正した;) –

4

WPF:

  • グラフィックがすべてです!
  • 解像度に依存しないフレームワークです(つまり、WPFはベクトルグラフィックスの概念を完全に採用しており、ビットマップグラフィックスのスケーリングを無意味なプロセスにしています)。
  • ハードウェアアクセラレーションはありますか。 WPFグラフィックスは、可能であればDirect3Dまでハードウェアアクセラレーションされています - それはGDIベースではありません!
  • なしPaint()機能 - WPFは保持されたグラフィックスモード/ツリーベースの描画システムに基づいています。最後に!
  • 非常にグラフィカルにダイナミックです - すべてがアニメーション化され、アニメーションはフレームワークに組み込まれています。覚えて....いいえPaint()はありません!
  • 非常にカスタマイズが可能ですが、ControlTemplatesという根性に陥ると複雑な部分が始まります。表示ツリーにオブジェクトを追加するだけで、WPFが更新を心配することができます。
  • テキストレンダリング機能が非常に豊富です。
  • グラフィック定義と複雑なGUIデザインソフトウェア(Expression Blend)に宣言型言語(XAML)を使用して、デザイナー/コーダーのワークフローを改善したいと考えています。宣言的なやり方でできることがコードでも達成できることを認識することは重要ですが、また、WPFの複雑さが多くのデザイナーを怖がっていることも議論の余地がありますが、コーダーの手には強力なフレームワークがあります。

WPF:

  • Windows Forms ++ではない - それだけで全く異なる概念ですすべて一緒に
  • はシルバーではありません - SilverlightはWPFのサブセットです。かなり軽いサブセット。
  • MFCされていない - OK、これは
  • 明らかである簡単にはないWindows XPで分配でき - これは恥であると、おそらくその最大の障害
  • の一つは、XAMLではありません。この区別は理解する必要があります。 XAMLは(任意)の宣言型言語であり、WPFアプリケーションの開発プロセスで使用できます。一度理解されていても、必ずしも必要なコンポーネントではありませんが、複雑なグラフィカルフレームワークのワークフロー、デザイン、リファクタリングを確実に改善します。
0

WPFは、UI方法論における最新の「最新技術」です。人々がUIを書くことを学んでいたとき(GDI、Win32、およびそれに近いWinFormsの代わりに)、それを学ぶのはあまり時間がかかりませんでしたので利用可能だったのです。おそらくDvorakキーボードに切り替えるように思えるかもしれません。最も難しい部分は、あなたがよく知っていると思うUIデザインの部分についてのあなたの考え方を変えることです。

しかし、少なくともあなたのチームのメンバーが余暇にWPFを試してみるよう勧めてください。多分以下で、非常に最初からリソースを利用可能にする:

  • あなたがWPFで動作するようにインストールしている必要があるかについて教えページへのリンクを持っている - それはブレンドを言及していない場合は、その後、私は信用しないだろうそれ。
  • 経験豊富な人からの良い回答があると思われるため、ここでは「開始」の質問をご覧ください。
  • 少なくとも少数の良い本を購入し、必要に応じて人々に貸してもらう。
関連する問題