a first look at windows presentation foundation everywhere (wpf/e): a cross …
DESCRIPTION
WPF/E is a cross platform runtime enabling a subset of Windows Presentation Foundation (WPF) XAML to reach beyond the latest Windows PC platforms. With WPF/E you'll be able to build rich, interactive experiences that run in major Web browsers on major platforms as well as on mobile devices. The combination of WPF/E and WPF will enable designers and developers to have a consistent development experience across smart clients, Web-based applications, and mobile devices. Join us to discuss the WPF/E feature set, targeted platforms and browsers, the developer experience, and to see a preview of the technology.TRANSCRIPT
1
A First Look At Windows A First Look At Windows Presentation Foundation Presentation Foundation Everywhere ("WPF/E")Everywhere ("WPF/E")
Joe StegmanJoe StegmanLead Program ManagerLead Program ManagerMicrosoft CorporationMicrosoft Corporation
NGW036NGW036
2
Session AgendaSession Agenda
A little talkingA little talking
DemosDemos
A bit more talkingA bit more talking
More demosMore demos
A few more wordsA few more words
Q&AQ&A
3
Windows Presentation Foundation/Everywhere Windows Presentation Foundation/Everywhere (“WPF/E”)(“WPF/E”)
Subset of WPF focused on interactive Subset of WPF focused on interactive contentcontent
Great integration with web Great integration with web Cross platform and cross browserCross platform and cross browserSupports JavaScript and C#/VB.NetSupports JavaScript and C#/VB.Net
XAML is the enabling technologyXAML is the enabling technology
Available SoonAvailable SoonCustomer preview in Q3 2006Customer preview in Q3 2006Web release in first half of 2007Web release in first half of 2007Device release in second half of 2007Device release in second half of 2007
4
"WPF/E" Architecture"WPF/E" ArchitectureBrowser Application / OS
ContentPackage XAML
ProgrammingModel
“WPF/E” Runtime
Plug-insPlug-ins Platform SpecificHosting ModelPlatform SpecificHosting Model
JavaScript
C# / VB.NET
Native API
XML - DataFonts Video/AudioImages
Native “WPF/E” APINative “WPF/E” API
UI & Rendering CoreUI & Rendering Core
Platform Abstraction LayerPlatform Abstraction Layer
5
"WPF/E" Demo"WPF/E" Demo
6
““WPF/E” Web PlatformsWPF/E” Web Platforms
Operating SystemsOperating SystemsWin XP, Win2K, Win2K3, VistaWin XP, Win2K, Win2K3, Vista
Considering Win9XConsidering Win9X
Mac OS X 10.*Mac OS X 10.*
Considering Linux and SolarisConsidering Linux and Solaris
BrowsersBrowsersIE 5.5+IE 5.5+
Mozilla 1+, Firefox 1+Mozilla 1+, Firefox 1+
Opera 7+Opera 7+
Safari 1+Safari 1+
7
"WPF/E" Features"WPF/E" Features
Core Runtime
Media Integration LayerMedia Integration Layer
AudioAudio VideoVideo
Composition EngineComposition Engine
Base ServicesBase Services
XML/XAML ParserXML/XAML Parser
AccessibilityAccessibility
Property SystemProperty System
Input and EventingInput and Eventing
TextText
ImagingImaging
2D2D
Animation
Animation
Other ServicesOther Services
Core ControlsCore Controls
Basic LayoutBasic Layout
Container Controls
Container Controls
8
Increased Development Increased Development ProductivityProductivity
Integrated Platform for UI, Text, and MediaIntegrated Platform for UI, Text, and Media
Declarative Programming (XAML)Declarative Programming (XAML)
Bringing Designers Into the Application Bringing Designers Into the Application Development ProcessDevelopment Process
Tools for Designers: Microsoft ExpressionTools for Designers: Microsoft Expression
Tools for Developers: Visual StudioTools for Developers: Visual Studio
3rd Party Support: Mobiform, Electric Rain3rd Party Support: Mobiform, Electric Rain
9
DesignerDesigner
Emotional Emotional ConnectionConnection
Look, behavior, data Look, behavior, data visualization, usability, brand visualization, usability, brand
impactimpact
DeveloperDeveloper
Functional Functional CapabilitiesCapabilitiesDeployment, function, data Deployment, function, data connection and integrity, IT connection and integrity, IT process, securityprocess, security
C++C#
VB.NET
PaperJPG / TIFF
MOV / WMV PSDPPT
XAML
Unifying The Designer/Developer ProcessUnifying The Designer/Developer Process
10
"WPF/E" Features Demo"WPF/E" Features Demo
11
"WPF/E" Web Programming "WPF/E" Web Programming ModelModel
XAML and JavaScript in a web pageXAML and JavaScript in a web pageAccess "WPF/E" via JavaScriptAccess "WPF/E" via JavaScript
Support inline and external XAML/scriptSupport inline and external XAML/script
XAML and .NET Framework codeXAML and .NET Framework code"WPF/E" hosts an x-platform .NET runtime"WPF/E" hosts an x-platform .NET runtime
Code (C#/VB.NET) is compiled into an intermediate Code (C#/VB.NET) is compiled into an intermediate language (IL)language (IL)
IL is run in a secure and “managed” environmentIL is run in a secure and “managed” environment
"WPF/E" loads external package containing IL and "WPF/E" loads external package containing IL and XAMLXAML
12
External PackageExternal Package
<html><html> <<bodybody>>
<object<object/embed /embed id=id=“wpfehost” size=“…”>“wpfehost” size=“…”><param name=“source” value=“<param name=“source” value=“default.wpfedefault.wpfe”/>”/><param name=“startuppage” <param name=“startuppage”
value=“value=“default.xamldefault.xaml”/>”/></…></…>
<</body/body>></html></html>
default.wpfedefault.wpfe contains: contains:default.xaml default.xaml (compressed)(compressed)It may also contain:It may also contain:
Other XAML filesOther XAML filesXAML and script filesXAML and script filesResources (images, media, fonts, others)Resources (images, media, fonts, others)
13
.NET Programming Model.NET Programming Model
Web page plug-in loads external packageWeb page plug-in loads external package
Web Page:Web Page:<html><html>
<!-- … --><!-- … --> <object<object/embed/embed source=“source=“sample.wpfesample.wpfe”>…</…>”>…</…></html></html>
sample.wpfesample.wpfe::sample.xamlsample.xamlsample.ilsample.il
External package contains XAML and ILExternal package contains XAML and ILThe container is loaded into the "WPF/E" plug-inThe container is loaded into the "WPF/E" plug-in
14
““Managed Code” Managed Code” Programming ModelProgramming Modelsample.xaml:
<Page Name=“p1”><Button Name=“b1”>Turn Red</Button>
</Page>
sample.cs (becomes sample.il):
b1.Click += new EventHandler(Button1_Click);
void Button1_Click(object sender, EventArgs e) {p1.Background = Brushes.Red;
}
15
"WPF/E" Controls"WPF/E" Controls
Basic controlsBasic controlsInput, Button, CheckBox, RadioButtonInput, Button, CheckBox, RadioButton
Canvas, Grid and StackCanvas, Grid and Stack
Rich styles and template supportRich styles and template support
16
Questions And Feedback…Questions And Feedback…
17
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.