ホームページ >ウェブフロントエンド >フロントエンドQ&A >mvvm フレームワークとは何ですか?
mvvm フレームワークには次のものが含まれます: 1. MVVM パターンを実装する軽量フレームワーク MVVMLight フレームワーク; 2. Prism フレームワーク; 3. MVVM クラス用のオープンソース フレームワークである Caliburn フレームワーク; 4. MVVM Helpers フレームワーク; 5 . Cinch フレームワーク; 6. MVVM Foundation フレームワーク
##MVVM を実装するためのフレームワーク
## 1. 最も強力で多用途の合成フレームワーク - Prismダウンロード アドレス: http://compositewpf.codeplex.com/
開発者: Microsoft パターン & プラクティス チーム
Silverlight がサポートされているかどうか: はい
学習教材: WPF および Silverlight の複合アプリケーション ガイダンス - 2010 年 5 月.chm、クイックスタート、StockTraderRI など。
ソース コードのスクリーンショットは次のとおりです。
#Prism - 以前は WPF および Silverlight 用の複合アプリケーション ガイダンスと呼ばれていました。これは、以下に基づく複雑なエンタープライズ レベルのアプリケーションです。 WPF/Silverlight メインストリーム アプリケーション フレームワーク。 Prism にはいくつかの重要な概念があります:
1. BootStrapper: アプリケーションのエントリ ポイントで、Prism の UnityContainer または MEF によって提供される MefUnityContainer を継承し、システムのコンテナを提供します。 2、シェル: UI 要素とリージョンを通じてページをレイアウトするシェルです。アプリケーションのトップレベルのウィンドウであり、表示内容は通常 View で埋められますが、シェル自体はどのような内容を含んでいるのかを知らないため、機能は各モジュールによって具体的に提供されます。 3、ビュー: MVP モードおよび MVVM モードのビューと同等です。 IRegionManager を通じてリージョンに注入できます。 4, モジュール: 大規模なプロジェクトは複数の部分に分割できます。各モジュールにはビュー、データ、モデルが含まれており、主に複雑なビジネス オペレーションを実装するために使用されます。 5、IModuleManager: 主にモジュールの読み込みを管理するために使用され、動的な読み込みを実現できます。 6、IEventAggregator: イベント処理インターフェイス。サブスクリプション モードとパブリッシング モードを実装します。これは、MVVM フレームワークの一般的な手法でもあります。 Prism は比較的大規模な組み合わせフレームワークであり、4.0 での MEF の導入と機能調整によりさらに強力になり、現在では組み合わせフレームワークとアプリケーション フレームワークを統合したものと言えます。 Microsoft チームの強みを考慮して、「保証する価値がある」を選択しました。
2. 最も強力で多用途なアプリケーション フレームワーク - Caliburn
ダウンロード アドレス: http://caliburn.codeplex.com/
開発者: Rob アイゼンバーグSilverlight サポートの有無: はい 学習教材: 主にプロジェクトの例、ソース コード、単体テスト ケース、およびいくつかの海外のブログやコミュニティを参照します。 ソース コードのスクリーンショットは次のとおりです:Caliburn にはいくつかの重要な概念があります:
1、アクションに基づいたコマンドがあります。複数のパラメーター、フィルター操作、非同期呼び出しなどの多くの機能を備えています。 2. フォームとコントロールのライフサイクル イベントも比較的適切に処理されます (アクティブ化、非アクティブ化、シャットダウンなどを含む)。 3. フレームワーク全体とこのフレームワークに基づくアプリケーションのテスト容易性は比較的良好です。 4 は、プロジェクトでより役立つ多くの共通関数を提供します。 5、MVVM モードのサポートに加えて、MVP モードおよびその他のバリアント モードもサポートします。 6、強力な依存関係注入フレームワークと AOP フレームワーク。ここでいずれかを柔軟に選択できます。 Caliburn は、多くの機能を柔軟かつ多様に実装できる非常に強力な MVVM アプリケーション フレームワークで、プロジェクトでの使用でも、コードリサーチでも、多くの恩恵を受けていると感じています。3. 軽量で適用可能な MVVMLight
MVVMLight は、(Prism に比べて) MVVM パターンを実装する軽量フレームワークで、WPF、Windows Phone の開発に役立ちます。 、Windows 8、SilverLight 関連のプロジェクト。
MVVMLight の作者、Laurent Bugnion は Microsoft MVP であり、作者はコードを Codeplex (http://mvvmlight.codeplex.com/) にオープンソース化しました。 MVVMLight の公式 Web サイト: http://www.mvvmlight.net/ には、詳細な紹介とビデオ ドキュメントが掲載されています。ご興味があれば、詳細をご覧ください。 ダウンロード アドレス:http://mvvmlight.codeplex.com/開発者:Laurent BugnionSilverlight のサポート:はい学習教材:その他オンライン ドキュメントについては、主にプロジェクトの例、ソース コード、単体テスト ケース、およびいくつかの海外のブログやコミュニティを参照します。また、これら 3 つの記事は非常に優れており、MVVMLight を使用して比較的完全な Silverlight エンタープライズ プロジェクトを開発しました。 パート 1 - 概要、インストール、および一般的なアプリケーション設計のトピックMVVMLight にはいくつかの重要な概念があります:
1、RelayCommand: コマンドをカプセル化することにより、MVVM モードは WPF および Silverlight で使いやすくなります。 ViewModel で各 RelayCommand を定義し、Command を使用して View の ViewModel で定義された RelayCommand をバインドするだけで、WinForm および ASP.NET イベントと同じ効果が得られますが、ここでは UI とロジックの強い結合が削除されています。 。
2, メッセージャー: MVVMLight のメッセージャーは比較的大きな役割を果たします。前述したように、MVVM モードでは ViewModel と View の強参照が削除されますが、これらはどのように相互作用するのでしょうか?これは、ViewModel と View が通信できるようにするために使用されます。一般的には、静的な AppMessages クラスを一般的な通信クラスとして定義しますが、原理はパブリッシュ・サブスクライブ・モデルです。
3、EventToCommand: これは、MVVM Light Toolkit V3 で導入された追加動作の概念に似ています。
4, ICleanup インターフェイス: ビューを表示するときは、最初に Cleanup メソッドを呼び出してデータをクリアする必要があります。これは、ViewModel と View の結合分離のために必要な操作の一部でもあります。
MVVMLight は、VS および Blend 用のテンプレートとインテリジェント センシングを提供する、非常に使いやすい MVVM フレームワークです。 MEF と組み合わせて使用すると、非常に軽量かつ効率的に感じられ、WPF と Silverlight、特に Silverlight のサポートが提供されるため、一般的には、より有望な軽量の Silverlight MVVM モードを選択します。
4. フル機能で使いやすい MVVM ヘルパー
ダウンロード アドレス: http://mvvmhelpers.codeplex.com/
開発者: Mark Smith
Silverlight をサポートするかどうか: いいえ
学習資料: http://www.julmar.com/blog/mark/ および提供されるサンプル、ソース コード、およびテストケース。
ソース コードのスクリーンショットは次のとおりです。
##MVVM ヘルパーは JulMar MVVM ヘルパー動作とも呼ばれ、これにはいくつかの重要な概念があります。 1 は、ViewModel、View、Model の間の分離を含む MVVM モデルの基本機能を提供し、またいくつかの共通機能も提供します。 2. ViewModelの作成はタグ形式で注入され、MEFも導入できるようになりました。 3. IOC/DI サポート、属性には検証メカニズムがあり、ビューモデルの使用後に待機カーソルのサポートをリリースできるため、メモリ リークが回避されます。 4. 一般的に使用される添付動作のサポートを提供します。 5. 強参照による結合を回避するためのメッセージ メカニズムの導入。 MVVM Helpers は非常に応用可能な MVVM フレームワークであり、特に共通の MVVM 機能である MEF Attached Behaviors を提供するため、プロジェクトの問題は基本的に解決できます。5、強力で軽量な Cinch
ダウンロード アドレス: http://cinch.codeplex.com/開発者: Sacha BarberSilverlight がサポートされているかどうか: いいえ学習教材: http://sachabarber.net/ および例、ソース コード、テスト ケースが提供されています。 ソース コードのスクリーンショットは次のとおりです。 コードを注意深く調べると、類似したコードがたくさんあることがわかります。上で説明した MVVM ヘルパーと、おそらく相互に関連していると思われます。 Cinch にはいくつかの重要な概念があります: 1. このフレームワークは、MEF が登場する前に既に ViewModel と View の間の強参照分離を実装していました。一般的な IOC 構成や IView はありません。転送に使用され、寿命は長くなります。フォームやコントロールのサイクルイベントも比較的うまく処理されるので、この点では非常に優れています。 2 は、一般的に使用されるアタッチされた動作のサポートを提供し、いくつかの一般的な MVVM 機能も提供します。 3、DI/IOC は Unity を使用して実装され、システム内の予期しないエラーを回避するためにマルチスレッド化されています。 4. ビューモデルを使用すると、メモリ リークを回避するために適切なタイミングでリリースでき、検証メカニズムが追加され、共通ナビゲーションが実装されます。 5、強参照による結合を避けるためのメッセージメカニズムの導入。 Cinch は非常に強力なフレームワークであり、特にアプリケーション全体の構築に重点を置いているため、人気も高くなります。
6. シンプルな機能と簡単な拡張を備えた MVVMFoundation
ダウンロード アドレス: http://mvvmfoundation.codeplex.com/開発者: Josh Smith Silverlight をサポートするかどうか: いいえ学習教材: http://joshsmithonwpf.wordpress.com/ および提供される例、ソース コード、テスト ケース。 ソース コードのスクリーンショットは次のとおりです: MVVM Foundation にはいくつかの重要な概念があります: 1、メッセンジャー: これは主に異なる ViewModel 間のさまざまな通信 (相互関係のある ViewModel、マスター/スレーブ ViewModel など) で使用されますが、もちろん、ViewModel と View の間の通信にも拡張できます。 2, ObservableObject: これは ViewModelBase の概念と同等です。各 ViewModel はこのクラスを継承し、メモリ リークを防ぐために呼び出しが完了するとすぐに解放されます。 3、PropertyObserver: 主に INotifyPropertyChanged.PropertyChanged をカプセル化するため、カプセル化によりコードが簡素化され、不適切な操作によるメモリ リークを防ぐことができます。4、RelayCommand インターフェイス: 実行実行ロジック、オプションの実行可能ロジックなどを含むコマンド ステートメントをカプセル化します。外部的には、インスタンス化してバインディングするだけで簡単に使用できます。
MVVMFoundation は非常にシンプルな MVVM フレームワークです。ソース コードを調べるのが難しい場合は、まずこのフレームワークから始めることができます。コードはシンプルで洗練されています。
プログラミング関連の知識について詳しくは、プログラミング学習 Web サイト をご覧ください。 !
以上がmvvm フレームワークとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。