SlideShare a Scribd company logo
WPF MVVM Review
Takayuki KONDO tkondou@gmail.com
mokusharp (C# study meeting)
on 2013/07/18
目次
• WPF/XAML/MVVMキーワードのおさらい
• WPF
• XAML
• MVVM
• 概念を理解しよう
• PDS
• XAML系でのPDS適用
• プレゼンテーションモデル
WPF/XAML/MVVMおさらい
Remember some keywords ? WPF, XAML, MVVM, …
“WPF”
• Windows Presentation Foundation
• ユーザインタフェースを作成するための新しい技術
• 次世代プレゼンテーションシステム
• 多機能な対話型クライアントアプリケーションを作成するためのUIフ
レームワーク
• .NET Framework に含まれるGUI開発ライブラリ
“WPF”
• 概要
• Windowsフォームが、単にWin32 APIをマネージ・コードでラップし
たものであるのに対して、WPFはマネージ・コードで新たに実装され
たGUI開発ライブラリ
• 豊かなユーザー体験を提供する先進的なGUI開発基盤
• 3.0以降の .NET Framework に標準搭載
“WPF”の特徴と利点
• グラフィックス・ハードウェア
• コントロール、メディア、文書の統合
• UIカスタマイズの柔軟性
• 見た目(=外観デザイン)とロジックの分離
http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
“WPF”の特徴と利点
• グラフィックス・ハードウェア
• WPFはコアの部分にグラフィックス・ハードウェアを活用したベク
ター・ベースのレンダリング・エンジンを採用している。ベクター・
ベースであるため、UI要素にスムーズな拡大・縮小/回転を掛けるこ
とができる。また、ハードウェア・アクセラレーションにより、CPU
への負担を最小限に抑えている。
• コントロール、メディア、文書の統合
• UIカスタマイズの柔軟性
• 見た目(=外観デザイン)とロジックの分離
http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
“WPF”の特徴と利点
• グラフィックス・ハードウェア
• コントロール、メディア、文書の統合
• WPFは、ボタンやリストボックスなどのコントロール、ラスター画像
やベクター・グラフィックス、頂点メッシュを用いた3D描画、動画な
どのメディア、リッチテキストなどの整形済み文書に対して、統一的
な開発機能を提供する。それぞれに別個のプログラミング・モデルを
覚える必要がないだけではなく、例えばボタンの中に動画を表示する
といった組み合わせも簡単に行える。
• UIカスタマイズの柔軟性
• 見た目(=外観デザイン)とロジックの分離
http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
“WPF”の特徴と利点
• グラフィックス・ハードウェア
• コントロール、メディア、文書の統合
• UIカスタマイズの柔軟性
• 既存のGUI開発ライブラリでは、ボタンなどのUI要素をカスタマイズ
するにしても、サイズや背景色の変更程度の機能しか持っていないも
のも多い。
• これに対してWPFでは、例えば任意の形状のボタンを作成したり、背
景に動画を流したり、動的に回転や拡大・縮小を行ったりといった非
常に柔軟なカスタマイズが可能である。
• 見た目(=外観デザイン)とロジックの分離
http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
“WPF”の特徴と利点
• グラフィックス・ハードウェア
• コントロール、メディア、文書の統合
• UIカスタマイズの柔軟性
• 見た目(=外観デザイン)とロジックの分離
• WPFではXAML(Extensible Application Markup Language)と呼ばれ
る、XML形式の宣言的言語を用いてユーザー・インターフェイスを記
述する。
• 見た目(=外観デザイン)に関する部分をXAML言語で記述し、ロ
ジックをC#言語などを用いて記述することで、アプリケーションの見
た目に関する部分をロジックから完全に切り離す構造になっている。
これは、ビジュアル・デザイナーとロジック開発者との協業を意識し
たものである。
http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
WPF
•Windows
•Presentation
•UI/UX
•Foundation
•基礎
WPF アーキテクチャ
• PresentationFramework
• PresentationCore
• milcore
• アンマネージ
http://msdn.microsoft.com/ja-jp/library/ms750441
“XAML”
• 宣言型マークアップ言語
http://msdn.microsoft.com/ja-jp/library/ms752059
<Window x:Class="XAML.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ClickMe" Height="150" Width="200">
<Grid>
<StackPanel>
<Button Content="押してください"></Button>
</StackPanel>
</Grid>
</Window>
XAML
XAMLの利点
XAMLコードと(C#などの)分離コードを分けることの利点
1. ビジュアル・デザイナー向けのツールを用いた外観デザイン
が容易
2. UI要素の階層が深くなった場合に、(一般的なプログラミン
グ言語よりも)階層構造を把握しやすい
3. Web開発で一般的に用いられているHTML+JavaScriptに似た
感覚でアプリケーションを開発可能
4. C#のようなプログラミング言語では書けない、あるいは、書
きにくい記述が容易
“MVVM”
• XAML系プラットフォーム(WPF/Silverlight/WP7/Metro)のため
に生まれたMVC系パターン
• MVC系パターン(MVC/MVP/MVVM)のGUIアーキテクチャ
Prism Development Guide Chapter 5: Implementing the MVVM Pattern
Notifications
View
View ModelViewModel
Presentation Logic Business Logic and DataUI and UI Logic(Code behind)
Data Binding
Commands
MVVMパターンの概要
• Model/View/ViewModelの3つの責務にGUIアプリケーションを
分割するパターン
• ViewはViewModelに依存、ViewModelはModelに依存。逆方向
の依存はない
http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_02/greatblogentry_02_01.html
Notifications
View
View ModelViewModel
Presentation Logic Business Logic and DataUI and UI Logic(Code behind)
Data Binding
Commands
“MVVM”
• MVVMパターンは、WPFとSilverlightのデータバインディン
グ、データテンプレート、コマンド、ビヘイビアのようないく
つかのコア機能を活用するように最適化された、プレゼンテー
ションモデルパターンの”近い変形”のことです
Prism Development Guide Chapter 5: Implementing the MVVM Pattern
Notifications
View
View ModelViewModel
Presentation Logic Business Logic and DataUI and UI Logic(Code behind)
Data Binding
Commands
プレゼンテーションパターン
の概念を理解しよう
なんのために行うの?
プレゼンテーションとドメイ
ンの分離 (PDS)
PresentationDomainSeparation
プレゼンテーションとドメインの分離
• プレゼンテーションとドメインをなぜ分離するのでしょうか。
• どういったメリットがあるの?
• Martin Fowler氏が気づいたことが…
Presentation Domain
ユーザーインタフェース ロジック
プレゼンテーションとドメインの分離
(PDS)
• 有用な”設計原則”に、プレゼンテーション層(ユーザインタ
フェース)とその他機能をうまく分ける、というのがありま
す。私はこれを発見して以来、ずって慣行している。長い間こ
れを使ってきていくつものメリットを発見しました
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?PresentationDomainSeparation
Presentation Domain
プレゼンテーションとドメインの分離
(PDS)
• メリット
• プレゼンテーションとドメインが分かれていると、理解しやすい
• 同じ基本プログラムを、重複コードなしに、複数のプレゼンテーショ
ンに対応できる
• ユーザインタフェースはテストがしにくいため、それを分離すること
により、テスト可能なロジック部分に集中できる
• プレゼンテーション部分のコードは、ドメイン部分のコードと違った
スキルと知識が必要
Presentation Domain
プレゼンテーションとドメインの分離
(PDS)
• これら多くのメリットがあるにもかかわらず、この原則が破ら
れているのをよく目にします
• なぜしない?(できない)
• 知識がない。
• フレームワークがドメインとプレゼンテーションを安易に、ごちゃま
ぜにして分割が困難。
• クラサバ型という意味ではない。同じマシン上でも論理的に分
割すべき
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?PresentationDomainSeparation
プレゼンテーションとドメインの分離
(PDS)
PresentationとDomain のそれぞれの感心事を分離する。
ただし相互依存は望ましくないため、Observerパターンが良い
Presentation Domain
呼び出し
イベント監視
プレゼンテーションとドメインの分離
(PDS)
• 分離することによる理解のしやすさ
• テストがしやすい
• テストしにくいUIを分離、テストしやすくする
• 変更に強い
• プレゼンテーション部分の変更に、ドメインが引きづられない
• 複数のプレゼンテーションが用意できる
Presentation Domain
呼び出し
イベント監視
プレゼンテーションとドメインの分離
(PDS)
• 規模が小さいプログラムでは冗長さが目立つかもしれません
• しかしドメインの単体テスト自動化によるメリットは大きいで
す
Presentation Domain
呼び出し
イベント監視
XAML系でのPDSの適用
How to apply PDS to XAML systems
XAML系(WPF)でPDSの適用
• XAMLにはXAML固有の都合でバインドするオブジェクトが必
要となる
Presentation
XAMLとXAMLの
都合が関係ある
部分
Domain
XAMLとXAMLの
都合が関係ない
部分
呼び出し
イベント監視
XAML系(WPF)でPDSの適用
• XAMLにはXAML固有の都合でバインドするオブジェクトが必
要となる
Presentation - XAMLとXAMLの都
合が関係ある部分
Domain
XAMLとXAMLの
都合が関係ない
部分
呼び出し
イベント監視
XAML
と
コードビハイ
ンド
バインドする
オブジェクト
XAML系(WPF)でPDSの適用
Domain
XAMLとXAMLの
都合が関係ない
部分
呼び出し
イベント監視
XAML
と
コードビハイ
ンド
バインドする
オブジェクト
XAML系(WPF)でPDSの適用
Domain
XAMLとXAMLの
都合が関係ない
部分
呼び出し
イベント監視
XAML
と
コードビハイ
ンド
XAML
の状態ストア
View ViewModel Model
Domain
XAMLとXAML
の都合が関係
ない部分
呼び出し
イベント監視
XAML
と
コードビハ
インド
XAML
の状態スト
ア
View ViewModel Model
Notifications
View
View ModelViewModel
Presentation Logic Business Logic and DataUI and UI Logic(Code behind)
Data Binding
Commands
Notifications
View
View ModelViewModel
Presentation Logic Business Logic and DataUI and UI Logic(Code behind)
Data Binding
Commands
Presentation Domain
呼び出し
イベント監視
プレゼンテーションモデル
Represent the state and behavior of the presentation independently of the
GUI controls used in the interface
プレゼンテーションモデル
Controller
View
Model
Presentation
Model
委譲
http://martinfowler.com/eaaDev/PresentationModel.html
http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_10/greatblogentry_10_01.html
MVVMとプレゼンテーションパターン
• MVVMは、 Martin Fowler氏によって導入された特別なプレゼン
テーションモデルデザインパターンとして、Microsoftに由来す
るソフトウェア工学で使用されるアーキテクチャパターンです
• 大部分は、MVCパターンをベースとしており、MVVMは、
HTML5, WPF, Silverlight, ZK Frameworkのようなイベント駆動
プログラミングをサポートするUI開発プラットフォームをター
ゲットとしています
http://en.wikipedia.org/wiki/MVVM
http://ja.wikipedia.org/wiki/Model_View_ViewModel
UIアーキテクチャの違い
ドメインロジック
の場所
プレゼンテーション
ロジックの場所
オブザーバ同期
MVC Model ViewまたはModel ViewがModelを監
視
プレゼンテー
ションモデル
Model Presentation Model Viewが
PresentaionModel
を監視
MVVM Model ViewModel ViewがViewModel
を監視
(双方向データバン
ド)
http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_10/greatblogentry_10_01.html
MVVMパターンを適用するためには
• ほかのすべての責任分割型のUI設計パターンと同様に、さまざまな
シナリオでMVVMパターンを効果的に適用する鍵は、正しいロール
を適切にコードとして実装する方法を理解することと、それぞれの
責務がどうやって相互に対話するかをよく理解することです。
• 「各責務が何を担当するのか?」
• 「なぜそうするのか?」
• 「各責務はどうやって対話をするのか?」
• それらを知ることが、MVVMパターンを理解し、それぞれの開発案件に合わ
せて応用できるようになることにつながるはずです。
• Prism開発ガイドより
責務
• View
• XAMLで記述され、UIの外観と構造を定義します。
• 基本UIのコードビハインドには、初期のInitializeComponentメソッド
以外何も記述されているべきではありません
• ViewModel
• プレゼンテーション・ロジックとステート(=状態)を持つ
• Modelの公開するステートをいちいちラップしてViewに公開するのも
ViewModelの役目
• Model
• ビジネスドメイン。ビジネスドメインの状態も持つことになる。
MVVM の sample
• HelloWorld程度でMVVMのメリットを享受することは難しいで
すが、View 部分、ViewModel部分、Model部分がどのように分
割されているか慣れましょう
Demo
参考資料・サイト・文献
• @IT WPF入門
• http://www.atmarkit.co.jp/ait/subtop/features/da/ap_introwpf_index.html
• MVVMパターンの常識
• http://ugaya40.net/mvvm/mvvm-2011.html
• http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_02/greatblogentry_02_0
1.html
• MVVMパターンで学ぶGUIアーキテクチャパターン
• http://ugaya40.net/architecture/mvvm_to_mvc.html
• Separating User Interface Code
• http://martinfowler.com/ieeeSoftware/separation.pdf

More Related Content

What's hot

【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
日本マイクロソフト株式会社
 
WinFormsからWPFへ
WinFormsからWPFへWinFormsからWPFへ
WinFormsからWPFへ
Yamamoto Reki
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVCAimingStudy
 
Reactive extensions入門v0.1
Reactive extensions入門v0.1Reactive extensions入門v0.1
Reactive extensions入門v0.1一希 大田
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Yuya Yamaki
 
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
Fujikido
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
 
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミングこれからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
インフラジスティックス・ジャパン株式会社
 
XAML入門
XAML入門XAML入門
XAML入門
一希 大田
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要
TomomitsuKusaba
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
 
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
Takayoshi Tanaka
 
あの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoRあの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoR
shinnosuke kugimiya
 
ゲーム開発とMVC
ゲーム開発とMVCゲーム開発とMVC
ゲーム開発とMVC
Takashi Komada
 
Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目
cct-inc
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
一希 大田
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 

What's hot (20)

【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
WinFormsからWPFへ
WinFormsからWPFへWinFormsからWPFへ
WinFormsからWPFへ
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
 
Reactive extensions入門v0.1
Reactive extensions入門v0.1Reactive extensions入門v0.1
Reactive extensions入門v0.1
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
 
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミングこれからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
 
XAML入門
XAML入門XAML入門
XAML入門
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
 
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
 
あの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoRあの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoR
 
ゲーム開発とMVC
ゲーム開発とMVCゲーム開発とMVC
ゲーム開発とMVC
 
Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 

Viewers also liked

T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm伸男 伊藤
 
Prism.Formsについて
Prism.FormsについてPrism.Formsについて
Prism.Formsについて
一希 大田
 
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞いiOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
 
WPFことはじめ
WPFことはじめWPFことはじめ
WPFことはじめ
Hiroshi Maekawa
 
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙いKnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
Toshihiro Kawachi
 
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろうUnityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
yodaka16
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
Shinichi Hirauchi
 
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針Ken Morishita
 
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについてリアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
Hidenori Takeshita
 
Robust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the CloudRobust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the Cloud
Yuto Yamaguchi
 

Viewers also liked (10)

T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
 
Prism.Formsについて
Prism.FormsについてPrism.Formsについて
Prism.Formsについて
 
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞いiOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
 
WPFことはじめ
WPFことはじめWPFことはじめ
WPFことはじめ
 
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙いKnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
 
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろうUnityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
 
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針
 
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについてリアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
 
Robust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the CloudRobust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the Cloud
 

Similar to WPF MVVM Review

MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
Shotaro Suzuki
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
 
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00
Daisuke Nishino
 
Netadvantage 2012 volume2 最新情報 Reporting 編
Netadvantage 2012 volume2 最新情報 Reporting 編Netadvantage 2012 volume2 最新情報 Reporting 編
Netadvantage 2012 volume2 最新情報 Reporting 編
Daizen Ikehara
 
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Akira Inoue
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
智治 長沢
 
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Daizen Ikehara
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
Microsoft Tech Summit 2017
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
minazou67
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
Daisuke Nishino
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要Developers Summit
 
Efsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshareEfsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshareTakahito Sugishita
 
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考えるMetroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Takahito Sugishita
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
GoAzure
 
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
Kaoru NAKAMURA
 
concrete5で社内システムのお話し
concrete5で社内システムのお話しconcrete5で社内システムのお話し
concrete5で社内システムのお話し
Tao Sasaki
 
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介
Keisuke Todoroki
 
Visual Studio 2010
Visual Studio 2010Visual Studio 2010

Similar to WPF MVVM Review (20)

MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
 
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00
 
Netadvantage 2012 volume2 最新情報 Reporting 編
Netadvantage 2012 volume2 最新情報 Reporting 編Netadvantage 2012 volume2 最新情報 Reporting 編
Netadvantage 2012 volume2 最新情報 Reporting 編
 
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
 
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
 
Efsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshareEfsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshare
 
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考えるMetroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
 
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
 
concrete5で社内システムのお話し
concrete5で社内システムのお話しconcrete5で社内システムのお話し
concrete5で社内システムのお話し
 
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介
 
Visual Studio 2010
Visual Studio 2010Visual Studio 2010
Visual Studio 2010
 

Recently uploaded

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (14)

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

WPF MVVM Review