Soumettre la recherche
Mettre en ligne
WPF MVVM Review
•
Télécharger en tant que PPTX, PDF
•
13 j'aime
•
6,474 vues
Takayuki Kondou
Suivre
WPF および MVVM について mokusharp on 2013/7/18 (C#勉強会)にて発表した資料です。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 41
Télécharger maintenant
Recommandé
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
Yuta Matsumura
MVVM入門
MVVM入門
Kazutoshi Urabe
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
Sho Okada
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
Recommandé
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
Yuta Matsumura
MVVM入門
MVVM入門
Kazutoshi Urabe
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
Sho Okada
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
ke-m kamekoopa
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
WinFormsからWPFへ
WinFormsからWPFへ
Yamamoto Reki
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
Takayoshi Tanaka
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Fiberの使いどころ
Fiberの使いどころ
Tomoya Kawanishi
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
Prism.Formsについて
Prism.Formsについて
一希 大田
Contenu connexe
Tendances
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
ke-m kamekoopa
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
WinFormsからWPFへ
WinFormsからWPFへ
Yamamoto Reki
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
Takayoshi Tanaka
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Fiberの使いどころ
Fiberの使いどころ
Tomoya Kawanishi
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
Tendances
(20)
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
WinFormsからWPFへ
WinFormsからWPFへ
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
ドメイン駆動設計入門
ドメイン駆動設計入門
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
20150530 めとべや東京 Reactive Property + Livetで作るWPFアプリ
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Fiberの使いどころ
Fiberの使いどころ
オブジェクト指向できていますか?
オブジェクト指向できていますか?
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
En vedette
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
Prism.Formsについて
Prism.Formsについて
一希 大田
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
WPFことはじめ
WPFことはじめ
Hiroshi Maekawa
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
インフラジスティックス・ジャパン株式会社
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
Toshihiro Kawachi
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
yodaka16
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
今さらWPF?いいえ、今こそWPF!
今さらWPF?いいえ、今こそWPF!
Yuya Yamaki
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
Shinichi Hirauchi
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針
Ken Morishita
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
Fujikido
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
Hidenori Takeshita
WPF4.5入門
WPF4.5入門
一希 大田
Robust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the Cloud
Yuto Yamaguchi
Xamarin.forms入門
Xamarin.forms入門
一希 大田
En vedette
(17)
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
Prism.Formsについて
Prism.Formsについて
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
WPFことはじめ
WPFことはじめ
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
今さらWPF?いいえ、今こそWPF!
今さらWPF?いいえ、今こそWPF!
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
WPF4.5入門
WPF4.5入門
Robust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the Cloud
Xamarin.forms入門
Xamarin.forms入門
Similaire à WPF MVVM Review
MAF2013 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 プラットフォーム編
Daizen Ikehara
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00
Daisuke Nishino
Netadvantage 2012 volume2 最新情報 Reporting 編
Netadvantage 2012 volume2 最新情報 Reporting 編
Daizen Ikehara
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Akira Inoue
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
チーム×ツール 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 編
Daizen Ikehara
[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 OSSC
Daisuke Nishino
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
Developers Summit
Efsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshare
Takahito Sugishita
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Takahito Sugishita
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
GoAzure
Go azure tfs_service
Go azure tfs_service
Kaoru NAKAMURA
concrete5で社内システムのお話し
concrete5で社内システムのお話し
Tao Sasaki
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介
Keisuke Todoroki
Visual Studio 2010
Visual Studio 2010
Visual Studio Users Group Japan
Similaire à 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 apps
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00
Netadvantage 2012 volume2 最新情報 Reporting 編
Netadvantage 2012 volume2 最新情報 Reporting 編
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
チーム×ツール 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 編
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
Efsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshare
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
Go azure tfs_service
Go azure tfs_service
concrete5で社内システムのお話し
concrete5で社内システムのお話し
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介
Visual Studio 2010
Visual Studio 2010
Dernier
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Dernier
(11)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
WPF MVVM Review
1.
WPF MVVM Review Takayuki
KONDO tkondou@gmail.com mokusharp (C# study meeting) on 2013/07/18
2.
目次 • WPF/XAML/MVVMキーワードのおさらい • WPF •
XAML • MVVM • 概念を理解しよう • PDS • XAML系でのPDS適用 • プレゼンテーションモデル
3.
WPF/XAML/MVVMおさらい Remember some keywords
? WPF, XAML, MVVM, …
4.
“WPF” • Windows Presentation
Foundation • ユーザインタフェースを作成するための新しい技術 • 次世代プレゼンテーションシステム • 多機能な対話型クライアントアプリケーションを作成するためのUIフ レームワーク • .NET Framework に含まれるGUI開発ライブラリ
5.
“WPF” • 概要 • Windowsフォームが、単にWin32
APIをマネージ・コードでラップし たものであるのに対して、WPFはマネージ・コードで新たに実装され たGUI開発ライブラリ • 豊かなユーザー体験を提供する先進的なGUI開発基盤 • 3.0以降の .NET Framework に標準搭載
6.
“WPF”の特徴と利点 • グラフィックス・ハードウェア • コントロール、メディア、文書の統合 •
UIカスタマイズの柔軟性 • 見た目(=外観デザイン)とロジックの分離 http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
7.
“WPF”の特徴と利点 • グラフィックス・ハードウェア • WPFはコアの部分にグラフィックス・ハードウェアを活用したベク ター・ベースのレンダリング・エンジンを採用している。ベクター・ ベースであるため、UI要素にスムーズな拡大・縮小/回転を掛けるこ とができる。また、ハードウェア・アクセラレーションにより、CPU への負担を最小限に抑えている。 •
コントロール、メディア、文書の統合 • UIカスタマイズの柔軟性 • 見た目(=外観デザイン)とロジックの分離 http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
8.
“WPF”の特徴と利点 • グラフィックス・ハードウェア • コントロール、メディア、文書の統合 •
WPFは、ボタンやリストボックスなどのコントロール、ラスター画像 やベクター・グラフィックス、頂点メッシュを用いた3D描画、動画な どのメディア、リッチテキストなどの整形済み文書に対して、統一的 な開発機能を提供する。それぞれに別個のプログラミング・モデルを 覚える必要がないだけではなく、例えばボタンの中に動画を表示する といった組み合わせも簡単に行える。 • UIカスタマイズの柔軟性 • 見た目(=外観デザイン)とロジックの分離 http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
9.
“WPF”の特徴と利点 • グラフィックス・ハードウェア • コントロール、メディア、文書の統合 •
UIカスタマイズの柔軟性 • 既存のGUI開発ライブラリでは、ボタンなどのUI要素をカスタマイズ するにしても、サイズや背景色の変更程度の機能しか持っていないも のも多い。 • これに対してWPFでは、例えば任意の形状のボタンを作成したり、背 景に動画を流したり、動的に回転や拡大・縮小を行ったりといった非 常に柔軟なカスタマイズが可能である。 • 見た目(=外観デザイン)とロジックの分離 http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
10.
“WPF”の特徴と利点 • グラフィックス・ハードウェア • コントロール、メディア、文書の統合 •
UIカスタマイズの柔軟性 • 見た目(=外観デザイン)とロジックの分離 • WPFではXAML(Extensible Application Markup Language)と呼ばれ る、XML形式の宣言的言語を用いてユーザー・インターフェイスを記 述する。 • 見た目(=外観デザイン)に関する部分をXAML言語で記述し、ロ ジックをC#言語などを用いて記述することで、アプリケーションの見 た目に関する部分をロジックから完全に切り離す構造になっている。 これは、ビジュアル・デザイナーとロジック開発者との協業を意識し たものである。 http://www.atmarkit.co.jp/ait/articles/1005/14/news105.html
11.
WPF •Windows •Presentation •UI/UX •Foundation •基礎
12.
WPF アーキテクチャ • PresentationFramework •
PresentationCore • milcore • アンマネージ http://msdn.microsoft.com/ja-jp/library/ms750441
13.
“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
14.
XAMLの利点 XAMLコードと(C#などの)分離コードを分けることの利点 1. ビジュアル・デザイナー向けのツールを用いた外観デザイン が容易 2. UI要素の階層が深くなった場合に、(一般的なプログラミン グ言語よりも)階層構造を把握しやすい 3.
Web開発で一般的に用いられているHTML+JavaScriptに似た 感覚でアプリケーションを開発可能 4. C#のようなプログラミング言語では書けない、あるいは、書 きにくい記述が容易
15.
“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
16.
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
17.
“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
18.
プレゼンテーションパターン の概念を理解しよう なんのために行うの?
19.
プレゼンテーションとドメイ ンの分離 (PDS) PresentationDomainSeparation
20.
プレゼンテーションとドメインの分離 • プレゼンテーションとドメインをなぜ分離するのでしょうか。 • どういったメリットがあるの? •
Martin Fowler氏が気づいたことが… Presentation Domain ユーザーインタフェース ロジック
21.
プレゼンテーションとドメインの分離 (PDS) • 有用な”設計原則”に、プレゼンテーション層(ユーザインタ フェース)とその他機能をうまく分ける、というのがありま す。私はこれを発見して以来、ずって慣行している。長い間こ れを使ってきていくつものメリットを発見しました http://capsctrl.que.jp/kdmsnr/wiki/bliki/?PresentationDomainSeparation Presentation Domain
22.
プレゼンテーションとドメインの分離 (PDS) • メリット • プレゼンテーションとドメインが分かれていると、理解しやすい •
同じ基本プログラムを、重複コードなしに、複数のプレゼンテーショ ンに対応できる • ユーザインタフェースはテストがしにくいため、それを分離すること により、テスト可能なロジック部分に集中できる • プレゼンテーション部分のコードは、ドメイン部分のコードと違った スキルと知識が必要 Presentation Domain
23.
プレゼンテーションとドメインの分離 (PDS) • これら多くのメリットがあるにもかかわらず、この原則が破ら れているのをよく目にします • なぜしない?(できない) •
知識がない。 • フレームワークがドメインとプレゼンテーションを安易に、ごちゃま ぜにして分割が困難。 • クラサバ型という意味ではない。同じマシン上でも論理的に分 割すべき http://capsctrl.que.jp/kdmsnr/wiki/bliki/?PresentationDomainSeparation
24.
プレゼンテーションとドメインの分離 (PDS) PresentationとDomain のそれぞれの感心事を分離する。 ただし相互依存は望ましくないため、Observerパターンが良い Presentation Domain 呼び出し イベント監視
25.
プレゼンテーションとドメインの分離 (PDS) • 分離することによる理解のしやすさ • テストがしやすい •
テストしにくいUIを分離、テストしやすくする • 変更に強い • プレゼンテーション部分の変更に、ドメインが引きづられない • 複数のプレゼンテーションが用意できる Presentation Domain 呼び出し イベント監視
26.
プレゼンテーションとドメインの分離 (PDS) • 規模が小さいプログラムでは冗長さが目立つかもしれません • しかしドメインの単体テスト自動化によるメリットは大きいで す Presentation
Domain 呼び出し イベント監視
27.
XAML系でのPDSの適用 How to apply
PDS to XAML systems
28.
XAML系(WPF)でPDSの適用 • XAMLにはXAML固有の都合でバインドするオブジェクトが必 要となる Presentation XAMLとXAMLの 都合が関係ある 部分 Domain XAMLとXAMLの 都合が関係ない 部分 呼び出し イベント監視
29.
XAML系(WPF)でPDSの適用 • XAMLにはXAML固有の都合でバインドするオブジェクトが必 要となる Presentation -
XAMLとXAMLの都 合が関係ある部分 Domain XAMLとXAMLの 都合が関係ない 部分 呼び出し イベント監視 XAML と コードビハイ ンド バインドする オブジェクト
30.
XAML系(WPF)でPDSの適用 Domain XAMLとXAMLの 都合が関係ない 部分 呼び出し イベント監視 XAML と コードビハイ ンド バインドする オブジェクト
31.
XAML系(WPF)でPDSの適用 Domain XAMLとXAMLの 都合が関係ない 部分 呼び出し イベント監視 XAML と コードビハイ ンド XAML の状態ストア View ViewModel Model
32.
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
33.
Notifications View View ModelViewModel Presentation Logic
Business Logic and DataUI and UI Logic(Code behind) Data Binding Commands Presentation Domain 呼び出し イベント監視
34.
プレゼンテーションモデル Represent the state
and behavior of the presentation independently of the GUI controls used in the interface
35.
プレゼンテーションモデル Controller View Model Presentation Model 委譲 http://martinfowler.com/eaaDev/PresentationModel.html http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_10/greatblogentry_10_01.html
36.
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
37.
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
38.
MVVMパターンを適用するためには • ほかのすべての責任分割型のUI設計パターンと同様に、さまざまな シナリオでMVVMパターンを効果的に適用する鍵は、正しいロール を適切にコードとして実装する方法を理解することと、それぞれの 責務がどうやって相互に対話するかをよく理解することです。 • 「各責務が何を担当するのか?」 •
「なぜそうするのか?」 • 「各責務はどうやって対話をするのか?」 • それらを知ることが、MVVMパターンを理解し、それぞれの開発案件に合わ せて応用できるようになることにつながるはずです。 • Prism開発ガイドより
39.
責務 • View • XAMLで記述され、UIの外観と構造を定義します。 •
基本UIのコードビハインドには、初期のInitializeComponentメソッド 以外何も記述されているべきではありません • ViewModel • プレゼンテーション・ロジックとステート(=状態)を持つ • Modelの公開するステートをいちいちラップしてViewに公開するのも ViewModelの役目 • Model • ビジネスドメイン。ビジネスドメインの状態も持つことになる。
40.
MVVM の sample •
HelloWorld程度でMVVMのメリットを享受することは難しいで すが、View 部分、ViewModel部分、Model部分がどのように分 割されているか慣れましょう Demo
41.
参考資料・サイト・文献 • @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
Télécharger maintenant