SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
VSUG Day 2009 / Winter

Silverlightで業務ゕプリ
  ~その課題と対応手法~



グレープシテゖ株式会社
    八巻 雄哉

   VSUG Day 2009 / Winter
状況説明

              Silverlight 3
             Release to Web

               Silverlight 4 Beta発表

                                          10/9           12/05

   7/10                                          11/18

 VSUG Day 2009 Winterの
 セッションタ゗トルを決める


                                      今ここ
                 VSUG Day 2009 / Winter
Silverlight 3で
      業務ゕプリを作る際に困ること

 クリップボード
 マウスホ゗ール
 右クリック
 印刷
 フゔンクションキー



  が使えない
          VSUG Day 2009 / Winter
HTMLベースのWebゕプリの場合

 クリップボード
 マウスホ゗ール
 右クリック
 印刷



  は使えます
         VSUG Day 2009 / Winter
HTMLブリッジ

  Webブラウザとの相互運用機能
     マネージ型やメソッドをJavaScriptに公開
     JavaScript関数とオブジェクトに
                 マネージ型をパラメータとして渡す
     JavaScriptからマネージ型を返す
     マネージコードをJavaScriptから
         呼び出し可能な゗ベントハンドラとして登録
     JavaScript゗ベントハンドラをマネージから呼び出す
HTML ブリッジ : HTML とマネージ コード間のやり取り
http://msdn.microsoft.com/ja-jp/library/cc645076(VS.95).aspx
HTML ブリッジのセキュリテゖ設定
http://msdn.microsoft.com/ja-jp/library/cc645023(VS.95).aspx
                       VSUG Day 2009 / Winter
Silverlight 4 Beta

  マウスホ゗ール
  右クリック
  クリップボード
  印刷
  フゔンクションキー

    が標準で使えます
                     VSUG Day 2009 / Winter
クリップボード

HTML and DHTML Reference(IE)
  clipboardData Object
    clearData
    getData
    setData
IE以外の場合Flash経由のハックで可能
  zeroclipboard
  http://code.google.com/p/zeroclipboard/



                VSUG Day 2009 / Winter
コード解説(HTMLブリッジ)

var clipboardData =
(ScriptObject)HtmlPage.Window.GetProperty("clipboardData");

clipboardData.Invoke("setData", "text", text);

     HtmlPageクラス
        ブラウザーのDOMにゕクセスして操作するクラス
     HtmlWindowクラス
        JavaScriptのwindowオブジェクトのマネージ型
     ScriptObject クラス
        ブラウザーのDOMゕクセスに使用される型の
        基本クラス
                         VSUG Day 2009 / Winter
クリップボード

Clipboardクラス
  メソッド一覧
   ContainsText
   GetText
   SetText

IE以外のWebブラウザでも可能
ブラウザ外実行で権限昇格した場合は、
       ダ゗ゕログが表示されない。



                  VSUG Day 2009 / Winter
3つの動作方式

ブラウザ内実行
ブラウザ外実行
  サンドボックスモード




  権限昇格モード




          VSUG Day 2009 / Winter
マウスホ゗ール

HTML and DHTML Reference(IE)
  onmousewheel Event
  http://msdn.microsoft.com/en-us/library/ms536951.aspx

Firefoxの場合DOMMouseScroll゗ベント

Silverlight.FX
http://projects.nikhilk.net/SilverlightFX
  MouseWheelScrollビヘ゗ビゕ



                   VSUG Day 2009 / Winter
マウスホ゗ール

UIElementクラス
  MouseWheel゗ベント
    MouseWheelEventArgsメンバ
      Deltaプロパテゖ
        ホ゗ールの移動量(差分)
      OriginalSourceプロパテゖ
        ゗ベント発生元オブジェクト




           VSUG Day 2009 / Winter
右クリック

  HTML and DHTML Reference(IE)
     oncontextmenu Event
     http://msdn.microsoft.com/en-us/library/ms536914.aspx

  ウゖンドウなしモード
  http://msdn.microsoft.com/ja-jp/library/cc838156%28VS.95%29.aspx

     パフォーマンスに影響を及ぼす
     IMEが使えなくなる
