SlideShare a Scribd company logo
1 of 23
Download to read offline
SilverlightとTomcatの
インターオペラビリティ


田中 孝佳 (@tanaka_733)

                      2011/04/09   1
   ㈱ワークスアプリケーションズ所属
     ERPパッケージの会社です
     研究部門 クラウド担当
   AWSを主に触る (jawsugコアメンバー)
     AzureやNiftyも調査中
     個人的にはAzureも触りたい
   業務ではJava、Silverlightメイン
     半分趣味でWP7も
                              2011/04/09   2
   社内製のクラウド管理ツールWc3のフロント




                   2011/04/09   3
   クラウドを使いやすくするツール
     今のところAWSにのみ対応
     必要があればマルチクラウド対応も
     ベンダー提供のAPIを使って
      スケジュール操作、グルーピングを行う
   詳細に知りたい方はJAWS-UGでの
    発表資料をどうぞ
     http://www.slideshare.net/tanakata/aws
      -sdk-for-java-wc3

                                  2011/04/09   4
Javaメインのプログラマ

• サーバーサイドは得意

• UIはEclipse RCP形式とか
 HTML+Javascript+Servletとか

.NETはActiveDirectory管理で触ったくらい

                             2011/04/09   5
クラウド管理ツールを
  担当してほしい



        2011/04/09   6
管理ツールは使い勝手がよくないと
使ってもらえない


  従ってUI・UXが重要



    JavaのUI作成は大変・クロスブラウザも大変



      しかもかけられる工数は限られている

                          2011/04/09   7
MVVMモデルの優位性

• 実はEclipseプラグインもMVVMに近いモデル

.NETの優位性

• 第一級のeventオブジェクト+LINQ、ラムダ式などの要素

Visual Studioの優位性

• 無償で使える強力なUI開発ツール

                              2011/04/09   8
   組織としてみれば、
    サーバーサイドはJavaの方が得意
     こちらまで.NETにするのは抵抗があった
   クライアントについては
    ほぼWindows OSなのでOKが出やすかった
     クロスブラウザ問題を容易に解決できる



                        2011/04/09   9
Silverlightバイナリの公開方法

• Servletから見れば静的コンテンツとして公開

クライアント・サーバー間の通信方法

• 今回は広義なRESTfulなAPIを採用

• SOAPとかもあるけど、
 実装容易性・軽量性を考慮して却下
                         2011/04/09   10
   厳格なRESTfulは意外と面倒
   今回使ったのは JSON over HTTP(S)
     広義のRESTful
     URIにGET/POSTしてJSONを取得
   リクエストごとに認証し、
    セッションやCookieを持たない
     これは設計者の意向次第な面もある


                              2011/04/09   11
クライアント                  Web         AP                DB
            JSON        xap
         over HTTP(S)                         JDBC




  社内                              EC2 Query

                              Cloud Srevice
                                endpoint
                                         2011/04/09        12
   WebClient or HttpWebRequestを利用
     APIは全て非同期です
   JSONオブジェクト変換は
    DataContractJsonSerializerを利用
     System.ServiceModel.Web を参照に追加




                               2011/04/09   13
2011/04/09   14
   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
2011/04/09   16
2011/04/09   17
   JavaをEclipse
    SilverlightをVisualStudioで開発
   EclipseからAPサーバーをデバッグ起動
   VisualStudioからIISをデバッグ実行
     xapを提供するだけのサーバー
     リクエストはローカルのAPに投げる
   Eclipse側にclientaccesspolicy.xmlを配備
     ポートが違うとクロスドメインアクセスです
                               2011/04/09   18
   パラメーターを渡す場合に
    URLエンコードが必要なことがある
   Silverlight(HttpUtility.UrlEncode)
     ほげ %e3%81%bb%e3%81%92
   Java(UrlEncoder.encode)
     ほげ %E3%81%BB%E3%81%92

      16進表記の英字の大文字・小文字の違い
                                    2011/04/09   19
   RFC 3986 2.1節より
   自前で実装するか、System.Uriクラスの
    EscapeDataStringメソッドが使えます
     EncodingはUTF-8固定です




                           2011/04/09   20
   DIするためにPrism (Patterns & Practices)
    使ってます
     http://compositewpf.codeplex.com/
   UnitTestが充実していない
     こちらも情報ほしい
   無償で使える範囲でがんばってます
     BlendSDKは導入してます
     Expression Blendは試用中
                                     2011/04/09   21
http://dev.worksap.co.jp/Members/t_tanaka/
                                2011/04/09   22
2011/04/09   23

More Related Content

What's hot

Jakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 MayJakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 MayYoshio Terada
 
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンAkira Inoue
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsKazuhiro Sera
 
OWIN って何?
OWIN って何?OWIN って何?
OWIN って何?miso- soup3
 
