++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

ICustomTypeProvider、MVVM、F# Tools Update、etc.

leave a comment »

ちょっと普段の「一言だけの紹介」と違って、少々説明つけておきたいのがあったんで、別建てに↓。

ICustomTypeProvider

Silverlight 5 には、ICustomTypeProvider っていうインターフェイスが新たに入るらしい。

ICustomTypeDescriptor ではなく

あれ?なんかそんなの、WPF(というか、デスクトップの方の .NET)には最初から入ってなかったっけ?って思ったら、それは ICustomTypeDescriptor インターフェイスだった。

新しく「Provider」を作った理由は、「Descriptor」が返す PropertyDescriptor とかが、リフレクションの PropertyInfo とかと duplicated (無駄に重複)だから。

「WPF の方にも将来的に追加するつもりだけども、Silverlight 5 の方がリリース時期的に前にあるだけ」とのこと。

DLR (だけ)ではダメなの?

明確な型情報を動的に追加できるというのが重要。

データバインディングの場合、TextBox とかへのバインディングを行うことで、string からの型変換がバックで動いているわけですが、ExpandoObject とかだと string のまま値が渡ってくる。

ICustomTypeProvider を使って型情報自体を書き換えることで、ちゃんと型変換が動いてくれる。

MVVMがらみ

2件ほど、MVVMがらみで。

1個目

ViewModel INotifyPropertyChanged Code Generation

ViewModelを、

  • partial class にしておく
  • プロパティ名とかを属性として付けておく

としておくと、

  • T4 テンプレートで INotifyPropertyChanged による更新通知に対応したプロパティを自動生成してくれる

という代物。

こういう T4 の使い方もあるんだなぁ。

2個目

ViewModelDiagram インストーラ版 1.1.0.0 改修しました。

かねてから、「ViewModel の実装は面倒だけども、AOP 的アプローチは個人的にいまいちだし、動的プロキシはパフォーマンスとか型安全性で難ありだし・・・ 理想は DSL、現状だと DSL Tools 辺りでやるべき?」などと言っていたら、えむナウさんがやってくれました。

何気に、ugaya40 さんの Livet にも対応しているらしい。

Written by ufcpp

2011年5月6日 @ 23:31

カテゴリー: .NET

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。