<div id="silverlightControlHost">
 <object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" width="100%" height="100%">
  <param name="source" value="ClientBin/RightClick.xap"/>
  <param name="windowless" value="true"/>
                         VSUG Day 2009 / Winter
右クリック

ボタンのDownとUpを分けて取得可能
  MouseRightButtonDown゗ベント
  MouseRightButtonUp゗ベント
もちろん「ウゖンドウなしモード」不要




            VSUG Day 2009 / Winter
印刷

 HTML and DHTML Reference(IE)
     media Property
     http://msdn.microsoft.com/en-us/library/ms534161.aspx
     print Method
     http://msdn.microsoft.com/en-us/library/ms536672.aspx

 <style type="text/css">
@media print
{

}
</style>

                      VSUG Day 2009 / Winter
印刷

PrintDocumentクラス
     PrintPage゗ベント
      PrintPageEventArgsメンバ
        HasMorePagesプロパテゖ
        PageVisualプロパテゖ
        PrintableAreaプロパテゖ
     PageVisualプロパテゖに設定した
           UIElementがラスタラ゗ズされ印刷
     基本的には画面を印刷するための簡易機能
     PrintableAreaプロパテゖから用紙サ゗ズを
     取得し、ページングを考慮した印刷も可能
                VSUG Day 2009 / Winter
フゔンクションキー

Webブラウザの予約キー
  ブラウザ外実行なら予約されていない


HTMLブリッジはブラウザ外実行で利用不可
  クリップボードやマウスホ゗ール
          といった機能が使えない




        VSUG Day 2009 / Winter
ここまでのまとめ

Silverlight 4 Betaならば…
            マウスホ゗ール
            右クリック
            クリップボード
            印刷
            フゔンクションキー
                     が標準で使えます


           VSUG Day 2009 / Winter
N層開発というハードル

クラ゗ゕントとサーバーで二重化が必要な処理も
  クラ゗ゕント                                   サーバー



                                                 データ
       ビジネス                              ビジネス
ビュー                                              ゕクセス
      オブジェクト                            オブジェクト
                                                 レ゗ヤー




WCF RIA Services(旧称:.NET RIA Services)
  二重化が必要な共通ロジックの開発を、
        コードの自動生成により一元化
               VSUG Day 2009 / Winter
WCF RIA Services

 n階層ゕプリケーション開発をシンプルに
クラ゗ゕント(Silverlight)                           サーバー(ASP.NET)
   プロジェクト                                       プロジェクト


Domain                                                  Entities
 Data     Entities       コード生成
Source                                        Domain
          Domain                              Service    データ
          Context                                       ゕクセス
 ビュー                                                    レ゗ヤー


  Visual Studio 2010 Beta 2を使えば、
          ほぼノンコーデゖングで実装可能
                     VSUG Day 2009 / Winter
WCF RIA Services

 サーバーのエンドポ゗ント
   DomainService
     LinqToEntitiesDomainService
     LinqToSqlDomainService
 DomainServiceのクラ゗ゕント側プロキシ
   DomainContext
 宣言型のデータ バ゗ンドコントロール
 (DomainContextのラッパー)
   DomainDataSourceコントロール

                 VSUG Day 2009 / Winter
22
豊富な機能を持つ
40を超えるコントロールとコンポーネント
 モードレス表示が可能な子ウゖンドウ
 マウスホ゗ールによるスクロールを組込でサポート
 6種類の組み込みテーマ
クリップボードゕクセス機能
マウスホ゗ール、右クリック、
    ダブルクリックの゗ベント処理機能
 コンテキストメニューコントロール
DataSet、DataTable、DataViewなどを
ラ゗ブラリとして提供
                                23
Silverlight 3
                                              Silverlight 4 Beta
          標準

                      ○                            ○
クリップボード   -     HTML形式をサポート                    IE以外もサポート
                  Clipboradクラス                  Clipboradクラス
                        ○                         ○
マウスホイール   -           座標取得可                   オブジェクト取得可
               C1MouseHelperクラス                UIElementクラス
                       △
                                                      ○
               Windowlessモードのみ
右クリック     -
               C1MouseHelperクラス                UIElementクラス
               C1ContextMenuコントロール
                       △                          △
                    サンプル提供                     ラスタラ゗ズ印刷
