BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

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操作にとってはやり過ぎなものである。また、非常に大量のデータバインディングを利用すると、少しデバッグがしにくく、潜在的なパフォーマンス問題に繋がる。

この記事に星をつける

おすすめ度
スタイル

BT