BT

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

| 作者: Roopesh Shenoy フォローする 0 人のフォロワー , 翻訳者 福田 寅成 フォローする 0 人のフォロワー 投稿日 2011年12月22日. 推定読書時間: 3 分 |

原文(投稿日: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

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

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

このスレッドのメッセージについてEmailでリプライする

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

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT