WPFアプリとWinformfor Businessアプリの利点は何ですか?[閉まっている]


84

私はasp.netとwinformの開発を知っています。私は、新しいテクノロジーという理由だけで新しいテクノロジーに飛び込むタイプの開発者ではありません。生産性の向上など、追加のメリットを得る必要があります。

純粋なビジネスアプリのWinformsに対するWPFの利点は何ですか?WPFが提供する追加の目の保養、アニメーション、グラデーション、画像表示効果などには興味がありません。ビジネスアプリは、データ入力、データレポート、および場合によってはいくつかのグラフや写真の静的表示用です。

WPFはこれらのアプリでどのように役立ちますか?より豊富なデータバインディング?WinFormは成熟した実績のあるテクノロジであり、Visual Studioですべてを実行できるのに対し、WPF(VS&Blendファミリ)の複数のIDEで実行できるという事実が気に入っています。さらに、WPFには、対応するWinform(DataGridView..etc)ほど豊富なデータバインディングコントロールがないと思います。AFAIK、マイクロソフトは引き続きWinformsを長年サポートします。

私のような人に切り替えるように説得してみてください。


1
WPFに切り替える強力な理由がいくつかあると思います。書いたばかりのブログを繰り返したくないので、ここにリンクを貼っていきます。
アンディブラウン

7
これは素晴らしい質問です。再開する必要があります。私は、WPFに切り替えるWinForm開発者です。学習曲線は巨大です。しかし、WPFは、HTMLのように本質的に宣言型言語であるため、未来です。Winformはほとんどが手続き型であり、アルゴリズムには適していますが、UIの表示にはより冗長です。.XPS印刷ファイルを解凍してみてください。そこにWPFxamlが表示されます。Winformsには制限が多すぎます。それでも機能しますが、WPFの「目玉」はユーザーのストレスレベルを減らすのに役立ちます。リストビューやデータグリッド以外のより意味のある方法で、レコードの複数の行を表示できます。
Jeson Martajaya 2012

回答:


101

私はasp.netとwinformの開発を知っています。私は、新しいテクノロジーという理由だけで新しいテクノロジーに飛び込むタイプの開発者ではありません。生産性の向上など、追加のメリットを得る必要があります。

私のチームにとって、WPFは、アプリケーションの開発にWinFormsよりもはるかに高速であることが証明されています。最近、32人日で中型アプリをリリースしました。チームには経験豊富なWPF開発者と、テクノロジーの習得に熱心な経験の浅い人たちという利点がありました。士気も高く、生産性も印象的でした。

WinFormは成熟した実績のあるテクノロジであり、Visual Studioですべてを実行できるのに対し、WPF(VS&Blendファミリ)の複数のIDEで実行できるという事実が気に入っています。

あなたは自分自身をハンドコーダー、またはドラッグアンドドロップコーダーだと思いますか?自分自身をドラッグアンドドロッパーと見なす場合、現在のWPFツールの収穫はあなたに適していない可能性があります。たぶん、Visual Studio 2010を待ちますか?私はほぼ独占的にXAMLで働いています。ほとんどのWPF担当者は、これが現時点でWPFアプリケーションを作成する最も効果的な方法であることにおそらく同意するでしょう。でもそれなら、HTMLも手作業で作っているので、自然に感じます...

純粋なビジネスアプリのWinformsに対するWPFの利点は何ですか?WPFが提供する追加の目の保養、アニメーション、グラデーション、画像表示効果などには興味がありません。

以前はこのように考えていましたが、最近、グラデーション、基本的なアニメーション、エフェクトを備えたビジネスアプリケーションを開発しました。これらの優れた機能は、ユーザーエクスペリエンスを向上させるために追加されました。なぜビジネスアプリは戦艦グレイでなければならないのですか?なぜそれらは使用できないのですか?確かに、ビジネスアプリを使用可能にするのは色、グラデーション、アニメーションではありませんが、これらの効果を使用するとユーザーエクスペリエンスが向上します。これは、私にとって重要なことです。WinFormsのWPFアプリで行ったすべてのことを実行できたはずですが、もっと時間がかかったでしょう。

より豊富なデータバインディング?

データバインディングのサポートは本当に素晴らしいです。これは、プラットフォームで最も愛されている機能です。この素晴らしいデータバインディングのチートシートを確認してください。

私のような人に切り替えるように説得してみてください。

私は、他の人にWPFに切り替えるように説得するつもりはないと判断しました。私が「納得」させようとした開発者(すべての経験豊富なWinforms開発者)は通常、プラットフォームに苦労しています。彼らは技術に投資されていません。彼らは「それを理解」しません。テクノロジーをチェックして、開発者としての自分に適しているかどうかを確認することをお勧めします。学習曲線は巨大です。本で学ぶ場合は、このSO投稿をチェックして、WPF本のミニレビューを確認してください。ビデオで学習する場合は、windowsclient.netWPFビデオを確認してください。あなたが例によって学ぶならば、これまたはこれをチェックしてください役職。WinFormsについて知っていることはすべて忘れてください。WPFは実際にはWinFormsよりもASPに近いようです。いくつかのサンプルアプリケーションを作成します。それがあなたとあなたのチームのために働くかどうか見てください。

