タグ

ブックマーク / ugaya40.net (6)

  • 「MVVMのメリット・デメリットを見つめなおす」を読んで - the sea of fertility

    僕はGoogleTwitter検索で定期的にMVVMというキーワードで検索を行っています。 そこでこんな素敵な記事を見つけました。 MVVMのメリット・デメリットを見つめなおす wave1008の日記 http://d.hatena.ne.jp/wave1008/20110227 基的にMVVMパターンの大目標(ドメインロジックとプレゼンテーションロジックの分離)には賛同されているものの、ビヘイビアやコマンドの仕様には否定的な記事です。書かれている内容は非常に説得力があり、素晴らしい記事です。驚くほどこういった記事は少ないので、大変勉強になりました。是非皆さんも一読してみてください。 素晴らしい突込みとは思うのですが、一年以上MVVMを追い続けた人間として素直にこの内容の視点に賛同できるというわけではないので、少し僕の考え方を書いてみたいと思います。 反論の前提として、僕はMVVMイン

  • MVVMパターンの適応 – 2011年のMVVMパターンの常識 - the sea of fertility

    MVVMパターンに関する認識・知見があちこちに散らばっているように見えるので、そろそろまとめてみる事にしました。この記事は、他の各サイトの記事などでMVVMの基的な考え方・実装方法などを把握されている方が対象です。 そういった方がMVVMパターンを実務に適応してみようと思った時や、MVVMパターンを要件に合わせてカスタマイズしていく際に、認識すべきパターンの実装方式のそもそもの理由と考え方、要件に合わせて考えていかなければならないポイントを把握する助けとなる情報を提供するのを目的としてこの記事を書きました。(文字ばかりですいません><) MVVMの実装の各要素の実装をこねくりまわすばかりで、その過程でパターンを把握している気になって、パターンの来の目的を破壊してしまうような実装を推奨してしまっている人も見ます。そんな滑稽な事をしない認識を持って欲しいのです。 MVVMパターンは、WPF

  • WPF/Silverlight/Windows Phone共通WeakEvent機構 - the sea of fertility

    この記事はSilverlight Advent Calender 2011の12/11分の記事です。前日は@neueccさんの.NETの標準シリアライザ(XML/JSON)の使い分けまとめでした。 WeakEventとは? WeakEventとはイベントハンドラの解除忘れによるメモリリークが発生しないイベント機構の事です。 .NETでメモリリークが発生する主要要因の一つとして、イベント受信側クラスがイベントハンドラの登録を解除しない事で発生するメモリリークが挙げられます。ステートレスなWebプラットフォーム上ではほとんど発生を考慮しなくて良い問題ですが、ステートフルなリッチクライアントではよく問題になります。WeakEvent機構はそのためのソリューションの一つとしてもともとはWPF用に用意されていた機構です。その証拠に.NET4ではWeakEventManagerなどのWeakEvent

  • Livet - the sea of fertility

    Livet WPF4 MVVM インフラストラクチャ ProjectHome : http://ugaya40.net/livet SourceCode : https://bitbucket.org/ugaya40/livet/ Livetの概要と導入方法 LivetはWPF4のためのMVVM(Model/View/ViewModel)パターン用インフラストラクチャです。.NET Framework 4 Client Profile以上で動作し、zlib/libpngライセンスで提供しています。zlib/libpngライセンスでは、ライブラリとしての利用に留めるのであれば再配布時にも著作権表示などの義務はありません。しかし、ソースコードを改変しての再配布にはその旨の明示が義務付けられます。 Livetの目指すところ 現在、WPFでMVVMパターンによる実装を行うにはインフラストラクチャの

  • MVVMパターン学習のファーストステップ – 何をどこまで勉強するか - the sea of fertility

    よくTwitter上などでMVVMパターンの学習は難しいという話を聞きます。最近その理由と認識のずれが少しづつ解ってきたので、書いてみる事にしました。 ネット上には様々なサンプルコードがありますが、「MVVMパターンを使う」という視点で学習する場合、用意した開発環境によって学習する事は異なってきます。 何故なら、設計パターンの思想の再現度は「その設計パターンのためのライブラリと環境」によって大きく異なるものだからです。 ASP.NET MVCが導入できない状況でASP.NET MVCをやろうとしますか?。そんな事をしようとすると業務ドメインのロジックに注力するどころか、MVCの概念を正しく理解しているのはもちろんの事、ASP.NETパイプラインの仕様に詳しく精通している必要もあります。他の環境(例えばRubyにおけるRails)でMVC補助がどうやって成立しているかも踏まえた上でインフラス

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

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

  • 1