110625 わんくまlt tanaka733_pub

1,141 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,141
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

110625 わんくまlt tanaka733_pub

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

×