BT

InfoQ ホームページ ニュース .NETのためのMVVMフレームワーク

.NETのためのMVVMフレームワーク

ブックマーク

原文(投稿日:2011/12/05)へのリンク

Model-View-ViewModelはViewレイヤーからコードビハインドをすべて削除する事を目的として主にWPF、Silverlight、WP7開発で用いられるアーキテクチャパターンである。インタラクティブデザイナーはXAMLを用いてUXニーズに集中し、ViewModelへのバインディングを設定する。そのViewModelはアプリケーション開発者によって開発、メンテナンスされる。

MVVMはより一般的なMVVMPresentationパターンの具体的な実装の一つである。MVVMのViewModelはデータモデルよりもむしろ概念モデルで構成され、すべてのビジネスロジックと他の操作はModelとViewModelの中で実行される。これを実現する多くのフレームワークがある。そのいくつかを紹介する。

オープンソース

  • PRISM – はマイクロソフトが提供している。MEF/Unity上で動作する。DI、コンポジットコマンドが利用でき、拡張することができる。詳細なチュートリアルとウォークスルーはMSDNにある。 
  • MVVM Light Toolkit – はVisual StudioとExpression Blend向けプロジェクトとアイテムテンプレートが用意されている。詳細はこちらVSExpression Blendで実行できるチュートリアルも用意されている。
  • Caliburn Micro – はViewModelファースト、Viewファーストをサポートしている。コルーチンを通じて非同期プログラミングが行える。
  • Simple MVVM Toolkit – はVSプロジェクトとアイテムテンプレート、DIが用意されている。ディープクローンとModel、ViewModel間のプロパティ関連がサポートされている。
  • Catel – はプロジェクト、アイテムテンプレート、ユーザーコントロール、エンタープライズ・ライブラリ・クラスで構成される。動的なViewModelインジェクション、ViewModelのレイジーローディング、バリデーションをサポートしている。また、WP7特有のViewModelサービスもサポートしている。

クローズドソース

  • Intersoft ClientUI – 有償。WPFとSilverlightのみサポートしている。また、MVVMフレームワークからは分離されている。他の多くの機能も提供している。
  • Vidyano – 無料であるがオープンソースではない。エンティティマップされた、仮想永続化オブジェクト(データコンテナー)、ビジネスルール、ビルトインACLベースセキュリティが提供されている。

MVVMの入門としては、下記の資料を参照。

MVVMを用いる事の最も大きな恩恵の一つは関係性の分離であり、そうすることによってUXデザイナーとアプリケーションデベロッパーは平行に作業する事が出来る。逆に、関係性は単純なUI操作にとってはやり過ぎなものである。また、非常に大量のデータバインディングを利用すると、少しデバッグがしにくく、潜在的なパフォーマンス問題に繋がる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。