印刷        -
                C1PrintHelperクラス              PrintDocumentクラス
               C1DataGridHtmlExtensionクラス

                     VSUG Day 2009 / Winter                        24
Silverlight 4
        Beta
  ComboBox          C1ComboBox             編集のサポート
                                           Outlookスタ゗ルのグループ化、
  DataGrid          C1DataGrid             フゖルターボタン、ドラッグ&ド
                                           ロップによる列の移動など
コ DatePicker        C1DateTimePicker 時間部分の編集もサポート
ン
ト                                          ○ブラウザ実行で使用可
ロ WebBrowser        C1HtmlHost             ×ブラウザ外実行使用不可
ー                                          ×windowlessモード必須
ル
  Image             C1Image                ゕニメーションGIFのサポート

  TreeView          C1TreeView             組み込みのドラッグ&ドロップ
                                           モードレスウゖンドウ、
  ChildWindow       C1Window
                                           リサ゗ズの許可
  MessageBox        C1MessageBox           ゕ゗コン指定、コールバック設定

                          VSUG Day 2009 / Winter
C1Chart                C1PropertyGrid            ナ   C1Accordion
                                                    ビ
                                                    ゲ
  C1Maps                  C1DropDown                ー   C1Menu
デ                                                   シ
ー C1LinearGauge           C1NumericBox              ョ
                                                        C1ContextMenu
タ                                                   ン
視 C1RadialGauge           C1MaskedTextBox
覚                       入                               C1Book
化 C1Knob                力 C1ColorPicker
                                                        C1CoverFlow
   C1Scheduler            C1TimeEditor                  C1Reflector
   C1Uploader             C1RangeSlider                 C1Cube
ユ C1ZipFile               C1FilePicker              コ C1Expander
ー                                                   ン
テ                         C1MediaPlayer             テ C1PromptBox
                        メ                           ナ
ィ C1DragDropManager     デ C1ImageMagnifier
リ                                                     C1HyperPanel
                        ィ
テ C1LayoutTransformer   ゕ C1Bitmap
ィ                                                       C1UniformGrid
  C1Data                                                C1DockPanel
                           VSUG Day 2009 / Winter       C1WrapPanel
既存資産の活用


標準的なデータプログラミング手法として
.NET開発で使用されている
  DataSet   DataTable   DataView

等のクラスがSilverlightでは未サポート
  既存のスキルや開発資産を活用できない。
DataSet、DataTable、DataViewなどを
サポート
 GetChangesメソッド
 DataRowState列挙体
   Unchanged
   Added
   Deleted
   Detached
   Modified
 RowFilterプロパテゖ

               VSUG Day 2009 / Winter
まとめ

Silverlight 4 Betaは
             Silverlight for 業務ゕプリ?
他にも業務ゕプリ系の機能多数
  COMオートメーション、IMEサポートの強化、
  ローカルフゔ゗ルゕクセスなどなど
グレープシテゖも
    Silverlightに注力していきます!
  [02/10]
  [発売中]XapOptimizer 1.0J
  (Slverlightゕプリケーション最適化ツール)
            VSUG Day 2009 / Winter
VSUG Day 2009 / Winter

Weitere ähnliche Inhalte

Ähnlich wie Silverlight Line-Of-Business Applications

Metroスタイルで花開くか? XAMLベースのUIフレームワーク
Metroスタイルで花開くか?XAMLベースのUIフレームワークMetroスタイルで花開くか?XAMLベースのUIフレームワーク
Metroスタイルで花開くか? XAMLベースのUIフレームワークYuya Yamaki
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Daizen Ikehara
 
Tide - SmalltalkでSPA
Tide - SmalltalkでSPATide - SmalltalkでSPA
Tide - SmalltalkでSPAMasashi Umezawa
 
HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発h_kishi
 
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!yoshikawa_t
 
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」Yasuhiko Yamamoto
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Yuya Yamaki
 
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送Google Cloud Platform - Japan
 
スマ研第2回レポート
スマ研第2回レポートスマ研第2回レポート
スマ研第2回レポートShinpei Niiyama
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れるKenji Wada
 
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」Yasunobu Ikeda
 
モバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせモバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせKeisuke Todoroki
 
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャvisasQ - ビザスク
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)shigeya
 
Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~
Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~
Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~Yuya Yamaki
 

Ähnlich wie Silverlight Line-Of-Business Applications (20)

Metroスタイルで花開くか? XAMLベースのUIフレームワーク
Metroスタイルで花開くか?XAMLベースのUIフレームワークMetroスタイルで花開くか?XAMLベースのUIフレームワーク
Metroスタイルで花開くか? XAMLベースのUIフレームワーク
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
 
Tide - SmalltalkでSPA
Tide - SmalltalkでSPATide - SmalltalkでSPA
Tide - SmalltalkでSPA
 
HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発
 
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
 
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
 
Linuxにおける開発環境
Linuxにおける開発環境Linuxにおける開発環境
Linuxにおける開発環境
 
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
 
スマ研第2回レポート
スマ研第2回レポートスマ研第2回レポート
スマ研第2回レポート
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる
 
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
 
モバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせモバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせ
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
 
Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~
Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~
Visual Studio 2010でWPF/Silverlightをはじめる5つの理由~業務アプリ開発編~
 

Mehr von Yuya Yamaki

Basic言語でiOSアプリを作る
Basic言語でiOSアプリを作るBasic言語でiOSアプリを作る
Basic言語でiOSアプリを作るYuya Yamaki
 
続Xamarinはじめました
続Xamarinはじめました続Xamarinはじめました
続XamarinはじめましたYuya Yamaki
 
Xamarinはじめました
XamarinはじめましたXamarinはじめました
XamarinはじめましたYuya Yamaki
 
TypeScript入門してみた
TypeScript入門してみたTypeScript入門してみた
TypeScript入門してみたYuya Yamaki
 
Windowsの画面スケーリングを きちんと理解しよう
Windowsの画面スケーリングをきちんと理解しようWindowsの画面スケーリングをきちんと理解しよう
Windowsの画面スケーリングを きちんと理解しようYuya Yamaki
 
.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略Yuya Yamaki
 
.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略Yuya Yamaki
 
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Developers Summit 2013【14-E-3】Windows 8デザインガイドDevelopers Summit 2013【14-E-3】Windows 8デザインガイド
Developers Summit 2013【14-E-3】Windows 8デザインガイドYuya Yamaki
 
今さらWPF? いいえ、今こそWPF!
今さらWPF?いいえ、今こそWPF!今さらWPF?いいえ、今こそWPF!
今さらWPF? いいえ、今こそWPF!Yuya Yamaki
 
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革Yuya Yamaki
 
デスクトップアプリ開発者が押さえておくべき Windows 8時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革
デスクトップアプリ開発者が押さえておくべき Windows 8時代の変革Yuya Yamaki
 
Windows 8時代のUXを支える非同期プログラミング
Windows 8時代のUXを支える非同期プログラミングWindows 8時代のUXを支える非同期プログラミング
Windows 8時代のUXを支える非同期プログラミングYuya Yamaki
 
どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発Yuya Yamaki
 
WPF/Silverlight視点で視る MetroスタイルのXAML
WPF/Silverlight視点で視るMetroスタイルのXAMLWPF/Silverlight視点で視るMetroスタイルのXAML
WPF/Silverlight視点で視る MetroスタイルのXAMLYuya Yamaki
 
77回スピーカーを経験して分かったこと」共有します
77回スピーカーを経験して分かったこと」共有します77回スピーカーを経験して分かったこと」共有します
77回スピーカーを経験して分かったこと」共有しますYuya Yamaki
 
Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論Yuya Yamaki
 
半透明は飾りです 偉い人にはそれがわからんのですよ
半透明は飾りです偉い人にはそれがわからんのですよ半透明は飾りです偉い人にはそれがわからんのですよ
半透明は飾りです 偉い人にはそれがわからんのですよYuya Yamaki
 
60分でわかる!SilverlightとWPFの入力チェック
60分でわかる!SilverlightとWPFの入力チェック60分でわかる!SilverlightとWPFの入力チェック
60分でわかる!SilverlightとWPFの入力チェックYuya Yamaki
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Yuya Yamaki
 
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーションYuya Yamaki
 

Mehr von Yuya Yamaki (20)

