検索

mvvm フレームワークとは何ですか?

Nov 09, 2020 am 11:02 AM
mvvmフレーム

mvvm フレームワークには次のものが含まれます: 1. MVVM パターンを実装する軽量フレームワーク MVVMLight フレームワーク; 2. Prism フレームワーク; 3. MVVM クラス用のオープンソース フレームワークである Caliburn フレームワーク; 4. MVVM Helpers フレームワーク; 5 . Cinch フレームワーク; 6. MVVM Foundation フレームワーク

mvvm フレームワークとは何ですか?

##MVVM を実装するためのフレームワーク

## 1. 最も強力で多用途の合成フレームワーク - Prism

ダウンロード アドレス: http://compositewpf.codeplex.com/

開発者: Microsoft パターン & プラクティス チーム

Silverlight がサポートされているかどうか: はい

学習教材: WPF および Silverlight の複合アプリケーション ガイダンス - 2010 年 5 月.chm、クイックスタート、StockTraderRI など。

ソース コードのスクリーンショットは次のとおりです。

#Prism - 以前は WPF および Silverlight 用の複合アプリケーション ガイダンスと呼ばれていました。これは、以下に基づく複雑なエンタープライズ レベルのアプリケーションです。 WPF/Silverlight メインストリーム アプリケーション フレームワーク。 Prism にはいくつかの重要な概念があります: mvvm フレームワークとは何ですか?

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 にはいくつかの重要な概念があります: mvvm フレームワークとは何ですか?

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 Bugnion

Silverlight のサポート:はい

学習教材:その他オンライン ドキュメントについては、主にプロジェクトの例、ソース コード、単体テスト ケース、およびいくつかの海外のブログやコミュニティを参照します。また、これら 3 つの記事は非常に優れており、MVVMLight を使用して比較的完全な Silverlight エンタープライズ プロジェクトを開発しました。

パート 1 - 概要、インストール、および一般的なアプリケーション設計のトピック
  • パート 2 - MVVM のライト トピック
  • パート 3 - カスタム認証、パスワードのリセット、ユーザー メンテナンス
  • ソース コードスクリーンショットは次のとおりです:

MVVMLight にはいくつかの重要な概念があります: mvvm フレームワークとは何ですか?

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 フレームワークとは何ですか?

##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 Barber

Silverlight がサポートされているかどうか: いいえ

学習教材: http://sachabarber.net/ および例、ソース コード、テスト ケースが提供されています。

ソース コードのスクリーンショットは次のとおりです。

mvvm フレームワークとは何ですか?

コードを注意深く調べると、類似したコードがたくさんあることがわかります。上で説明した 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 フレームワークとは何ですか?

MVVM Foundation にはいくつかの重要な概念があります:

1、メッセンジャー: これは主に異なる ViewModel 間のさまざまな通信 (相互関係のある ViewModel、マスター/スレーブ ViewModel など) で使用されますが、もちろん、ViewModel と View の間の通信にも拡張できます。

2, ObservableObject: これは ViewModelBase の概念と同等です。各 ViewModel はこのクラスを継承し、メモリ リークを防ぐために呼び出しが完了するとすぐに解放されます。

3、PropertyObserver: 主に INotifyPropertyChanged.PropertyChanged をカプセル化するため、カプセル化によりコードが簡素化され、不適切な操作によるメモリ リークを防ぐことができます。

4、RelayCommand インターフェイス: 実行実行ロジック、オプションの実行可能ロジックなどを含むコマンド ステートメントをカプセル化します。外部的には、インスタンス化してバインディングするだけで簡単に使用できます。

MVVMFoundation は非常にシンプルな MVVM フレームワークです。ソース コードを調べるのが難しい場合は、まずこのフレームワークから始めることができます。コードはシンプルで洗練されています。

プログラミング関連の知識について詳しくは、プログラミング学習 Web サイト をご覧ください。 !

以上がmvvm フレームワークとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLとReact:マークアップとコンポーネントの関係HTMLとReact:マークアップとコンポーネントの関係Apr 12, 2025 am 12:03 AM

HTMLとReactの関係は、フロントエンド開発の中核であり、最新のWebアプリケーションのユーザーインターフェイスを共同で構築します。 1)HTMLはコンテンツ構造とセマンティクスを定義し、Reactはコンポーネントを介して動的インターフェイスを構築します。 2)ReactコンポーネントはJSX構文を使用してHTMLを埋め込み、インテリジェントなレンダリングを実現します。 3)コンポーネントライフサイクルは、状態および属性に従ってHTMLレンダリングと動的に更新を管理します。 4)コンポーネントを使用して、HTML構造を最適化し、保守性を向上させます。 5)パフォーマンスの最適化には、不必要なレンダリングの回避、重要な属性の使用、およびコンポーネントの単一の責任を維持することが含まれます。

