読者です 読者をやめる 読者になる 読者になる

INETA Day 2009に行ってきた

INETA Day 2009に行ってきました。

最近は仕事でもWPFを使ってたりするので、WPFSilverlight関連を中心に聴いてきました。

Dynamic Data お手軽プログラミング

Dynamic Dataというコーディングレスでデータベース管理ツールを作れる機能の紹介。

Dynamic Dataを普通に使うだけだといまいち使いにくいので、バリデータの機能をDataGridに適用したり、メタデータを適用して表示名やエラーメッセ時を変更したりする方法を紹介していました。

しかし、最初お客さんが少なくてビックリしました・・・

Prism ではじめる Silverlight LOB アプリケーション開発

Prismって最近よく聞くから、調べてみようと思っていたところだったので、渡りに船でした。

要はWPFSilverlightのアプリケーションを構築するモジュールを、複数人/複数拠点で開発するためのフレームワークなんですね。

  • シェルというメインページを領域に分割し、各領域にモジュールを割り当てていく。
  • モジュールはカタログに登録する。
  • ブートストラッパーでシェルを起動する。
  • モジュール間の通信にはイベントが使えないので、EventAgregatorやRegisterContext、共有サービスを利用する。
  • コマンドの代わりに添付プロパティで使用するDelegateCommandやCompositeCommandが用意されている。

XAMLではなくC#のコードをたくさん書かないといけないので、少々不便なところもありそうですが(特に通信周り)、複数人で開発できるとか試験がしやすくなるのは良さそうですね。

あと、内容には関係ないんだけど、デスクトップに並んでたアイコンがオシャレでよかったなぁ。

Silverlight カスタムコントロール開発

Silverlightでカスタムコントロールを開発する方法の紹介。

僕はたいていUserControlを派生させていたのですが、UserControlから派生する方法はカスタムデザインに向かないらしいです。

なので、大規模なカスタマイズをする場合はControlから派生させる、小規模なカスタマイズの場合は既存のコントロールから派生させるとのこと。

ただし、VSのデザイナの支援は得られないので、手作業でXAMLとコードを結合する必要がある。結合するにはThemes/generics.xamlにデザインを書き、DefaultStyleKeyで指定するか、XamlReaderでXAMLを動的に読み込むか。この辺は将来的に標準でサポートしてもらえるといいなぁ。

あと、テンプレート内に定義されているコントロールを取得するには、OnApplyTemplateをオーバーライドして、GetTemplateChildで取得するとのこと。これは知らなかった。ただし取得結果がnullかもしれないので、ちゃんとチェックする必要があるそうです。

WPF の新しいコントロール

WPFは、だいぶコントロールの種類が充実してきたし、M-V-VMというデザインパターンも出てきたしで、業務で使えるようになってきたよねというお話。

WPF ToolkitWPF Themesの紹介が中心でした。

チャートは今はプレビュー段階で6種類しかないけど、VS2010正式リリースのときには35種類が揃うんじゃないかとのこと。これは楽しみですね。

C# 4.0 と Visual Studio 2010 / .NET Framework 4.0

これはいいなと思った機能を羅列してみます。

  • スタートページ:よく使うプロジェクトをピン止め、カスタマイズできる
  • コードエディタ:拡大縮小、フローティング、呼び出し階層の表示、クラスやプロパティの自動生成
  • アーキテクチャエクスプローラ:クラスやメソッドの依存関係をグラフ化
  • UMLソースコードからシーケンス図の自動生成
  • デバッガ:変数の状態を付箋に貼れる、並行処理のデバッグ機能、デバッグ履歴
  • その他:UIテストや手動テストをサポートする機能

リリースが楽しみ!