Home > C# > Toolkit > MVVMパターン

ベクトルドロー・レベルゼロ

UIパターンとMVVMパターン

広告

概要

WPFについて調べていると頻繁に登場するMVVMパターンは、UIパターンの一種です。 MVVMパターンは、調べてみても薄ぼんやりしてよくわかりません。Web上の情報を調べてみましたが、よくわかりません。 調べたリンクをここにまとめておきます。

MVVMパターン(Model-View-ViewModelデザインパターン)とは

MVVMパターンとは、UIパターンの一種です。ビュー(View)と呼ばれる、ユーザーからのデータ入力や指示を入力したり、結果を出力するウィンドウUIと それらの入力を処理するコード(Model)をできるだけ分離(疎結合)して、ウィンドウUI(View)の変更が、それらを処理するコード(Model)に影響を与えなくすることが目的です。

そこで問題になるのが、ウィンドウUI(View)の状態の管理(ViewModel)です。ウィンドウUI(View)を開くたびに、初期状態になっているとユーザーにストレスを与えます。 そのため、どこかにその状態を保存しておき、ウィンドウUI(View)を変更する作業が必要です。この操作を、処理するコード(Model)と分離して、ビューモデル(ViewModel)としてまとめます。

このようにして、処理するコード(Model)をウィンドウUI(View)のための実装から独立させます。

このような、プログラムを、Model-View-ViewModelの3つに分割して、実装するスタイルが、MVVMパターン(Model-View-ViewModelデザインパターン)と呼ばれます。

Prism

よくよく調べていくと、WPFのMVVMパターンは、Prismと呼ばれる拡張ライブラリにつながります。 このライブラリを使用した実装手法、あるいは、このライブラリに感化された実装手法というのが本質のようです。

要は、このライブラリを使わないと、特段便利ではないということだと思われます。 ドキュメントは、英語ですので、読むのもたいへんです。そして、理解して、使えるようになるまで、それなりの時間がかかる気がします。

MVVM Light Toolkit

MVVMパターンを使うために利用するTookkitは、「Prism」とこの「MVVM Light Toolkit」が有名とのことです。

MVVM Light Toolkit(CoePlexのページ)

MVVM Survival Guide for Enterprise Architectures in Silverlight and WPF: Eliminate Unnecessary Code by Taking Advantage of the Mvvm Pattern-less Code, Few Bugs

Prismドキュメントから、MVVMを理解できないか試したのですが、理解できませんでした。 そこで、あきらめて、本を購入して読むことにしました。英語で記述されているので、ゆっくり読み進めることにします。

MVVMサバイバルガイド

参考サイト:UIパターン

わかりやすい説明は、見つかりません。理解するための前提となる知識が何かほかにあるのかもしれません。

UIパターン:プレゼンテーションモデル(外部サイト)

開発者が知っておくべき、6つのUIアーキテクチャ・パターン(外部サイト)

参考サイト:MVVMパターン

それで、MVVMパターンについて説明されているWebサイトを調べてみました。結果、よくわかりません。

Model-View-ViewModel デザイン パターンによる WPF アプリケーション(外部サイト)

MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(外部サイト)

MVVMパターンとは?(public)(外部サイト)

MVVMによるSilverlightアプリケーションの開発(外部サイト)

「コマンド」と「MVVMパターン」を理解する(外部サイト)

[C# / WPF] 最新のC# 6.0でMVVMパターンを実装する(外部サイト)

WPFでMVVMパターン(外部サイト)

Hilo での Model-View-ViewModel (MVVM) パターンの使用 (C++ と XAML を使った Windows ストア アプリ)(外部サイト)

MVVMパターンのチュートリアル

チュートリアルがありました。

参考サイト:

Model-View-ViewModel (MVVM) パターンの使用(外部サイト)

Windows ストア ゲーム "リバーシ" (XAML、C#、C++)(外部サイト)

参考書籍

このエントリーをはてなブックマークに追加

広告

Home PC C# Illustration

Copyright (C) 2011-2016 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」