Mvvm-frameworks
MVVM –フレームワーク
この章では、利用可能なMVVMツールキットまたはフレームワークについて説明します。 また、これらのフレームワークを使用すると、MVVMパターンを自分で実装するために繰り返しコードを大量に記述する必要がなくなります。 最も人気のあるフレームワークの一部を次に示します-
- プリズム
- MVVMライト
- カリバーンマイクロ
プリズム
Prismは、豊富で柔軟性があり、メンテナンスが容易なWindows Presentation Foundation(WPF)デスクトップアプリケーションを簡単に設計および構築するのに役立つサンプルおよびドキュメントの形でガイダンスを提供します。 Microsoft SilverlightブラウザープラグインとWindowsアプリケーションで構築されたリッチインターネットアプリケーション(RIA)。
- Prismは、関心の分離や疎結合などの重要なアーキテクチャ設計原則を具体化する設計パターンを使用します。
- Prismは、独立して進化できますが、アプリケーション全体に簡単かつシームレスに統合できる疎結合コンポーネントを使用して、アプリケーションの設計と構築を支援します。
- これらのタイプのアプリケーションは、複合アプリケーションとして知られています。
Prismには、すぐに使用できる多くの機能があります。 以下は、Prismの重要な機能の一部です。
MVVMパターン
PrismはMVVMパターンをサポートしています。 これには、前の章で実装されたものと同様のBindablebaseクラスがあります。
柔軟なViewModelLocatorには規則がありますが、それらの規則をオーバーライドし、疎結合の方法でビューとViewModelを宣言的に接続できます。
モジュール性
コードを部分的に完全に疎結合されたクラスライブラリに分割し、実行時にそれらをまとめてエンドユーザーのためにまとまりのある全体にすることができますが、コードは完全に分離されたままです。
UIの構成/領域
プラグを行うのは、UIコンテナ自体への明示的な参照を必要とするビューなしで、ビューをコンテナにプラグインする機能です。
ナビゲーション
Prismには、前方ナビゲーションと後方ナビゲーション、ビューモデルをナビゲーションプロセスに直接参加させるナビゲーションスタックなど、リージョンの最上位に位置するナビゲーション機能があります。
コマンド
Prismにはコマンドがあるため、前の章で使用したMyICommandと非常によく似たデリゲートコマンドがありますが、メモリリークから保護するための特別な堅牢性があります。
パブ/サブイベント
PrismはPub/Subイベントもサポートしています。 これらは、パブリッシャーとサブスクライバーが異なるライフタイムを持つことができる疎結合イベントであり、イベントを介して通信するために相互に明示的な参照を持つ必要はありません。
MVVMライト
MVVM LightはLaurent Bugnionによって作成され、ビューをモデルから分離するのに役立ちます。これにより、よりクリーンで保守および拡張が容易なアプリケーションが作成されます。
- また、テスト可能なアプリケーションを作成し、はるかに薄いユーザーインターフェイスレイヤーを使用できるようにします(自動的にテストするのはより困難です)。
- このツールキットは、Blendユーザーがデータコントロールを使用して「何かを見る」ことができるようにするデザイン時データの作成など、Blendのユーザーインターフェイスを開いて編集することを特に重視しています。
カリバーンマイクロ
これは、MVVMパターンの実装に役立つ小さなオープンソースフレームワークであり、すぐに使用できるものも多数サポートしています。
- Caliburn Microは、すべてのXAMLプラットフォームでアプリケーションを構築するために設計された、小さいながらも強力なフレームワークです。
- MVVMおよびその他の実績のあるUIパターンを強力にサポートすることにより、Caliburn Microはコードの品質やテスト容易性を犠牲にすることなく、ソリューションを迅速に構築できるようにします。