silverlight line-of-business applications

30
VSUG Day 2009 / Winter Silverlightで業務ゕプリ ~その課題と対応手法~ グレープシテゖ株式会社 八巻 雄哉 VSUG Day 2009 / Winter

Upload: yuya-yamaki

Post on 12-Nov-2014

4.731 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Silverlight Line-Of-Business Applications

VSUG Day 2009 / Winter

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

グレープシテゖ株式会社

八巻 雄哉

VSUG Day 2009 / Winter

Page 2: Silverlight Line-Of-Business Applications

状況説明

VSUG Day 2009 / Winter

7/10

10/9

11/18

12/05

Silverlight 3 Release to Web

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

Silverlight 4 Beta発表

今ここ

Page 3: Silverlight Line-Of-Business Applications

Silverlight 3で 業務ゕプリを作る際に困ること

クリップボード

マウスホール

右クリック

印刷

フゔンクションキー

が使えない VSUG Day 2009 / Winter

Page 4: Silverlight Line-Of-Business Applications

HTMLベースのWebゕプリの場合

クリップボード

マウスホール

右クリック

印刷

は使えます VSUG Day 2009 / Winter

Page 5: Silverlight Line-Of-Business Applications

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

Page 6: Silverlight Line-Of-Business Applications

Silverlight 4 Beta

マウスホール

右クリック

クリップボード

印刷

フゔンクションキー

が標準で使えます

VSUG Day 2009 / Winter

Page 7: Silverlight Line-Of-Business Applications

クリップボード

HTML and DHTML Reference(IE)

clipboardData Object

clearData

getData

setData

IE以外の場合Flash経由のハックで可能

zeroclipboard http://code.google.com/p/zeroclipboard/

VSUG Day 2009 / Winter

Page 8: Silverlight Line-Of-Business Applications

コード解説(HTMLブリッジ)

HtmlPageクラス

ブラウザーのDOMにゕクセスして操作するクラス

HtmlWindowクラス

JavaScriptのwindowオブジェクトのマネージ型

ScriptObject クラス

ブラウザーのDOMゕクセスに使用される型の 基本クラス

VSUG Day 2009 / Winter

var clipboardData = (ScriptObject)HtmlPage.Window.GetProperty("clipboardData"); clipboardData.Invoke("setData", "text", text);

Page 9: Silverlight Line-Of-Business Applications

クリップボード

Clipboardクラス

メソッド一覧

ContainsText

GetText

SetText

IE以外のWebブラウザでも可能

ブラウザ外実行で権限昇格した場合は、 ダゕログが表示されない。

VSUG Day 2009 / Winter

Page 10: Silverlight Line-Of-Business Applications

3つの動作方式

ブラウザ内実行

ブラウザ外実行

サンドボックスモード

権限昇格モード

VSUG Day 2009 / Winter

Page 11: Silverlight Line-Of-Business Applications

マウスホール

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

Page 12: Silverlight Line-Of-Business Applications

マウスホール

UIElementクラス

MouseWheelベント

MouseWheelEventArgsメンバ

Deltaプロパテゖ

ホールの移動量(差分)

OriginalSourceプロパテゖ

ベント発生元オブジェクト

VSUG Day 2009 / Winter

Page 13: Silverlight Line-Of-Business Applications

右クリック

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"/>

Page 14: Silverlight Line-Of-Business Applications

右クリック

ボタンのDownとUpを分けて取得可能

MouseRightButtonDownベント

MouseRightButtonUpベント

もちろん「ウゖンドウなしモード」不要

VSUG Day 2009 / Winter

Page 15: Silverlight Line-Of-Business Applications

印刷

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>

Page 16: Silverlight Line-Of-Business Applications

印刷

PrintDocumentクラス

PrintPageベント

PrintPageEventArgsメンバ

HasMorePagesプロパテゖ

PageVisualプロパテゖ

PrintableAreaプロパテゖ

PageVisualプロパテゖに設定した UIElementがラスタラズされ印刷

基本的には画面を印刷するための簡易機能

PrintableAreaプロパテゖから用紙サズを 取得し、ページングを考慮した印刷も可能

VSUG Day 2009 / Winter

Page 17: Silverlight Line-Of-Business Applications

フゔンクションキー

Webブラウザの予約キー

ブラウザ外実行なら予約されていない

HTMLブリッジはブラウザ外実行で利用不可

クリップボードやマウスホール といった機能が使えない

VSUG Day 2009 / Winter

Page 18: Silverlight Line-Of-Business Applications

ここまでのまとめ

Silverlight 4 Betaならば…

マウスホール

右クリック

クリップボード

印刷

フゔンクションキー

が標準で使えます

VSUG Day 2009 / Winter

Page 19: Silverlight Line-Of-Business Applications

クラゕント

N層開発というハードル

サーバー

データ ゕクセス レヤー

ビュー ビジネス オブジェクト

ビジネス オブジェクト

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

VSUG Day 2009 / Winter

WCF RIA Services(旧称:.NET RIA Services)

二重化が必要な共通ロジックの開発を、 コードの自動生成により一元化

Page 20: Silverlight Line-Of-Business Applications

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階層ゕプリケーション開発をシンプルに

Page 21: Silverlight Line-Of-Business Applications

WCF RIA Services

サーバーのエンドポント

DomainService

LinqToEntitiesDomainService

LinqToSqlDomainService

DomainServiceのクラゕント側プロキシ

DomainContext

宣言型のデータ バンドコントロール (DomainContextのラッパー)

DomainDataSourceコントロール

VSUG Day 2009 / Winter

Page 22: Silverlight Line-Of-Business Applications

22

Page 23: Silverlight Line-Of-Business Applications

豊富な機能を持つ 40を超えるコントロールとコンポーネント モードレス表示が可能な子ウゖンドウ マウスホールによるスクロールを組込でサポート 6種類の組み込みテーマ

クリップボードゕクセス機能

マウスホール、右クリック、 ダブルクリックのベント処理機能 コンテキストメニューコントロール

DataSet、DataTable、DataViewなどを ラブラリとして提供

23

Page 24: Silverlight Line-Of-Business Applications

24

Silverlight 3

Silverlight 4 Beta 標準

クリップボード -

○ HTML形式をサポート

○ IE以外もサポート

Clipboradクラス Clipboradクラス

マウスホイール -

○ 座標取得可

○ オブジェクト取得可

C1MouseHelperクラス UIElementクラス

右クリック -

△ Windowlessモードのみ

C1MouseHelperクラス C1ContextMenuコントロール

UIElementクラス

印刷 -

△ サンプル提供

△ ラスタラズ印刷

C1PrintHelperクラス C1DataGridHtmlExtensionクラス

PrintDocumentクラス

VSUG Day 2009 / Winter

Page 25: Silverlight Line-Of-Business Applications

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

Page 26: Silverlight Line-Of-Business Applications

データ視覚化

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

Page 27: Silverlight Line-Of-Business Applications

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

等のクラスがSilverlightでは未サポート

既存のスキルや開発資産を活用できない。

既存資産の活用

DataSet DataTable DataView

Page 28: Silverlight Line-Of-Business Applications

DataSet、DataTable、DataViewなどを サポート

GetChangesメソッド

DataRowState列挙体

Unchanged

Added

Deleted

Detached

Modified

RowFilterプロパテゖ

VSUG Day 2009 / Winter

Page 29: Silverlight Line-Of-Business Applications

まとめ

Silverlight 4 Betaは Silverlight for 業務ゕプリ?

他にも業務ゕプリ系の機能多数

COMオートメーション、IMEサポートの強化、 ローカルフゔルゕクセスなどなど

グレープシテゖも Silverlightに注力していきます!

[02/10]

[発売中]XapOptimizer 1.0J (Slverlightゕプリケーション最適化ツール)

VSUG Day 2009 / Winter

Page 30: Silverlight Line-Of-Business Applications

VSUG Day 2009 / Winter