Choosing the Right Presentation Technology: Windows

Download Report

Transcript Choosing the Right Presentation Technology: Windows

Choosing the Right Presentation Technology:
Windows Presentation Foundation ("Avalon"), Windows Forms,
ASP.NET, IE, and More
PRS200
Michael Wallent
General Manager
Windows Client Platform and Documents
Microsoft Corporation
Universe of Experiences
Vision: Create a consistent family of platforms
and tools to help developers meet their
customer needs through creation of client
experiences
Build platforms and tools that help developers
radically improve the quality of the
experience for their users
2
User Experience: Recent Past
Web
Windows
1994 – Win32
1995 - HTML
Sacrificed UX for
portability, connectivity
and simplicity
1997 – DHTML
Interactivity for the web;
not heavily used until
recently
2005 – Increasing
Interactivity
The “rediscovery” of
DHTML
New level of functionality
for installed applications
Many libraries on top
including MFC, ATL, VB
1996 – DirectX
Gaming platform for
Windows
2002 – Windows Forms
Developer productivity for
Win32
2006 and Beyond
Rising demand for richness
3
Developer Conundrum
Customers want better experiences
Limited By
Need For Reach
Do I control the environment? Do I need to target everyone and
every device?
Developer Capability
Can my developers build what my designers envision, or do I even
know what’s best?
Inertia
Systems are the way they are. Users are used to their patterns of
today
10% better doesn’t cut it
Better Experiences Lead to
Differentiation and Customer Value
4
User Experience Matters
Consumer Software
HTML
DHTML
WinFX
5
User Experience Matters
Productivity Software
MSN Hotmail
(today)
MSN Hotmail
(beta)
Office: Outlook
6
Rising Expectations for User
Experience
Windows Presentation Foundation
Windows Forms
Win32
Direct 3D
WPF/E
DHTML
ASP.NET “Atlas”
7
Presentation Technologies
Powerful &
Productive
Programming
Model
User
Interface
Reading &
Documents
Graphics &
Media
Win32
(User, GDI)
Direct 3D
Windows
Forms
WPF
8
Presentation Technologies
Powerful &
Productive
Programming
Model
User
Interface
Reading &
Documents
Graphics &
Media
HTML
DHTML
ASP.NET
“Atlas”
WPF/E
9
ASP.NET “Atlas”
10
ASP.NET “Atlas”
A FRAMEWORK FOR BUILDING RICHER, MORE INTERACTIVE,
MORE PERSONALIZED WEB EXPERIENCES
Increased productivity
Fewer concepts, fewer lines of code
Application and UI building blocks for common scenarios
Easier to author, debug, and maintain
Clean separation of content, style, behavior, and code
Well integrated with design and development tools
Seamlessly integrated application model
Works with ASP.NET pages and server controls
Allows access to ASP.NET-hosted web services and components
Works everywhere – cross-browser, standards based
PRS312 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas (Part 1)
11
“Atlas” Architecture
HTML, Script,
“Atlas”
Markup
“Atlas”
Service
Proxies
“Atlas” Client Script
Library
“Atlas”-enabled
ASP.NET Pages
(ASMX or WCF)
ASP.NET “Atlas” Server Extensions
Controls, Components
Component Model and
UI Framework
Web Services
“Atlas”
Server Controls
App Services
Bridge
Web Services
Bridge
Base Class Library
ASP.NET 2.0
Script Core
Browser Compatibility
“Atlas” Client Framework and
Services
Page
Framework,
Server Controls
Application
Services
“Atlas” Server
Framework
12
“Atlas” Client Controls
Automatic data bindings between components
ListView, ItemView controls for rich templated rendering
DataSource component
Integrated with data-based web services
Supports batched updates
Build programmatically or declaratively
<input id="Text1" type="text" />
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<textBox id="Text1" targetElement="Text1">
<behaviors>
<autoComplete
serviceURL=“myService.asmx" serviceMethod="GetCompletionList"
minimumPrefixLength="1" completionList="Text1__autocomplete" />
</behaviors>
</textBox>
</components>
</page>
</script>
13
“Atlas” Networking
Client networking stack layered on XMLHTTP
WebRequest, WebResponse, MethodRequest classes
ASP.NET “Atlas” Web Services Bridge
Access to ASP.NET-hosted and serviced components
ASMX and WCF services, .NET objects, ASP.NET page-level
services
Automatic client proxy generation
<script src=“MyService.asmx/js”></script>
<script>
function onLoad() {
MyService.GetItemsByName(Text1.value, onComplete);
}
function onComplete(results) {
$(‘ResultsDataSource’).set_data(results);
}
</script>
14
“Atlas” Server Controls
Wrap “Atlas” UI, client and server-side behavior
Extends ASP.NET control model to “Atlas”
Server-side programmability for
“Atlas” declarative script - *.aspx.script
Client-side bindings, actions, templates
ASP.NET core controls will take advantage of
“Atlas”
<atlas:TextBox
ID=“Text1”
AutoCompletionServiceUrl=“myService.asmx"
AutoCompletionServiceMethod="GetCompletionList“
AutoCompletionMinimumPrefixLength="1"
runat="server" />
PRS420 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas (Part 2)
15
ASP.NET “Atlas” Demos
MSN Hotmail
A Simple “Atlas” Application
16
Windows Presentation
Foundation
17
Windows Presentation Foundation
BUILD THE APPLICATIONS YOU
ALWAYS DREAMED OF
18
The WPF Approach
Unified approach to UI, Documents, and Media
Integrated development and experiences
New Windows Infrastructure
Retained graphics, vector based engine
Built on modern display hardware (D3D)
Modern development framework and patterns
Designers and Tools Matter
Bringing designers into the process
Declarative programming models for toolablity and flexibility
19
WPF Capabilities
Document Services
User Interface Services
XPS Documents
Application Services
Controls
Databinding
Packaging Services
Deployment Services
Layout
Media Integration Layer
Imaging
Base Services
2D
Audio
XAML
Video
Accessibility
Text
Effects
3D
Animation
Input & Eventing
Composition Engine
Property System
PRS305 WPF: A Lap around the Windows Presentation Foundation
20
WPF Base Services
Base Services
XAML
Accessibility
Input & Eventing
Property System
C#
Button btnOk = new Button();
btnOk.Background = new
RadialGradientBrush(
Colors.White, Colors.Blue);
XAML
<Button Name="btnOk">btnOk.Content = "Ok";
<Button.Background>
VB .NET
RadialGradient White Blue
Dim btnOk As New Button
</Button.Background>
btnOk.Background = New
OK
RadialGradientBrush(
Colors.White, Colors.Blue)
</Button>
btnOk.Content = "Ok"
21
WPF: Media Integration Layer
Media Integration Layer
Imaging
2D
Audio
Text
Effects
Video
3D
Animation
Composition Engine
Visual Brushes – 2D on 3D
Vector Graphics
<Path
<VisualBrush x:Key="ContentOn3D" Stretch="Uniform" >
Data= "M 100,200
Media
<VisualBrush.Visual>
C 100,25 400,350 400,175
<MediaElement
<Button>OK</Button>
H 280"
</VisualBrush.Visual>
Source=“video.wmv”
</VisualBrush>
Stroke = "Red"
/>
<!-- StrokeThickness="3"
Create 3D Model -->
...
/>
<DiffuseMaterial Brush="{StaticResource ContentOn3D}"/>
PRS309 WPF: Overview of Windows Vista Graphics
PRS325 WPF: Advanced Graphics (Part 1) – 2D, 3D, Text
PRS328 WPF: Advanced Graphics (Part 2) – Animations, Imaging, Effects, Media
22
WPF: User Interface Services
User Interface Services
Application Services
Controls
Databinding
Deployment Services
Layout
Layout & Databinding
<StackPanel>
<Label>Select A Customer</Label>
<ListBox
Name="myListBox"
Background="HoneyDew"
ItemsSource="{Binding
{StaticResource myDataSource}}"
</ListBox>
</StackPanel>
PRS314 WPF: Using Application Services
PRS317 WPF: Beautiful Code, Beautiful Design – Applications Your Designers Can Work With
PRS324 WPF: Using Data in Your WPF Applications: XML, WCF, ADO.NET and More
PRS329 WPF: Building User Interface with Advanced Layout Technologies
PRS330 WPF: Creating Rich Content Experiences in Your Applications
23
WPF: Document Services
Document Services
XPS Documents
Packaging Services
Packaging Services
XpsDocument curDoc = new
XpsDocument(Package.Open("foo.xps"));
curDoc.SignDigitally(cert …);
curDoc.Close();
PRS330 WPF: Creating Rich Content Experiences in Your Applications
PRS333 WPF: Advances in Document Workflow – Securing, Viewing and Printing Your Content
24
Windows Presentation
Foundation Demo
Allscripts Patient Monitor
25
“WPF/E”
26
“WPF/E”
Strategy
“WPF/E” is a subset runtime of WPF that’s small, fast,
and will run everywhere (e.g., Windows, Macintosh,
Devices)
Focused on scenarios that would like the Richness of
WPF, but require more Reach
Implementation
Subset includes vector, image, video, animation, text,
controls
Considering out of scope
3D, Adaptive Documents, Extensibility, Hardware Acceleration
Would like your feedback
No compilation required – WPF XAML+JScript
Hostable and programmable
ActiveX and Plug-ins for Browser Hosting
Native or ActiveX hosting for application scenarios
27
WPF/E Demo
WPF/E technology overview
28
Windows Presentation
Foundation Demo
3M Fire Prevention
29
Choosing the Right Technology
ASP.NET “Atlas”
Need the reach of DHTML, want application level
features
Direct 3D
3D centered technical applications, twitch games
Windows Forms
Business applications across all versions of Windows
Windows Presentation Foundation
Immersive Experiences, next generation Windows
applications
WPF/E
Focused on interactive content across multiple
platforms and devices
30
Presentation Technologies Together
ASP.NET “Atlas” & “WPF/E”
ASP.NET “Atlas” will target the “WPF/E” runtime
“WPF/E” can be used as an ActiveX control or plugin on HTML
pages
WPF
“Web Browser Applications” can be hosted in browser or frames
(with partial trust)
WPF & Win32
WPF applications can host Win32 HWNDs
Win32 based application can host Avalon content
WPF & Windows Forms
WPF applications can host Windows Forms controls and content
Windows Forms applications can host WPF controls and content
PRS313 WPF: Integrating with Your Win32/MFC Application
PRS321 Windows Forms: Integrating Windows Forms and Windows Presentation Foundation
PRS334 WPF + WCF = Magic
31
In Closing…
We are building platform technologies that
empower developers to meet the demand
for richer user experiences
Broad number of alternatives for building
presentation solutions
We want to help you solve your critical
architectural and business problems
Opportunity for developers to differentiate
based on experience, which can drive a
new business cycle
Increased revenue, reduced cost, increased
user productivity
32
Presentation Platform @ PDC
45+ sessions at the PDC
Get Started
PRS305 WPF: A Lap Around Windows Presentation Foundation
PRS312 ASP.NET: Future Directions for Developing Rich Web
Applications with Atlas (Part 1)
Go Deep
ASP.NET
Direct 3D
Windows Forms
Windows Presentation Foundation
Windows Vista
See Case Studies at lunch
Find us here at the PDC:
Presentation Track Lounge
30+ Hands on Labs
Ask the Experts on Thursday night
http://msdn.microsoft.com
33
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.