Basic言語でiOSアプリを作る
Basic言語でiOSアプリを作るBasic言語でiOSアプリを作る
Basic言語でiOSアプリを作る
 
続Xamarinはじめました
続Xamarinはじめました続Xamarinはじめました
続Xamarinはじめました
 
Xamarinはじめました
XamarinはじめましたXamarinはじめました
Xamarinはじめました
 
TypeScript入門してみた
TypeScript入門してみたTypeScript入門してみた
TypeScript入門してみた
 
Windowsの画面スケーリングを きちんと理解しよう
Windowsの画面スケーリングをきちんと理解しようWindowsの画面スケーリングをきちんと理解しよう
Windowsの画面スケーリングを きちんと理解しよう
 
.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略
 
.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略
 
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Developers Summit 2013【14-E-3】Windows 8デザインガイドDevelopers Summit 2013【14-E-3】Windows 8デザインガイド
Developers Summit 2013【14-E-3】Windows 8デザインガイド
 
今さらWPF? いいえ、今こそWPF!
今さらWPF?いいえ、今こそWPF!今さらWPF?いいえ、今こそWPF!
今さらWPF? いいえ、今こそWPF!
 
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
 
デスクトップアプリ開発者が押さえておくべき Windows 8時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革
デスクトップアプリ開発者が押さえておくべき Windows 8時代の変革
 
Windows 8時代のUXを支える非同期プログラミング
Windows 8時代のUXを支える非同期プログラミングWindows 8時代のUXを支える非同期プログラミング
Windows 8時代のUXを支える非同期プログラミング
 
どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発
 
WPF/Silverlight視点で視る MetroスタイルのXAML
WPF/Silverlight視点で視るMetroスタイルのXAMLWPF/Silverlight視点で視るMetroスタイルのXAML
WPF/Silverlight視点で視る MetroスタイルのXAML
 
77回スピーカーを経験して分かったこと」共有します
77回スピーカーを経験して分かったこと」共有します77回スピーカーを経験して分かったこと」共有します
77回スピーカーを経験して分かったこと」共有します
 
Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論
 
半透明は飾りです 偉い人にはそれがわからんのですよ
半透明は飾りです偉い人にはそれがわからんのですよ半透明は飾りです偉い人にはそれがわからんのですよ
半透明は飾りです 偉い人にはそれがわからんのですよ
 
60分でわかる!SilverlightとWPFの入力チェック
60分でわかる!SilverlightとWPFの入力チェック60分でわかる!SilverlightとWPFの入力チェック
60分でわかる!SilverlightとWPFの入力チェック
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
 
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
 