Java on Microsoft Azure
Java on Microsoft AzureJava on Microsoft Azure
Java on Microsoft AzureYoshio Terada
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...Insight Technology, Inc.
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発tak-nakamura
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship ProgramBehind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship ProgramLINE Corporation
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤Godai Nakamura
 

What's hot (11)

Jakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 MayJakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 May
 
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
 
OWIN って何?
OWIN って何?OWIN って何?
OWIN って何?
 
Java on Microsoft Azure
Java on Microsoft AzureJava on Microsoft Azure
Java on Microsoft Azure
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship ProgramBehind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 

Similar to 110409 slintky lt

110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pubTakayoshi Tanaka
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
110409 silverlight square_lt_pub
110409 silverlight square_lt_pub110409 silverlight square_lt_pub
110409 silverlight square_lt_pubTakayoshi Tanaka
 
110216 jawsug lt by t_tanaka_wap
110216 jawsug lt by t_tanaka_wap110216 jawsug lt by t_tanaka_wap
110216 jawsug lt by t_tanaka_wapTakayoshi Tanaka
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web IntegrationKazuchika Sekiya
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターンKuniteru Asami
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe APImaruyama097
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APImaruyama097
 
Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Shotaro Suzuki
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発tomotoshi
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSatoshi Kisanuki
 
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~Oda Shinsuke
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 

Similar to 110409 slintky lt (20)

110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
110409 silverlight square_lt_pub
110409 silverlight square_lt_pub110409 silverlight square_lt_pub
110409 silverlight square_lt_pub
 
110216 jawsug lt by t_tanaka_wap
110216 jawsug lt by t_tanaka_wap110216 jawsug lt by t_tanaka_wap
110216 jawsug lt by t_tanaka_wap
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
Springの今
Springの今Springの今
Springの今
 
Spring Boot概要
Spring Boot概要Spring Boot概要
Spring Boot概要
 
20100218
2010021820100218
20100218
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe API
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
 
Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
20080213
2008021320080213
20080213
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

110409 slintky lt

  • 2. ㈱ワークスアプリケーションズ所属  ERPパッケージの会社です  研究部門 クラウド担当  AWSを主に触る (jawsugコアメンバー)  AzureやNiftyも調査中  個人的にはAzureも触りたい  業務ではJava、Silverlightメイン  半分趣味でWP7も 2011/04/09 2
  • 3. 社内製のクラウド管理ツールWc3のフロント 2011/04/09 3
  • 4. クラウドを使いやすくするツール  今のところAWSにのみ対応  必要があればマルチクラウド対応も  ベンダー提供のAPIを使って スケジュール操作、グルーピングを行う  詳細に知りたい方はJAWS-UGでの 発表資料をどうぞ  http://www.slideshare.net/tanakata/aws -sdk-for-java-wc3 2011/04/09 4
  • 5. Javaメインのプログラマ • サーバーサイドは得意 • UIはEclipse RCP形式とか HTML+Javascript+Servletとか .NETはActiveDirectory管理で触ったくらい 2011/04/09 5
  • 7. 管理ツールは使い勝手がよくないと 使ってもらえない 従ってUI・UXが重要 JavaのUI作成は大変・クロスブラウザも大変 しかもかけられる工数は限られている 2011/04/09 7
  • 9. 組織としてみれば、 サーバーサイドはJavaの方が得意  こちらまで.NETにするのは抵抗があった  クライアントについては ほぼWindows OSなのでOKが出やすかった  クロスブラウザ問題を容易に解決できる 2011/04/09 9
  • 11. 厳格なRESTfulは意外と面倒  今回使ったのは JSON over HTTP(S)  広義のRESTful  URIにGET/POSTしてJSONを取得  リクエストごとに認証し、 セッションやCookieを持たない  これは設計者の意向次第な面もある 2011/04/09 11
  • 12. クライアント Web AP DB JSON xap over HTTP(S) JDBC 社内 EC2 Query Cloud Srevice endpoint 2011/04/09 12
  • 13. WebClient or HttpWebRequestを利用  APIは全て非同期です  JSONオブジェクト変換は DataContractJsonSerializerを利用  System.ServiceModel.Web を参照に追加 2011/04/09 13
  • 15. 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
  • 18. JavaをEclipse SilverlightをVisualStudioで開発  EclipseからAPサーバーをデバッグ起動  VisualStudioからIISをデバッグ実行  xapを提供するだけのサーバー  リクエストはローカルのAPに投げる  Eclipse側にclientaccesspolicy.xmlを配備  ポートが違うとクロスドメインアクセスです 2011/04/09 18
  • 19. パラメーターを渡す場合に URLエンコードが必要なことがある  Silverlight(HttpUtility.UrlEncode)  ほげ %e3%81%bb%e3%81%92  Java(UrlEncoder.encode)  ほげ %E3%81%BB%E3%81%92 16進表記の英字の大文字・小文字の違い 2011/04/09 19
  • 20. 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