開発者にとってのWindows Vistaと Windows開発

Download Report

Transcript 開発者にとってのWindows Vistaと Windows開発

開発者にとってのWindows Vistaと
Windows開発環境の進化
マイクロソフト株式会社
デベロッパーエバンジェリスト
松崎 剛
Agenda
Windows Vista とそのビジョン
Confident
Clear
Connected
New Technologies
.NET Framework 3.0 の概要
WPF : Windows Presentaion Foundation
WCF : Windows Comunication Foundation
WF : Windows Workflow Foundation
WCS : Windows CardSpace™
まとめ
Windows Vista とそのビジョン
ソフトウェアと社会との関係
そして、Windows Vista …
ソフトウェアが社会に貢献する領域
社会がソフトウェアに求める領域
• 新しいエクスペリエンス (より直感的な世界)
• セキュリティ
• 氾濫した知識(コンテンツ)への気づき
• 信頼性 (事故・故障の低減、回避、追跡性)
• 実社会の動きや期待に即した動作
• 科学・技術の倫理性や遵法
……
……
それらを支える技術のベース(基盤・開発バックボーン)
• write once, connect with any style
• write once, persist with any format
• write once, process with any combination
• write once, ......
ソフトウェアと社会との関係
そして、Windows Vista …
社会からの要請に応えること
Confident
OS としての基本機能の強化
社会に新しい価値をもたらすこと
Clear
情報の管理と利用方法の明確化
開発のための基盤の向上
Connected
情報、人、デバイスの密接な連係
より優れた信頼性と管理性
セキュリティ対策
隔離と耐性 – UAC・IE7・アンチスパイウェア・NAP
H/W ベースのセキュリティ – 安全な起動と TPM
更新と監視 – 新しいイベントビューア
高パフォーマンスと高信頼性
優先タスクへの俊敏な応答、アプリの起動速度の向上
スタンバイからの高速な復帰、ブート速度の向上
ビルトインされた診断機能と、クラッシュ・ハングの減少
展開・管理の効率向上
パッチ適用時のリブート率を低減
イメージの活用で迅速な展開
コマンドラインスクリプトの活用
よりクリエイティブで効果的な作業環境
ユーザエクスペリエンスの向上
先進的、クリア、そしてプロフェッショナルな UI
ハードウェアの進化へ対応したデザイン
更に進化したエクスプローラ
情報の可視化・体系化と検索性の向上
検索速度の向上
柔軟なデータの組織化と直感的なツール
PC に散在するデータの発掘
協業と共有を簡易化
簡単でセキュアな共有
アドホックとピアツーピアでの協業、プレゼンテー
ション機能の補佐
充実した PC 間同期の機能
次世代としてのプラットフォーム
次世代アプリケーションの容易で短期間な開発をサポート
Windows Vista の機能を活用するため Win32 を拡張
.NET Framework 3.0 でのアプリケーションの開発
Windows Communication Foundation (WCF)
Windows Workflow Foundation (WF)
など
場所を選ばないモバイル環境の実現
より簡単でセキュアなネットワークの検出と利用
電源プラン、スリープよる柔軟な電源管理
Windows HotStart、プレゼンテーション設定、など
情報、アプリケーション、PCシステムへの接続
互換性に配慮した設計 (800 を超える互換性実証テストの実行)
Windows Vista プログラム互換性アシスタント、各種ガ
イダンスの提供
開発視点からみた 4 つの柱と
New Technologies
Windows
Presentation
Foundation
(WPF)
Windows
Communication
Foundation
(WCF)
Windows
Workflow
Foundation
(WF)
.NET Framework 3.0
既存の .NET Framework 2.0
Windows
CardSpace
(WCS)
.NET Framework 3.0 の概要
Windows Presentation Foundation
そのメリット
ユーザー エクスペリエンスの向上
高度なグラフィックとインタラクションの実現
(ベクトルベース、アンチエイリアス、など)
資源利用効率の最適化 (GPU の活用)
開発者とデザイナのシームレスなコラボレーション
新しいユーザー インターフェイス記述言語
開発者とデザイナの役割の明確化、
コラボレーションの促進
既存のコードベース、
スキルセットの有効活用
プレゼンテーション テクノロジの統合
Windows Presentation Foundation
実装 (XAMLによるUI 実装)
<Button Width="100"> OK
<Button.Background>
LightBlue
</Button.Background>
</Button>
XML ベース (テキスト)
eXtensible Application Markup Language
宣言型
UI 記述型
WPF プラットフォームを制御
オープンな仕様
Windows Presentation Foundation
その特徴 ~ コントロールの多様な表現
Windows Presentation Foundation
その特徴 ~ 3D
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera
FarPlaneDistance="20"
LookDirection="0,-0.65,-1"
UpDirection="0,1,0"
NearPlaneDistance="1"
Position="0,2,3" FieldOfView="40" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<AmbientLight Color="White" />
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D
TriangleIndices="0,1,2,2,3,0,6,5,4,4,7,6"
TextureCoordinates="1,1 1,0
0,0
0,1
0,1 0,0
1,0
1,1" Positions="-0.5,-0.5,0
-0.5,0.5,0
0.5,0.5,0
0.5,-0.5,0
-0.5,-0.5,0
0.5,0.5,0
0.5,0.5,0
0.5,-0.5,0 " />
</GeometryModel3D.Geometry>
<GeometryModel3D.Transform>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D
x:Name="MyRotation3D" Angle="45" Axis="0 1 0" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</GeometryModel3D.Transform>
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<VisualBrush>
<VisualBrush.Visual>
<TextBlock Text="Hello" />
</VisualBrush.Visual>
</VisualBrush>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
Windows Presentation Foundation
その特徴 ~ アニメーション
StoryBoard
<Grid.Resources>
<Storyboard x:Key ="OnLoaded">
<DoubleAnimation
Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Rectangle.Opacity)"
From="1.0" To="0.0" Duration="0:0:5"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</Grid.Resources>
<StackPanel Margin="10">
<Rectangle Name="MyRectangle" Width="100" Height="100" Fill="Blue">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<EventTrigger.Actions>
<BeginStoryboard x:Name ="OnLoaded_BeginStoryboard" Storyboard
="{DynamicResource OnLoaded}"/>
</EventTrigger.Actions>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</StackPanel>
Windows Presentation Foundation
その特徴 ~ メディア統合
Windows Presentation Foundation
デザイン環境
グラフィカルなデザイン環境
XAML コードの自動作成
よりプロフェッショナルで専門性の高いなグラ
フィクスデザインの支援
グラフィクス要素の再利用 (スタイル、テンプ
レート、など)
Windows Presentation Foundation
ロジックの実装
XAML (UI)
<Canvas Background="silver" Margin="20">
<Button Name=“btn1” Click=“OnClick1”>
Hello world!
</Button>
</Canvas>
</Border>
C#/VB (Logic)
void OnClick1(object sender, RoutedEventArgs e)
{
btn1.Background = Brushes.LightBlue;
}
Windows Communication Foundation
そのメリット
ファーストクラスな通信実装モデルの提供
Service Oriented
通信テクノロジーとビジネスロジックの分離
Component Oriented
Contract-First デザイン
Object Oriented
分散アプリケーション開発の保守・開発性の向上
×
チューニング結果に応じた通信方法の
変更容易性や、移行の迅速化、など
Web サービス標準に準拠した相互運用性の実現
.NET
Remoting
WS-* 標準仕様のフルサポート
Enterprise
System.
既存のテクノロジとの互換性、コンフィグレーションによる
Services
Messaging
WSE
他プラットフォームとの接続
ASMX
Windows Communication Foundation
デザインコンセプト
内部的なサービス内の振る舞いを実装
•
•
•
•
クライアント
並列処理、インスタンス化制御
Fault、Exception 処理
偽装、認証、認可
トランザクションの自動参加・投票 etc …
サービス
Behavior
Behavior
Endpoint
Behavior
C B
Endpoint
A
Message
A
Binding
Contract
B
Endpoint
Address
Where? How? What?
C
Behavior
Windows Communication Foundation
実装
サービスコントラクト
using System.ServiceModel;
[ServiceContract]
public interface IProductServiceContract
{
[OperationContract]
Product[] GetProducts();
}
データコントラクト
[DataContract]
public class Product
{
[DataMember]
public int ProductID;
[DataMember]
public string ProductName;
・・・・
サービスコンフィグレーション
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.serviceModel>
サービス実装のタイプ情報
Namespace.Class 名
<services>
<service type="ProductService.ProductServiceImpl">
<endpoint
A address="http://localhost:3000/ProductService/ProductService.svc"
B binding="basicHttpBinding"
C contract="ProductService.IProductServiceContract, ProductService" />
</service>
</services>
サービスコントラクトのタイプ情報
コントラクトのアセンブリ名
Namespace.Class 名
</system.serviceModel>
Windows Workflow Foundation
そのメリット
Windows プラットフォームにおけるワークフロー ソ
リューションの “テクノロジー統一”
すべてのワークフローテクノロジーにおける統一基盤の
提供(Microsoft Office Sharepoint Server 2007, など)
システム ワークフロー/ヒューマン ワークフローの双方
を想定
シーケンシャルワークフロー/ステートマシンワークフ
ローの双方を想定
ワークフロー開発における生産性と柔軟性の向上
XML ベースの宣言型ワークフロー モデル
カスタムアクティビティの開発者とフローの作成者の分離
ワークフローのビジュアルデザインとデバッグ
サービス指向型プロセス管理(統合)の支援
Windows Workflow Foundation
実装
ワークフローの定義 (XOML)
<?Mapping XmlNamespace="Activities"
ClrNamespace="System.Workflow.Activities"
Assembly="System.Workflow.Activities" ?>
<SequentialWorkflow x:Class="MyWorkflow" xmlns="Activities"
xmlns:x="Definition">
…
</SequentialWorkflow>
ワークフローの実行
static void Main(string[] args)
{
// WorkflowRuntime の作成
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// workflow の型をロード
Type type = typeof(MyWorkflow);
// workflow インスタンスの作成/ワークフローの開始
workflowRuntime.StartWorkflow(type);
// WorkflowRuntime の終了まで待機
waitHandle.WaitOne();
}
Windows Workflow Foundation
役割分担の明確化(開発シナリオ)
ワークフロー開発
ほぼコードレス、フローの記述
Application
Workflows
フロー ロジック
ホスト開発
アプリケーションサービス&ホスト
カスタム・アクティビティ
アクティビティ開発
個別の機能や値評価ロジック等
Runtime
Services
カスタムサービス
Windows CardSpace
そのメリット / 実装
Windows CardSpace (WCS) とは ?
多様化するインターネット上のサービス、氾濫するユーザ情
報(認証情報)、などの解決を目的とした認証のエコシステム
そのメリット
効率的な認証情報の管理
ID メタシステムによるレガシー資産
のシームレスな移行
多様な認証シナリオへの対応
オープンな相互運用
WS-* (OASIS) ベースの標準仕様
異種プラットフォーム間における認証
まとめ
ソフトウェアが社会に貢献する領域
社会がソフトウェアに求める領域
WPF
WCS
それらを支える技術のベース(基盤・開発バックボーン)
WF
WCF
まとめ
ソフトウェアが社会に貢献する領域
社会がソフトウェアに求める領域
WPF
WCS
それらを支える技術のベース(基盤・開発バックボーン)
WF
WCF
Our foundations doesn’t matter …
But your applications “does” matter !
技術リソース
Windows Vista Developer Center:
http://www.microsoft.com/japan/msdn/windowsvista/
開発ツール (ダウンロードセンター)
http://www.microsoft.com/downloads/
Microsoft Expression:
http://www.microsoft.com/japan/expression/
Windows Presentation Foundation
プログラミング
オーム社 ISBN 4-276-06641-X
Chris Sells, Ian Griffiths 著
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.