Silverlight Line-Of-Business Applications

  • 1. VSUG Day 2009 / Winter Silverlightで業務ゕプリ ~その課題と対応手法~ グレープシテゖ株式会社 八巻 雄哉 VSUG Day 2009 / Winter
  • 2. 状況説明 Silverlight 3 Release to Web Silverlight 4 Beta発表 10/9 12/05 7/10 11/18 VSUG Day 2009 Winterの セッションタ゗トルを決める 今ここ VSUG Day 2009 / Winter
  • 3. Silverlight 3で 業務ゕプリを作る際に困ること クリップボード マウスホ゗ール 右クリック 印刷 フゔンクションキー が使えない VSUG Day 2009 / Winter
  • 4. HTMLベースのWebゕプリの場合 クリップボード マウスホ゗ール 右クリック 印刷 は使えます VSUG Day 2009 / Winter
  • 5. HTMLブリッジ Webブラウザとの相互運用機能 マネージ型やメソッドをJavaScriptに公開 JavaScript関数とオブジェクトに マネージ型をパラメータとして渡す JavaScriptからマネージ型を返す マネージコードをJavaScriptから 呼び出し可能な゗ベントハンドラとして登録 JavaScript゗ベントハンドラをマネージから呼び出す HTML ブリッジ : HTML とマネージ コード間のやり取り http://msdn.microsoft.com/ja-jp/library/cc645076(VS.95).aspx HTML ブリッジのセキュリテゖ設定 http://msdn.microsoft.com/ja-jp/library/cc645023(VS.95).aspx VSUG Day 2009 / Winter
  • 6. Silverlight 4 Beta マウスホ゗ール 右クリック クリップボード 印刷 フゔンクションキー が標準で使えます VSUG Day 2009 / Winter
  • 7. クリップボード HTML and DHTML Reference(IE) clipboardData Object clearData getData setData IE以外の場合Flash経由のハックで可能 zeroclipboard http://code.google.com/p/zeroclipboard/ VSUG Day 2009 / Winter
  • 8. コード解説(HTMLブリッジ) var clipboardData = (ScriptObject)HtmlPage.Window.GetProperty("clipboardData"); clipboardData.Invoke("setData", "text", text); HtmlPageクラス ブラウザーのDOMにゕクセスして操作するクラス HtmlWindowクラス JavaScriptのwindowオブジェクトのマネージ型 ScriptObject クラス ブラウザーのDOMゕクセスに使用される型の 基本クラス VSUG Day 2009 / Winter
  • 9. クリップボード Clipboardクラス メソッド一覧 ContainsText GetText SetText IE以外のWebブラウザでも可能 ブラウザ外実行で権限昇格した場合は、 ダ゗ゕログが表示されない。 VSUG Day 2009 / Winter
  • 11. マウスホ゗ール HTML and DHTML Reference(IE) onmousewheel Event http://msdn.microsoft.com/en-us/library/ms536951.aspx Firefoxの場合DOMMouseScroll゗ベント Silverlight.FX http://projects.nikhilk.net/SilverlightFX MouseWheelScrollビヘ゗ビゕ VSUG Day 2009 / Winter
  • 12. マウスホ゗ール UIElementクラス MouseWheel゗ベント MouseWheelEventArgsメンバ Deltaプロパテゖ ホ゗ールの移動量(差分) OriginalSourceプロパテゖ ゗ベント発生元オブジェクト VSUG Day 2009 / Winter
  • 13. 右クリック HTML and DHTML Reference(IE) oncontextmenu Event http://msdn.microsoft.com/en-us/library/ms536914.aspx ウゖンドウなしモード http://msdn.microsoft.com/ja-jp/library/cc838156%28VS.95%29.aspx パフォーマンスに影響を及ぼす IMEが使えなくなる <div id="silverlightControlHost"> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/RightClick.xap"/> <param name="windowless" value="true"/> VSUG Day 2009 / Winter
  • 14. 右クリック ボタンのDownとUpを分けて取得可能 MouseRightButtonDown゗ベント MouseRightButtonUp゗ベント もちろん「ウゖンドウなしモード」不要 VSUG Day 2009 / Winter
  • 15. 印刷 HTML and DHTML Reference(IE) media Property http://msdn.microsoft.com/en-us/library/ms534161.aspx print Method http://msdn.microsoft.com/en-us/library/ms536672.aspx <style type="text/css"> @media print { } </style> VSUG Day 2009 / Winter
  • 16. 印刷 PrintDocumentクラス PrintPage゗ベント PrintPageEventArgsメンバ HasMorePagesプロパテゖ PageVisualプロパテゖ PrintableAreaプロパテゖ PageVisualプロパテゖに設定した UIElementがラスタラ゗ズされ印刷 基本的には画面を印刷するための簡易機能 PrintableAreaプロパテゖから用紙サ゗ズを 取得し、ページングを考慮した印刷も可能 VSUG Day 2009 / Winter
  • 18. ここまでのまとめ Silverlight 4 Betaならば… マウスホ゗ール 右クリック クリップボード 印刷 フゔンクションキー が標準で使えます VSUG Day 2009 / Winter
  • 19. N層開発というハードル クラ゗ゕントとサーバーで二重化が必要な処理も クラ゗ゕント サーバー データ ビジネス ビジネス ビュー ゕクセス オブジェクト オブジェクト レ゗ヤー WCF RIA Services(旧称:.NET RIA Services) 二重化が必要な共通ロジックの開発を、 コードの自動生成により一元化 VSUG Day 2009 / Winter
  • 20. WCF RIA Services n階層ゕプリケーション開発をシンプルに クラ゗ゕント(Silverlight) サーバー(ASP.NET) プロジェクト プロジェクト Domain Entities Data Entities コード生成 Source Domain Domain Service データ Context ゕクセス ビュー レ゗ヤー Visual Studio 2010 Beta 2を使えば、 ほぼノンコーデゖングで実装可能 VSUG Day 2009 / Winter
  • 21. WCF RIA Services サーバーのエンドポ゗ント DomainService LinqToEntitiesDomainService LinqToSqlDomainService DomainServiceのクラ゗ゕント側プロキシ DomainContext 宣言型のデータ バ゗ンドコントロール (DomainContextのラッパー) DomainDataSourceコントロール VSUG Day 2009 / Winter
  • 22. 22
  • 23. 豊富な機能を持つ 40を超えるコントロールとコンポーネント モードレス表示が可能な子ウゖンドウ マウスホ゗ールによるスクロールを組込でサポート 6種類の組み込みテーマ クリップボードゕクセス機能 マウスホ゗ール、右クリック、 ダブルクリックの゗ベント処理機能 コンテキストメニューコントロール DataSet、DataTable、DataViewなどを ラ゗ブラリとして提供 23
  • 24. Silverlight 3 Silverlight 4 Beta 標準 ○ ○ クリップボード - HTML形式をサポート IE以外もサポート Clipboradクラス Clipboradクラス ○ ○ マウスホイール - 座標取得可 オブジェクト取得可 C1MouseHelperクラス UIElementクラス △ ○ Windowlessモードのみ 右クリック - C1MouseHelperクラス UIElementクラス C1ContextMenuコントロール △ △ サンプル提供 ラスタラ゗ズ印刷 印刷 - C1PrintHelperクラス PrintDocumentクラス C1DataGridHtmlExtensionクラス VSUG Day 2009 / Winter 24
  • 25. Silverlight 4 Beta ComboBox C1ComboBox 編集のサポート Outlookスタ゗ルのグループ化、 DataGrid C1DataGrid フゖルターボタン、ドラッグ&ド ロップによる列の移動など コ DatePicker C1DateTimePicker 時間部分の編集もサポート ン ト ○ブラウザ実行で使用可 ロ WebBrowser C1HtmlHost ×ブラウザ外実行使用不可 ー ×windowlessモード必須 ル Image C1Image ゕニメーションGIFのサポート TreeView C1TreeView 組み込みのドラッグ&ドロップ モードレスウゖンドウ、 ChildWindow C1Window リサ゗ズの許可 MessageBox C1MessageBox ゕ゗コン指定、コールバック設定 VSUG Day 2009 / Winter
  • 26. C1Chart C1PropertyGrid ナ C1Accordion ビ ゲ C1Maps C1DropDown ー C1Menu デ シ ー C1LinearGauge C1NumericBox ョ C1ContextMenu タ ン 視 C1RadialGauge C1MaskedTextBox 覚 入 C1Book 化 C1Knob 力 C1ColorPicker C1CoverFlow C1Scheduler C1TimeEditor C1Reflector C1Uploader C1RangeSlider C1Cube ユ C1ZipFile C1FilePicker コ C1Expander ー ン テ C1MediaPlayer テ C1PromptBox メ ナ ィ C1DragDropManager デ C1ImageMagnifier リ C1HyperPanel ィ テ C1LayoutTransformer ゕ C1Bitmap ィ C1UniformGrid C1Data C1DockPanel VSUG Day 2009 / Winter C1WrapPanel
  • 27. 既存資産の活用 標準的なデータプログラミング手法として .NET開発で使用されている DataSet DataTable DataView 等のクラスがSilverlightでは未サポート 既存のスキルや開発資産を活用できない。
  • 28. DataSet、DataTable、DataViewなどを サポート GetChangesメソッド DataRowState列挙体 Unchanged Added Deleted Detached Modified RowFilterプロパテゖ VSUG Day 2009 / Winter
  • 29. まとめ Silverlight 4 Betaは Silverlight for 業務ゕプリ? 他にも業務ゕプリ系の機能多数 COMオートメーション、IMEサポートの強化、 ローカルフゔ゗ルゕクセスなどなど グレープシテゖも Silverlightに注力していきます! [02/10] [発売中]XapOptimizer 1.0J (Slverlightゕプリケーション最適化ツール) VSUG Day 2009 / Winter
  • 30. VSUG Day 2009 / Winter