タグ

mvvmに関するkadoppeのブックマーク (16)

  • 開発者が知っておくべき、6つのUIアーキテクチャ・パターン - @IT

    .NET開発者中心 厳選ブログ記事 開発者が知っておくべき、6つのUIアーキテクチャ・パターン ―― 「matarillo.com」より ―― 猪股 健太郎 2011/12/15 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。 Martin Fowler氏の『GUI Architectures』を訳して公開しようと思ったのだが、FAQページに「PofEAAの続編などは商業出版する予定なので翻訳はしないでほしい」と書いてある。なので翻訳の公開はやめて、「

  • 雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳

    Web の場合は View と Controller の違いははっきりしてます。 View は html ページとその作成を担当します。 CGI は アドレスとパラメーター(アドレスの ? の後など)を受け取り、処理を行います。 その受け取り部分が Controller です。 Model と View ではなく、なぜ MVC としたのでしょうか ? 『 GoF 』 では Controller を分ける利点をいくつか挙げられています。 キーボードの応答を変えたり、メニューからの呼び出しに変更するとき、表示方法を変更しなくていい。 入力イベントを無視するといったことをコントローラーのインスタンスの入れ替えで可能。 その他にも "View を入れ替えれば、 PC アプリ、 Web アプリでも使えるように" という理由もあります。 ちょっと無理そうな話ですが、例えば、 PC アプリが次のような

  • Model View ViewModel - Wikipedia

    Model-View-ViewModel概念図。直線は直接的なAssociationを表し、破線は(例えば)Observer パターンを経た間接的なAssociationを表す。 Model-View-ViewModel (MVVM、モデル・ビュー・ビューモデル) はUIを持つソフトウェアに適用されるソフトウェアアーキテクチャの一種である[1]。 MVVMはソフトウェアをModel・View・ViewModelの3要素に分割する。プレゼンテーションとドメインを分離し(V-VM / M)また宣言的Viewを分離し状態とマッピングを別にもつ(V / VM)ことでソフトウェアの保守性・開発生産性を向上させる。 Model-View-ViewModelパターンはModel-View-Controller (MVC) パターンの派生であり、特にPresentation Model[2] パターンを直

    Model View ViewModel - Wikipedia
  • MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(5/5) - @IT

    .NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? 尾上 雅則 2011/05/18 ■デザイナーと開発者の分業 「ViewとViewModelが、データ・バインドのみですべての対話を実現する」ということは、何をもたらすのでしょうか。 それはつまり、「ViewModelの仕様が決まっていれば、ViewとViewModelの分担開発が可能だ」ということです。逆にいえばそれは、ViewとViewModelの対話方法をデータ・バインドのみとしたMVVMパターンだからこそ可能なことです。 MVVMパターンでは、Viewに表示する情報はプロパティとしてViewModelが公開しますし、「Viewでダイアログを表示させたい」だとか、「Viewを画面遷移させたい」だとかいう揮発性のアクションを実現したい場合にはMessengerを使用します。ViewとVie

  • MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(4/5) - @IT

    .NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? 尾上 雅則 2011/05/18 ■Model Modelは、C#などの汎用プログラミング言語で記述され、ドメイン・ロジックとデータ、つまりはビジネス・ロジックとビジネス・ドメインのステートを持ちます。 ●Modelについてよくある誤解 ― ステートレス、サーバ側がModel、永続化層など Webシステムでよく採用される3層構造におけるデータ・アクセス層やビジネス・ロジック層の常識を、MVVMパターンのModelに持ち込むのはやめましょう。WPF/Silverlightなどのリッチ・クライアント世界のModelは、Webシステムのそれとは決定的に違います。決定的に違うのは、それはステートフルであることです。 多くのWebシステムのビジネス・ロジック層やデータ・アクセス層自体は、基的にステート

  • MVVMパターンでViewModelからViewを操作したい - the sea of fertility

    僕の結論。そんなの必要ない。 鍵を握るのはBlend付属アセンブリSystem.Windows.Interactivity.dllです。 ViewModelからViewを操作したい時のシナリオ パッと思いつくのは以下の3つでしょうか。 コマンドの実行前・実行後にアニメーションを実行する。アニメーションが終了してからコマンドを実行したい場合など。 ダイアログの表示。確認ダイアログ・ファイルを開くダイアログ等いろいろありますよね。 画面遷移。言わずもがな。 この3つ、Blend付属アセンブリSystem.Windows.Interactivityを使う事でビヘイビア(正確にはTriggerAction)の実装のみで可能です。コードビハインドも、Viewにインターフェースも、Messengerパターンも、ReverseCommandも必要ありません。 使用例 今回の例示で使用した全てのソース

  • MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(2/5) - @IT

    .NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? 尾上 雅則 2011/05/18 ■View XAMLで記述され、UIの外観と構造を定義します。基UIのコードビハインドには、初期のInitializeComponentメソッド以外何も記述されているべきではありません。これについては、『Prism開発ガイド』に以下のような記述があります。 ViewのコードビハインドにはIntializeComponentメソッドを呼び出すコンストラクタだけが含まれているのが理想的です。しかし、複雑に組み合わされたアニメーションや、Viewの一部の要素を直接操作する必要のある場面があった場合のように、視覚的な動作を実装するのに、XAML(Extensible Application Markup Language)で実現するのが難しいか、あるいは非効率な場面

  • MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(1/5) - @IT

    .NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? ―― 「the sea of fertility」より ―― 尾上 雅則 2011/05/18 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。 MVVM(Model-View-ViewModel)パターンに関する知見があちこちに散らばっているように見えるので、そろそろまとめてみることにしました。この記事は、MVVMの基的な考え方・実装方法などを把握されて

  • MVVMパターンでVMからVを操作する Prism編 - かずきのBlog@hatena

    Prismをダウンロードして、MVVMのサンプル実装を見てるとMVVMパターンなのにダイアログ出したりしてたので、どうやってるか見てみたら、便利なクラスが用意されてました。 定義されているアセンブリは Microsoft.Practices.Prism.Interactivity.dll です。 使うのは IInteractionRequestインターフェース InteractionRequestクラス(IInteractionRequestの実装) Notificationクラス(TitleとContentだけを持つシンプルなクラス) Confirmationクラス(Notificationクラスを拡張したもの) InteractionRequestTrigger です。 IInteractionRequestは、Raisedイベントを定義しているだけのシンプルなインターフェースです。I

    MVVMパターンでVMからVを操作する Prism編 - かずきのBlog@hatena
  • PrismのMVVM関連のクラスを使ってHello world - かずきのBlog@hatena

    Prismの最新バージョンからMVVMでの開発をサポートしてくれるようになりました。という話を聞いてPrismをダウンロードしてきてレッツトライ!としようと思うと、Bootstrapperがどうの、EventAggregaterがどうの、Regionがどうの、MEFがどうのUnityがどうのetc...と色々覚えないといけないおまけがついてくる割に、MVVM何処にあるんだ??という状態になってしまいます。 Prismは、使いこなすと便利なのですが、そういう便利クラスは置いておいて、MVVMの基クラスだけ拝借するのでしたら、以下で述べてるクラス群をチョイスして使うだけでOKです。 PrismでMVVM(Model View ViewModel)パターンのサポート用に用意されているクラスのまとめ ということでPrismを使ってMVVMをしようとする人がPrismの樹海に迷い込まないようにPr

    PrismのMVVM関連のクラスを使ってHello world - かずきのBlog@hatena
  • https://blog.okazuki.jp/entry/20101205/1291545730

  • MVVM:コードビハインドに記述しても良いと思う:Gushwell's Dev Notes

    Messengerを理解するために自作してみた(1)-(3) Messenger+Behaviorを理解するために自作してみた(1)-(3) でとりあえず、コードビハインドにコードを記述せずに、ViewModelからViewを操作する 方法については理解したつもりだけれど、 それでも、今の僕の経験と知識では、コードビハインドに次のようなコードを書いても、 良いんじゃないかなーと思ってます。 private void button1_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("実行しますか", "確認", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { vieewModel.Execute(); } } こう主張すると、 「コードビハインドにView以外のロ

  • 設計パターンのインフラ – Silverlight5のMVVMパターンサポートへの懸念 - the sea of fertility

    前述の記事の通りSilverlight5にはMVVMパターンサポートとして、イベントハンドラへのXAMLからの直接バインドが可能になるそうです。 こういうコードイメージになるんですかね。(このコードは実際には動作しません) 以前の記事ではあえて書きませんでした(Twitterでは愚痴りまくってました)が、私はこの機能の導入には絶対反対です。何故ならそれはMVVMパターンの思想と反しかねないからです。私は、MVVMパターンがパターン遵守へ誘導的なインフラストラクチャを持ちうるポテンシャルを持っている事を大きなメリットだと思っています。 パターン遵守へ誘導的な設計パターンのインフラストラクチャ MVC系に限らず、多くの設計パターンは習得にドキュメントやサンプルコードを読み込まねばなりません。 ドキュメントやサンプルコードへの理解の差が、コードの品質の差となって現れる事は良くありることです。

  • MVVM勉強会資料 - the sea of fertility

    第60回codeseek勉強会・第2回日C#ユーザー会勉強会 勉強会行ってきました。話してきました。 貫徹だったので頭がぼーっとしてましたが、なんとか喋りました。しかしその後の懇親会ではところどころ記憶が抜け・・。 @neueccさんのお宅で朝まで飲み。大人数で押しかけ申し訳ない。 しかし楽しかったー。 反省点 なによりも、タイムオーバーで尻切れになってしまいました。 話す前は時間意識してたんですが、デモプロジェクトフォントサイズ、マルチディスプレイの操作で苦戦。 操作に戸惑ってタイムオーバーとかないわぁ。。 一応、押しの方法。Prismの方法までは紹介できたので、なんとかといったところ。 必ずどこかでリベンジします。 資料 スライド(Office Web App) ViewModelからViewへのメッセージング手法 サンプルソース(Visual Studio 2010 WPFソリュ

  • MVVMパターンとイベント駆動開発、そしてMVC/MVP/PMパターンとの関係 – 何故MVVMなのか - the sea of fertility

    WPF/Silverlight開発において、イベント駆動開発じゃ何故いけないのか? MVC/MVP/PMパターンとMVVMはどう違うのか、どういったメリットがあるのか? そういう声を聴く機会は少なくありません。 MVVMパターンとイベント駆動開発、MVC/MVP/PMパターンとの関係について僕の理解をまとめました。 MVVMパターンをわざわざ適応する事に疑問がある方にはぜひ読んで欲しいと思っています。 また、このドキュメントを記述するにあたり@matarilloさん、@ufcppさん、@yfakariyaさん、諸先輩方3方に叩き台を見ていただき多くの指摘を頂くことができました。今回は頂いたフィードバックを受けて公開する形になっております。 押しつけがましくも一方的に依頼させていただいて、にも拘わらず非常に丁寧に様々な指摘・示唆を頂くことができました。 この場を借りてお礼申し上げます。ありが

  • WPF/MVVM の勉強を始めてみた - カタチづくり

    これはいいものだ。 わず嫌いだったと反省。もっと早くからちゃんと勉強するべきだったな、これは。一周遅れでようやくWPFの良さに気づきつつあります。 正直言ってあまりGUIに興味がなかったので、「ボタンを斜めに傾けてもしょうがないと思うしなー、別にアニメーションとか興味ないしなー、WPFはいいやー」と思ってた。 それがふとしたきっかけで尾上さんという方のブログ アプリ開発に必須なプログラム言語は!? – JavaやObjective-Cなど聞くけど、何が必須なの!? に載っているスライドを読んでみたら俄然興味が出てきて、今少しずつデータバインディングとかを実験してみているところ。GUIの見た目を派手にすることには全く興味がないんだけど、WPFの質ってそこ(だけ)じゃなかったんだね。オブジェクト指向設計とか関心の分離とかMVCパターンとかを踏まえた延長線上でちゃんと新しいGUIのプログラミ

    WPF/MVVM の勉強を始めてみた - カタチづくり
  • 1