• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
110625 わんくまlt tanaka733_pub
 

110625 わんくまlt tanaka733_pub

on

  • 1,152 views

 

Statistics

Views

Total Views
1,152
Views on SlideShare
1,152
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    110625 わんくまlt tanaka733_pub 110625 わんくまlt tanaka733_pub Presentation Transcript

    • 業務アプリでのSilverlight活用事例~Prismと Rx を使ってみた~
      田中 孝佳 (@tanaka_733)
    • 自己紹介
      (株)ワークスアプリケーションズ勤務
      国産ERPパッケージベンダー
      研究部門所属
      クラスタ
      仕事:AWS, Java, Eclipse, Oracle
      趣味: Azure, Silverlight, Windows Phone 7
      その他:低温物理, Scheme, Erlang
    • どんな仕事?
    • クラウド管理ツールでSilverlight使いました!
    • 出てきた問題点
      きっといいフレームワークがあるはず・・・
    • フレームワークを導入しました
    • アーキテクチャ図(クライアント側)
      Java
      (JAX-RS)
    • サーバーサイドとの通信
      RESTful API(JSON over HTTPS)を採用
      Silverlight側はHttpWebRequestを利用
      HTTP処理をクライアント側にする
      デフォルトのブラウザ側だとエラーコードやエラー時のレスポンスボディが取得できません
      英語の方が詳しい資料あり〼
      http://msdn.microsoft.com/en-us/library/dd920295%28v=vs.95%29.aspx
    • Prismとは
      MVVMサポート、DI(MEF, Unity)など複数の機能をもった大きなフレームワーク
      http://compositewpf.codeplex.com/
      ドキュメントも結構充実している
      英語だけど
      MVVMのサポートが充実
      今日の講師の方のブログなどでも勉強
      (個人的には)必要な部分だけ使えばいいと判断しました
    • Prismの導入効果
    • ViewModelのサンプル
      用意されている基底クラスを
      継承
      プロパティ変更イベントの発火
      コードテンプレートを定義しておくと便利
    • View
    • ViewModelとEventAggregator
      DI的にIEventAgregatorを注入
      デザイン時にBindingするために
      引数なしコンストラクタが必要だった
    • Rxの導入効果・・・の前に、それ以前の状態
    • いけてないコード その(1)
      Event方式(WebClientと同様)
      よく見かけるけどコーディングが面倒
    • いけてないコード その(2)
      取得した後の処理をAction<T>として渡す
      失敗時もあるので、引数は2つ使いづらい
    • Rxというものを知りました
      AWS SDK for WP7というブログを書いたときにneueccさんにコメントを頂きました
    • Rx
      非同期をLINQ的に簡単に
      参考にさせてもらった資料
      http://www.slideshare.net/neuecc/reactive-extensions-8049041
      C# 5.0 async CTPもあるけどCTPだし、5.0のリリース時期も読めない・・・
      WP7では最初からRxがライブラリに入ってる
      Data Developer Center入りして開発プロジェクトとしても継続されそう
    • Rxを採用しよう
      通信部分の返り値は全てIOveservable<T>にする
      呼び出し側はこんな感じ
      メソッドチェーンかつラムダ式なのは好みです
    • Rxを採用しよう
      通信部分はこんな感じ
    • まとめ
    • おまけ(という名の宣伝)
      ブログ書いてます
      (会社のブログ)
      http://dev.worksap.co.jp/Members/t_tanaka/
      AWS, Javaネタがメイン。一部Silverlightネタ
      (個人ブログ)
      http://tanaka733.blogspot.com/
      Silverlight, Azure, WP7ネタメイン