マルチスキル(asp.net/winformスキル)であるため、Silverlightと非常に密接に関連しているため、WPFでスキルアップすることの利点がわかります。Silverlightは、リッチクライアントアプリケーションとWebアプリケーションの間のギャップを埋めます。

個人的には、WPFは.NET Frameworkで利用できる最高のクライアント側テクノロジであり、通常、将来の作業のためにWinFormsで開発することは避けます。YMMV

あなたの決定で頑張ってください。


10
素晴らしい反応ブラッド-私たちの会社は現在、この決定に苦労しています。あなたの観察はよく考えられており、これまでに見たものと非常に一致しています。まだ決定はしていませんが、見栄えの良いUIが売上に与える影響を確認したため、戦艦の灰色の段落は私たちの共感を呼んでいます。素晴らしい答えを書くために時間を割いてくれてありがとう。
gidmanma 2010年

3
チームに経験豊富なWPF開発者が1人いることと、まったくいないことには大きな違いがあります。それを急な学習曲線と組み合わせると、ビジネスを運営している場合は、ほとんど達成することはできません。現実的には、WPFは、ガイドをしてくれる人がいる場合に最適ですが、学習しながら学習している場合はそれほど多くはありません。もしそうなら、主要なリファクタリングの準備をしてください。
セルゲイアコポフ2011年

3
+ 1-「ビジネスアプリを戦艦グレイにする必要があるのはなぜですか?」-完全に同意します!
サミュエルスレイド

5
-1 WPFに移行する唯一の理由が、グラデーションを作成し、アプリケーションダイアログを「戦艦の灰色」から変更する機能に基づいている場合は、実際にWinFormsの使用方法を学ぶ必要があります。
deegee 2013

1
+1、完全な答え。リンクwindowsclient.netWPFビデオがダウンしています、誰もがそれらを見つける場所を知っていますか?
ダミアン

11

私はかなりのwinformsの経験があり、WPFで少し遊んだことがありますが、売り切れです。

どうして?

  • はるかに多くの柔軟性。WinFormで標準外のことをしたい場合は、痛みと苦しみが発生しますが、WPFでは簡単です。

  • はるかに優れたデータバインディング

  • 開発が容易です(コアコンセプトを理解すると、残念ながらしばらく時間がかかります)


4

WPFを見始めたとき、私はそれを「ベクターグラフィックスを備えたWinforms」として扱い、学習の崖の脇にまっすぐ走りました。WinFormsからWPFに移行する適切な方法は、知っていることをすべて忘れて、最初から始めるために、手を置くことができる麻薬を英雄的に服用することです。

真面目な話ですが、Model-View-ViewModelなどのパターンを使用すると、はるかにクリーンで簡単になります。詳細については、The Orbifold、このGoogleグループスレッドおよびChannel9をご覧ください。

その後、ある時点でひらめきがあり、すべてのデータバインディングを開始します。コードビハインドは、InitializeComponent()の呼び出しにすぎません。


4

投稿ありがとうございます。私の会社はWinFormsに多くの時間を投資しています。中規模のアプリケーションを32人日でリリースすることは想像できません。私たちの認定期間は数ヶ月であり、リリースサイクルは年に1回以上になることもあります(アジャイル開発哲学に可能な限り近づいていますが)。これが私たちが開発するアプリケーションの性質です。

初めてWPFで遊んだところ、ElementHostを使用することでWinFormsでWPFのいくつかの利点を得ることができることがわかりました。WPF TextBoxを拡張し、拡張クラスをWin Forms UserControlでラップすると、そのWPFテキストボックスを使用するWinFormsアプリが作成され、スペルチェックがサポートされます。

マイクロソフトがこれを考えているのを見て感銘を受けました(WinFormsでWPFをホストしている、またはその逆)。長期間にわたって移行できない限り、会社がWPFに移行するのを実際に見ることができないからです。WinFormsに投資しすぎて、再開できません。私の最近の経験で、私は私の最近の経験について他の開発者と話し始め、彼らの考えが何であるかを見るかもしれません。WPFに慣れるまでには少し時間がかかると思いますが、それは他のコメントと一致しているようです。




0

デスクトップアプリでASP.NET/(Silverlight)ページから同じUI(XAML)を使用できるかどうか想像してみてください。一度だけビルドしますが、どちらかに配線します。これはWPF / XAMLの目的の1つです...本当にまだそこにありますか?まだですが、近づいています。


4
Silverlightとデスクトップアプリで同じUIを使用しようとすることは、理論的には素晴らしいと思われることの1つですが、実際には、両方のプラットフォームでUIがお粗末になると思います。
オリオンエドワーズ

ええ、WPFとSilverlight2の重複は大きいですが、コードを移植可能にするのに十分ではありません。バインディング機能の違いにより、WPFの開発が過度に制限されます。
geofftnz 2009年

1
まあ、私たちはまだそこにいないと言いました...しかし、それが究極の意図です。
webjedi 2009年

geofftnz:Silverlightの開発を制限するという意味ですか?
アブドゥ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.