ReactとFrontend:インタラクティブエクスペリエンスの構築ReactとFrontend:インタラクティブエクスペリエンスの構築Apr 11, 2025 am 12:02 AM

Reactは、インタラクティブなフロントエンドエクスペリエンスを構築するための好ましいツールです。 1)Reactは、コンポーネント化と仮想DOMを通じてUIの開発を簡素化します。 2)コンポーネントは、関数コンポーネントとクラスコンポーネントに分割されます。関数コンポーネントはよりシンプルで、クラスコンポーネントはより多くのライフサイクル方法を提供します。 3)Reactの作業原則は、パフォーマンスを改善するために仮想DOMおよび調整アルゴリズムに依存しています。 4)国家管理は、usestateまたはthis.stateを使用し、ComponentDidmountなどのライフサイクルメソッドが特定のロジックに使用されます。 5)基本的な使用には、コンポーネントの作成と状態の管理が含まれ、高度な使用にはカスタムフックとパフォーマンスの最適化が含まれます。 6)一般的なエラーには、不適切なステータスの更新とパフォーマンスの問題が含まれます。

反応とフロントエンドスタック:ツールとテクノロジー反応とフロントエンドスタック:ツールとテクノロジーApr 10, 2025 am 09:34 AM

Reactは、コアコンポーネントと状態管理を備えたユーザーインターフェイスを構築するためのJavaScriptライブラリです。 1)コンポーネントと州の管理を通じてUIの開発を簡素化します。 2)作業原則には和解とレンダリングが含まれ、React.memoとusememoを通じて最適化を実装できます。 3)基本的な使用法は、コンポーネントを作成およびレンダリングすることであり、高度な使用法にはフックとコンテキストアピの使用が含まれます。 4)不適切なステータスの更新などの一般的なエラーでは、ReactDevtoolsを使用してデバッグできます。 5)パフォーマンスの最適化には、React.MEMO、仮想化リスト、コードスプリッティの使用が含まれ、コードを読みやすく保守可能に保つことがベストプラクティスです。

HTMLにおけるReactの役割:ユーザーエクスペリエンスの向上HTMLにおけるReactの役割:ユーザーエクスペリエンスの向上Apr 09, 2025 am 12:11 AM

ReactはJSXとHTMLを組み合わせてユーザーエクスペリエンスを向上させます。 1)JSXはHTMLを埋め込み、開発をより直感的にします。 2)仮想DOMメカニズムは、パフォーマンスを最適化し、DOM操作を削減します。 3)保守性を向上させるコンポーネントベースの管理UI。 4)国家管理とイベント処理は、インタラクティブ性を高めます。

反応コンポーネント:HTMLで再利用可能な要素を作成します反応コンポーネント:HTMLで再利用可能な要素を作成しますApr 08, 2025 pm 05:53 PM

Reactコンポーネントは、機能またはクラスによって定義され、UIロジックのカプセル化、およびプロップを介して入力データを受け入れることができます。 1)コンポーネントの定義:関数またはクラスを使用して、反応要素を返します。 2)レンダリングコンポーネント:Reactコールレンダリングメソッドまたは機能コンポーネントを実行します。 3)マルチプレックスコンポーネント:データをプロップに渡して、複雑なUIを構築します。コンポーネントのライフサイクルアプローチにより、ロジックをさまざまな段階で実行でき、開発効率とコードメンテナビリティが向上します。

厳密なモードの目的を反応します厳密なモードの目的を反応しますApr 02, 2025 pm 05:51 PM

React Strictモードは、追加のチェックと警告をアクティブにすることにより、Reactアプリケーションの潜在的な問題を強調する開発ツールです。これは、レガシーコード、安全でないライフサイクル、および副作用を特定するのに役立ち、現代の反応の実践を促進します。

断片の使用法を使用します断片の使用法を使用しますApr 02, 2025 pm 05:50 PM

反応フラグメントにより、余分なDOMノードなしで子供をグループ化すること、構造、パフォーマンス、アクセシビリティが向上します。それらは、効率的なリストレンダリングの鍵をサポートしています。

反応調整プロセス反応調整プロセスApr 02, 2025 pm 05:49 PM

この記事では、Reactの和解プロセスについて説明し、DOMを効率的に更新する方法について詳しく説明しています。重要な手順には、調整のトリガー、仮想DOMの作成、拡散アルゴリズムの使用、最小限のDOM更新の適用が含まれます。また、Perfoをカバーしています

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター