wpf 4とsilverlight 4、これから業務アプリを開発するならどっち?

45
グレープシテゖ株式会社 八巻 雄哉 blog : d.hatena.ne.jp/Yamaki/ twitter : yamaki00

Upload: yuya-yamaki

Post on 12-Nov-2014

21.639 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

グレープシテゖ株式会社

八巻 雄哉 blog : d.hatena.ne.jp/Yamaki/

twitter : yamaki00

Page 2: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF 4とSilverlight 4、 これから業務ゕプリを開発するならどっち?

WPF 4 34%

Silverlight 4 66%

得票数:86

Silverlight派

WPF派

WPFの方が顧客にとっては手軽で便利そう。

「とりあえずWebで作っとけ」病に反対の意を込めてWPFにしておきます。

ゕプリケーション配布においてどちらかというとSilverlightの方が配布しやすいかなと思う。

実際サポートするしないは関係なく、マルチプラットフォームという響きは売りになりそう。

Silverlight が WPF のサブセットである限り WPF 一択。

Page 3: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

導入しやすいこと

保守しやすいこと

開発しやすいこと

技術的に実現できること

業務ゕプリで技術を選定するとき それが一番大事♪

Page 4: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Ease of adoption

実行環境(ランタム)

普及率

サズ

ンストール

時間

方法

要件

Page 5: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

.NET Frameworkのンストールが必須

65%

25%

10%

3.5 SP1

その他のバージョン

未ンストール

Scott Hanselman's Computer Zen

How many PCs in the world have the .NET Framework installed? http://www.hanselman.com/blog/HowManyPCsInTheWorldHaveTheNETFrameworkInstalled.aspx

Page 6: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Operating System Market Share - December, 2009

marketshare.hitslink.com

OSプリンストール

PCメーカープリンストール

可能性あり(Windows 7 + .NET Framework 4)

Windows .NET Framework 普及率

2000 - 1%

XP - 73%

Vista 3.0 19%

7 3.51(3.5 SP1) 6%

Page 7: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

riastats.com

Rich Internet Application Statistics

Country : Japan

52%

2% 1%

45% 3

2

1.0

未ンストール

Silverlightランタムのンストールが必須

Page 9: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

.NET Framework インストーラー種 サイズ ダウンロードサイズ

3.5 SP1 再頒布パッケージ 231.5 MB -

Webンストーラー 2.8 MB 10 MB – 60 MB

4 Beta 2 (フルパッケージ)

x86再頒布パッケージ 37.7 MB -

x64再頒布パッケージ 54.5 MB -

Ia64再頒布パッケージ 56.4 MB -

Webンストーラー 850 KB 25 MB – 56 MB

4 Beta 2 Client Profile

x86再頒布パッケージ 30.9 MB -

x64再頒布パッケージ 47.1 MB -

Webンストーラー 850 KB 25 MB – 54 MB

Satter Ramblings: Deploying .NET Framework 4 Beta 2

http://www.satter.org/2009/10/deploying-net-framework-4.html

Page 10: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Silverlight インストーラー種 サイズ

3 ランタム 4.7MB

開発者ランタム 6.41MB

4 Beta ランタム ?

開発者ランタム 7.63MB

Page 11: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

テスト環境

CPU : Core 2 Duo T7400 2.16GHz

メモリ : 3GB

OS : Windows 7 Enterprise x86(VHDブート)

計測対象

.NET Framework 4 Beta 2 Client Profile

Silverlight 3 RTW

Page 12: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Page 13: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Page 14: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

結果

.NET Framework 4 Beta 2 Client Profile

Silverlight 3 RTW

+ 再起動

Page 15: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

両者共通

ンストーラーのダウンロードと実行

Windows Update(追加選択)

Active Directory、Systems Management Server (SMS)

管理者向けの Microsoft .NET Framework 3.5 配置ガド

http://msdn.microsoft.com/ja-jp/library/dd297674.aspx Silverlight デプロメントガドv2

http://www.microsoft.com/japan/silverlight/resources.aspx

Page 16: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

ゕプリケーション実行(ンストール)時

WPF Bootstrapper(必須コンポーネント)

MSI

ClickOnce

Internet ExplorerのMIMEハンドラ

WPFブラウザゕプリケーション(XBAP)

Silverlight ダウンロードサトへのリンク表示

(表示画像の変更可)

Page 17: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

XBAPにおける.NET Framework自動検出

Internet Explorer 7以降

拡張子XBAPのMIMEハンドラ

ブートストラッパゕプリケーションが .NET Frameworkのンストールを開始

ダウンロードはバッググラウンド処理

WPF アプリケーションの配置

http://msdn.microsoft.com/ja-jp/library/aa969776.aspx

Page 18: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

OS .NET FX 4 ( WPF )

Silverlight

3 4

Windows 7 Windows Server 2008 R2

✔ ✔ ✔

Windows Vista Windows Server 2008

✔ ✔ ✔

Windows XP Windows Server 2003

✔ ✔ ✔

Windows 2000 - ✔ ?

※どちらも管理者権限が必要 ※OSによりサービスパックの適用が必須のものあり ※SilverlihgtはSSE命令セットをサポートしたプロセッサが必要

2010年7月13日 延長サポート終了

Page 19: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Maintenancebility

ゕプリケーションの自動更新

ランタムのバージョン管理

Page 20: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF Silverlight

Windowsアプリケーション ブラウザアプリケーション Windowsアプリケーション

XCOPY、インストーラー

ClickOnce XBAP(ClickOnce)

ブラウザ内 実行

ブラウザ外 実行

自動更新 - ✔ ✔ ✔ ✔

対話 - 必要 不要 不要 必要

ロールバック - 可 不可 不可 不可

オフライン実行 ✔ ✔ - - ✔

Page 21: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF XAML Browser Applications Overview

http://msdn.microsoft.com/ja-jp/library/aa970060(VS.100).aspx

完全信頼XBAP(WPF 4で追加) セキュリティ ゾーン 動作 必要な作業

ローカル コンピューター

自動的に完全信頼 なし

ントラネット および信頼済みサト

対話を伴って完全信頼 ユーザーがプロンプト内で確認する証明書を署名する。

ンターネット 信頼が許可されない ため失敗

-

Page 22: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF 同一環境に異なるバージョンの.NET

Frameworkを共存可能(side-by-side実行)

Silverlight 同一環境に異なるバージョンの

Silverlightランタムは共存不可能

Silverlight 3ランタム上のSilverlight 2ゕプリはQuirksモード(互換モード)で動作

既存のSilverlight 2アプリケーションを確実にSilverlight 3で動作させる

5 アップグレードによる互換性に影響する変更点

http://msdn.microsoft.com/ja-jp/library/cc645049%28VS.95%29.aspx#sectionToggle4

Page 23: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

CLR 2.0

Silverlight 2

Page 24: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

CLR 2.0 CLR 4.0

Silverlight 3

Quirksモード

(Silverlight 2互換モード)

Page 25: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Ease of development

n層開発

非同期通信

Page 26: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF ✔

Silverlight -

開発が必要な部分

Page 27: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF ✔

Silverlight ✔

開発が必要な部分 開発が必要な部分

Page 28: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

サーバー(ASP.NET) プロジェクト

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

データゕクセス レヤー

Domain Service

EntityObject

Domain Context

Entity コード生成

ビュー

Domain Data

Source

n階層ゕプリケーション開発をシンプルに

ObjectContext

クラゕント(Silverlight)

プロジェクト

Page 29: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Page 30: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

SilverlightのWebサービス呼び出しは 非同期のみ

欠点

コードの読み書きが大変

余計な処理が必要

Page 31: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

RIA的には

UIがブロックされないなんて素敵!

業務ゕプリ的には

間違って処理中にボタン押されたら大変!

Silverlight Toolkit

BusyIndicator

Page 32: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Possibility of implementation

機能要件

非機能要件

スクロールパフォーマンス

Page 33: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

3に足りなかった業務ゕプリ必須機能

クリップボード

右クリック、マウスホール

UIElement TextInput、TextInputStart、TextInputUdate

InputMethod PreferredImeConversionMode、PreferredImeState

印刷

Page 34: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

PrintDocumentクラス

PrintPageベント

PrintPageEventArgsメンバ

HasMorePages、PageVisual、PrintableArea

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

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

Page 35: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF >>>> 超えられない壁 >>>> Silverlight (セキュリテゖの壁)

WPF >> Silverlight >> 超えられない壁 >>>> (セキュリテゖの壁)

Page 36: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

サンドボックスモード

WebBrowserコントロール

NotificationWindow

ウゖンドウの位置と大きさの変更

信頼昇格モード

「C:¥Users」の特定フォルダに対する フゔルの読み書き

ポリシーフゔルいらずのクロスドメン通信

フルスクリーンモードにおけるフルキーボード対応

COMオートメーション

Page 37: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

テスト環境

CPU : Core 2 Duo T7400 2.16GHz

GPU : NVIDIA Quadro NVS 110M

メモリ : 3GB

OS : Windows 7 Enterprise x86(VHDブート)

DataGridコントロール

10列×500行( = 5000セル)

Page 38: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

結果

WPF 4

最低フレームレート: fps

Silverlight 4

最低フレームレート: fps

Page 39: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

.NET Frameworkのンストールは、 思っていたよりは時間がかからない。

XBAPは実はデキる奴だった。

対話を伴わない自動更新

完全信頼XBAP

WPFはGPUを活用しているから速い という印象があるが、スクロールは遅い。

Page 40: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

Silverlightのランタムは共存できない。

物理的な層を跨ぎ、非同期処理を 強いられる開発は慣れていないと大変

WCF RIA Servicesにより大部分が軽減される。

業務ゕプリに必要な機能は揃っているが、 痒いところに手が届かないこともある。

ただしCOMを使えば何でもゕリ

スクロールはWPFよりも速い。

Page 41: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

ロールバックが必要?

WPFゕプリケーション

(ClickOnce)

ントラネット

のみで運用?

WPFブラウザゕプリ

ケーション(XBAP)

Silverlight

ゕプリケーション

YES

YES

NO

NO

Page 42: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

WPF派だったけどSilverlightに心変わりした。

Silverlight派だったけどWPFに心変わりした。

Page 43: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?

エディション 概要

for Windows Forms 2010J Windowsフォーム開発用の 12コンポーネント

for ASP.NET 2010J ASP.NET開発用、Ajaxに対応した 28のコンポーネント

for Silverlight 2010J Silverlight 3開発用の 39のコンポーネント

Enterprise 2010J 上記のすべてのコンポーネントとWPF用のコンポーネント、合計80種を収録した最上位エデゖション

発売中 http://www.grapecity.com/japan/c1/

Page 45: Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?