1. ホーム
  2. wpf

[解決済み】MVVMのフレームワークは何を使えばいい?[クローズド]

2022-04-04 19:44:31

質問

MVVMモデルでアプリケーションを開発していますが、どのフレームワークを使うか選択しなければならない段階になりました。

考えられる選択肢の中に

  • MVVMツールキット
  • MVVMファンデーション
  • WPFアプリケーションフレームワーク(WAF)
  • ライトMVVM
  • カリバーン
  • シンチ
  • プリズム
  • ReactiveUI

経験上、どちらが良いのでしょうか?

解決方法は?

それは、あなたが何を達成しようとしているのか、どれだけのインフラをすでに整えたいのか、さらに、あなたを助けてくれるサンプルを簡単に見つけられるか、に本当に依存します。私は、少なくとも1つのMVVMフレームワークに積極的に関与してきたし、WPF Disciplesグループを通じて他のフレームワークにも意見してきたので、少し偏見があります。というわけで、ちょっと偏った見方をしてしまいましたが、まあ、こんなところでしょう。

マイクロソフト MVVMツールキット - これはまだアルファ版の段階です。最初にリリースされたとき、それができないことで、弟子たちから少しばかり非難を浴びました。とはいえ、MSはこのフレームワークを強化しようとしているので、注目すべきものの1つです。

MVVMファンデーション - Josh Smithバージョンのフレームワークです。JoshはMVVMの生みの親の1人であり、このパターンの大きな擁護者であり教師です。その結果、他のフレームワークで見られるものの多くは、Joshの指紋が至る所にあります。このフレームワークは、MVVM の基本を提供することを意図しており、より難解な問題に対処することはありません。元々はWPFのみを対象としていましたが、Laurent Bugnionや私のような人々が機能性やプロジェクトを追加したため、Silverlight互換のフレームワークにもなる予定です。

WAF - このような場合、「SkyDrive」を利用したことがないため、残念ながらコメントできません。

MVVMライト - Laurent Bugnionのテイクで、バージョン2に更新されたばかりです。これは非常に優れたフレームワークですが、やはりMVVMアプリケーションのあらゆる側面をカバーすることを意図しているわけではありません。Laurent氏の経歴からすると、SilverlightとBlendabilityを非常に強力にサポートしています。

更新情報 Laurentから、.NET 3.5と.NET 4.0のバージョンに機能互換性があるとの情報を得ました。ありがとうございます。

Cinch - Sacha Barberの優れたWPF専用MVVMフレームワーク。これは、私が上で話したフレームワークよりも多くの領域をカバーしています。これは優れたフレームワークで、Bill Kempfの素晴らしい『Cinch』でカバーされているコンセプトを活用している。 オニキス プロジェクトです。Onyxは、MVVMフレームワークを補完することを目的としており、MVVM/WPFでは通常困難であった機能を追加しています。また、当初はWPFのみを対象としていましたが、OnyxはSLとの互換性を含むようになり、私はこの仕事に携われたことを特に誇りに思っています。

プリズム - 繰り返しになりますが、私は使ったことがないのですが、良い話をたくさん聞いています。

オーシャン - Ciderチームのプログラム・マネージャであるKarl Shifflettは、最近、完全な機能を備えたWPF MVVMフレームワークをリリースしました。繰り返しになりますが、これは優れたフレームワークであり、推奨するものがたくさんあります。

要は、いろいろなフレームワークをダウンロードして見て、どれが自分の考え方や要件に一番直感的に合うかを見極めればいいんです。もし、同じコードベースからSilverlightをサポートしたいとお考えなら、WPFのみのフレームワークはお薦めしません。