110409 silverlight square_lt_pub

  • 851 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
851
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 田中 孝佳 (@tanaka_733)
    2011/04/09
    1
    Javaプログラマが
    Silverlightを使ってみた
    SilverlightとTomcatの
    インターオペラビリティ
  • 2. 自己紹介
    ㈱ワークスアプリケーションズ所属
    ERPパッケージの会社です
    研究部門 クラウド担当
    AWSを主に触る (jawsugコアメンバー)
    AzureやNiftyも調査中
    個人的にはAzureも触りたい
    業務ではJava、Silverlightメイン
    半分趣味でWP7も
    2011/04/09
    2
  • 3. 業務アプリのSilverlight実用例
    社内製のクラウド管理ツールWc3のフロント
    2011/04/09
    3
  • 4. Wc3って?
    クラウドを使いやすくするツール
    今のところAWSにのみ対応
    必要があればマルチクラウド対応も
    ベンダー提供のAPIを使ってスケジュール操作、グルーピングを行う
    詳細に知りたい方はJAWS-UGでの発表資料をどうぞ
    http://www.slideshare.net/tanakata/aws-sdk-for-java-wc3
    2011/04/09
    4
  • 5. Wc3を担当する前(約1年前)
    2011/04/09
    5
  • 6. で、上司からこんなことを言われました
    2011/04/09
    6
    クラウド管理ツールを担当してほしい
  • 7. で、感じたこと
    2011/04/09
    7
  • 8. そうだ、Silverlightにしよう
    2011/04/09
    8
  • 9. サーバーサイドは都合によりJavaで・・・
    組織としてみれば、サーバーサイドはJavaの方が得意
    こちらまで.NETにするのは抵抗があった
    クライアントについてはほぼWindows OSなのでOKが出やすかった
    クロスブラウザ問題を容易に解決できる
    2011/04/09
    9
  • 10. サーバーサイドJavaとSilverlightの組み合わせ方
    2011/04/09
    10
  • 11. (参考) RESTfulとは
    厳格なRESTfulは意外と面倒
    今回使ったのは JSON over HTTP(S)
    広義のRESTful
    URIにGET/POSTしてJSONを取得
    リクエストごとに認証し、セッションやCookieを持たない
    これは設計者の意向次第な面もある
    2011/04/09
    11
  • 12. こういう仕組みになります
    2011/04/09
    12
    EC2
    社内
    AP
    Web
    クライアント
    DB
    JSON
    over HTTP(S)
    xap
    JDBC
    Query
    Cloud Srevice endpoint
  • 13. SilverlightでのRESTful APIの呼び出し方
    WebClient or HttpWebRequestを利用
    APIは全て非同期です
    JSONオブジェクト変換はDataContractJsonSerializerを利用
    System.ServiceModel.Webを参照に追加
    2011/04/09
    13
  • 14. サンプルコード
    2011/04/09
    14
  • 15. はまったこと(1)
    DateTime型の扱い
    Java(java.util.Date)とSilverlightで異なる
    Javaはミリ秒単位
    Java側のJSONライブラリがlong値で返す
    起点は1970/1/1 00:00:00 GMT
    Silverlight(.NET)はタイマー刻み
    起点は A.D. 1/1/1 00:00:00
    Silverlight側で吸収してみる
    2011/04/09
    15
  • 16. サンプルコード
    2011/04/09
    16
  • 17. サンプルコード
    2011/04/09
    17
  • 18. はまったこと(2)デバッグは?
    JavaをEclipseSilverlightをVisualStudioで開発
    EclipseからAPサーバーをデバッグ起動
    VisualStudioからIISをデバッグ実行
    xapを提供するだけのサーバー
    リクエストはローカルのAPに投げる
    Eclipse側にclientaccesspolicy.xmlを配備
    ポートが違うとクロスドメインアクセスです
    2011/04/09
    18
  • 19. はまったこと(3)URLエンコード
    パラメーターを渡す場合にURLエンコードが必要なことがある
    Silverlight(HttpUtility.UrlEncode)
    ほげ %e3%81%bb%e3%81%92
    Java(UrlEncoder.encode)
    ほげ%E3%81%BB%E3%81%92
    2011/04/09
    19
    16進表記の英字の大文字・小文字の違い
  • 20. RFC的には大文字が推奨です
    RFC 3986 2.1節より
    自前で実装するか、System.UriクラスのEscapeDataStringメソッドが使えます
    EncodingはUTF-8固定です
    2011/04/09
    20
  • 21. その他
    DIするためにPrism (Patterns & Practices)使ってます
    http://compositewpf.codeplex.com/
    UnitTestが充実していない
    こちらも情報ほしい
    無償で使える範囲でがんばってます
    BlendSDKは導入してます
    Expression Blendは試用中
    2011/04/09
    21
  • 22. ということなどをブログに書いてます
    http://dev.worksap.co.jp/Members/t_tanaka/
    2011/04/09
    22
  • 23. 2011/04/09
    23
    ご清聴ありがとうございました