Download - Silverlight Line-Of-Business Applications
VSUG Day 2009 / Winter
Silverlightで業務ゕプリ ~その課題と対応手法~
グレープシテゖ株式会社
八巻 雄哉
VSUG Day 2009 / Winter
状況説明
VSUG Day 2009 / Winter
7/10
10/9
11/18
12/05
Silverlight 3 Release to Web
VSUG Day 2009 Winterの セッションタトルを決める
Silverlight 4 Beta発表
今ここ
Silverlight 3で 業務ゕプリを作る際に困ること
クリップボード
マウスホール
右クリック
印刷
フゔンクションキー
が使えない VSUG Day 2009 / Winter
HTMLベースのWebゕプリの場合
クリップボード
マウスホール
右クリック
印刷
は使えます VSUG Day 2009 / Winter
HTMLブリッジ
Webブラウザとの相互運用機能
マネージ型やメソッドをJavaScriptに公開
JavaScript関数とオブジェクトに
マネージ型をパラメータとして渡す
JavaScriptからマネージ型を返す
マネージコードをJavaScriptから
呼び出し可能なベントハンドラとして登録
JavaScriptベントハンドラをマネージから呼び出す
VSUG Day 2009 / Winter
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
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ブリッジ)
HtmlPageクラス
ブラウザーのDOMにゕクセスして操作するクラス
HtmlWindowクラス
JavaScriptのwindowオブジェクトのマネージ型
ScriptObject クラス
ブラウザーのDOMゕクセスに使用される型の 基本クラス
VSUG Day 2009 / Winter
var clipboardData = (ScriptObject)HtmlPage.Window.GetProperty("clipboardData"); clipboardData.Invoke("setData", "text", text);
クリップボード
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が使えなくなる
VSUG Day 2009 / Winter
<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"/>
右クリック
ボタンの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
VSUG Day 2009 / Winter
<style type="text/css"> @media print { } </style>
印刷
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層開発というハードル
サーバー
データ ゕクセス レヤー
ビュー ビジネス オブジェクト
ビジネス オブジェクト
クラゕントとサーバーで二重化が必要な処理も
VSUG Day 2009 / Winter
WCF RIA Services(旧称:.NET RIA Services)
二重化が必要な共通ロジックの開発を、 コードの自動生成により一元化
WCF RIA Services
Visual Studio 2010 Beta 2を使えば、 ほぼノンコーデゖングで実装可能
VSUG Day 2009 / Winter
クラゕント(Silverlight)プロジェクト
サーバー(ASP.NET) プロジェクト
データ ゕクセス レヤー ビュー
Domain Service
Entities
Domain Context
Entities コード生成 Domain
Data Source
n階層ゕプリケーション開発をシンプルに
WCF RIA Services
サーバーのエンドポント
DomainService
LinqToEntitiesDomainService
LinqToSqlDomainService
DomainServiceのクラゕント側プロキシ
DomainContext
宣言型のデータ バンドコントロール (DomainContextのラッパー)
DomainDataSourceコントロール
VSUG Day 2009 / Winter
22
豊富な機能を持つ 40を超えるコントロールとコンポーネント モードレス表示が可能な子ウゖンドウ マウスホールによるスクロールを組込でサポート 6種類の組み込みテーマ
クリップボードゕクセス機能
マウスホール、右クリック、 ダブルクリックのベント処理機能 コンテキストメニューコントロール
DataSet、DataTable、DataViewなどを ラブラリとして提供
23
24
Silverlight 3
Silverlight 4 Beta 標準
クリップボード -
○ HTML形式をサポート
○ IE以外もサポート
Clipboradクラス Clipboradクラス
マウスホイール -
○ 座標取得可
○ オブジェクト取得可
C1MouseHelperクラス UIElementクラス
右クリック -
△ Windowlessモードのみ
○
C1MouseHelperクラス C1ContextMenuコントロール
UIElementクラス
印刷 -
△ サンプル提供
△ ラスタラズ印刷
C1PrintHelperクラス C1DataGridHtmlExtensionクラス
PrintDocumentクラス
VSUG Day 2009 / Winter
Silverlight 4 Beta
コントロール
ComboBox C1ComboBox 編集のサポート
DataGrid C1DataGrid
Outlookスタルのグループ化、フゖルターボタン、ドラッグ&ドロップによる列の移動など
DatePicker C1DateTimePicker 時間部分の編集もサポート
WebBrowser C1HtmlHost
○ブラウザ実行で使用可 ×ブラウザ外実行使用不可 ×windowlessモード必須
Image C1Image ゕニメーションGIFのサポート
TreeView C1TreeView 組み込みのドラッグ&ドロップ
ChildWindow C1Window モードレスウゖンドウ、 リサズの許可
MessageBox C1MessageBox ゕコン指定、コールバック設定
VSUG Day 2009 / Winter
データ視覚化
C1Chart
C1Maps
C1LinearGauge
C1RadialGauge
C1Knob
C1Scheduler
VSUG Day 2009 / Winter
ナビゲーション
C1Accordion
C1Menu
C1ContextMenu
入力
C1PropertyGrid
C1DropDown
C1NumericBox
C1MaskedTextBox
C1ColorPicker
C1TimeEditor
C1RangeSlider
C1FilePicker コンテナ
C1Book
C1CoverFlow
C1Reflector
C1Cube
C1Expander
C1PromptBox
C1HyperPanel
C1UniformGrid
C1DockPanel
C1WrapPanel
メディゕ
C1MediaPlayer
C1ImageMagnifier
C1Bitmap
ユーティリティ
C1Uploader
C1ZipFile
C1DragDropManager
C1LayoutTransformer
C1Data
標準的なデータプログラミング手法として .NET開発で使用されている
等のクラスがSilverlightでは未サポート
既存のスキルや開発資産を活用できない。
既存資産の活用
DataSet DataTable DataView
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