choosing the right presentation technology : windows presentation foundation ("avalon"),...
Post on 18-Dec-2015
216 views
TRANSCRIPT
Choosing the Right Presentation Choosing the Right Presentation
TechnologyTechnology::Windows Presentation Foundation ("Avalon"), Windows Windows Presentation Foundation ("Avalon"), Windows Forms, ASP.NET, IE, and MoreForms, ASP.NET, IE, and More
PRS200PRS200Michael WallentMichael WallentGeneral ManagerGeneral ManagerWindows Client Platform and DocumentsWindows Client Platform and DocumentsMicrosoft CorporationMicrosoft Corporation
2
Universe of ExperiencesUniverse of Experiences
Vision: Create a consistent family of Vision: Create a consistent family of platforms and tools to help platforms and tools to help developers meet their customer developers meet their customer needs through creation of client needs through creation of client experiencesexperiences
Build platforms and tools that help Build platforms and tools that help developers radically improve the developers radically improve the quality of the experience for their quality of the experience for their usersusers
3
User Experience: Recent User Experience: Recent PastPastWebWeb
1995 - HTML1995 - HTMLSacrificed UX for Sacrificed UX for portability, portability, connectivity and connectivity and simplicitysimplicity
1997 – DHTML1997 – DHTMLInteractivity for the Interactivity for the web; not heavily used web; not heavily used until recentlyuntil recently
2005 – Increasing 2005 – Increasing InteractivityInteractivity
The “rediscovery” of The “rediscovery” of DHTMLDHTML
WindowsWindows1994 – Win321994 – Win32
New level of New level of functionality for functionality for installed applicationsinstalled applications
Many libraries on top Many libraries on top including MFC, ATL, VBincluding MFC, ATL, VB
1996 – DirectX1996 – DirectXGaming platform for Gaming platform for WindowsWindows
2002 – Windows Forms2002 – Windows FormsDeveloper productivity Developer productivity for Win32for Win32
2006 and Beyond2006 and BeyondRising demand for richnessRising demand for richness
4
Developer ConundrumDeveloper ConundrumCustomers want better experiencesCustomers want better experiencesLimited ByLimited By
Need For ReachNeed For ReachDo I control the environment? Do I need to target everyone Do I control the environment? Do I need to target everyone and every device?and every device?
Developer CapabilityDeveloper CapabilityCan my developers build what my designers envision, or do Can my developers build what my designers envision, or do I even know what’s best?I even know what’s best?
InertiaInertiaSystems are the way they are. Users are used to their Systems are the way they are. Users are used to their patterns of todaypatterns of today10% better doesn’t cut it 10% better doesn’t cut it
Better Experiences Lead to Better Experiences Lead to Differentiation and Customer ValueDifferentiation and Customer Value
5
User Experience Matters User Experience Matters Consumer SoftwareConsumer Software
HTML DHTML WinFX
6
MSN Hotmail(today)
MSN Hotmail(beta)
Office: Outlook
User Experience Matters User Experience Matters Productivity SoftwareProductivity Software
7
Rising Expectations for User Rising Expectations for User ExperienceExperience
DHTML
Win32 Direct 3D
ASP.NET “Atlas”
Windows Forms
Windows Presentation Foundation
WPF/E
8
Powerful & Powerful & Productive Productive
ProgramminProgramming Modelg Model
User User
InterfaceInterfaceReading & Reading & DocumentsDocuments
Graphics & Graphics & MediaMedia
Presentation TechnologiesPresentation Technologies
Win32Win32(User, GDI)(User, GDI)
Direct 3DDirect 3D
WindowWindows Formss Forms
WPFWPF
9
Powerful & Powerful & Productive Productive
ProgramminProgramming Modelg Model
User User
InterfaceInterfaceReading & Reading & DocumentsDocuments
Graphics & Graphics & MediaMedia
Presentation TechnologiesPresentation Technologies
HTMLHTML
WPF/EWPF/E
ASP.NET ASP.NET “Atlas”“Atlas”
DHTMLDHTML
10
ASP.NET “Atlas”ASP.NET “Atlas”
11
ASP.NET “Atlas”ASP.NET “Atlas”
Increased productivityIncreased productivityFewer concepts, fewer lines of codeFewer concepts, fewer lines of codeApplication and UI building blocks for common scenariosApplication and UI building blocks for common scenarios
Easier to author, debug, and maintainEasier to author, debug, and maintainClean separation of content, style, behavior, and codeClean separation of content, style, behavior, and codeWell integrated with design and development toolsWell integrated with design and development tools
Seamlessly integrated application modelSeamlessly integrated application modelWorks with ASP.NET pages and server controlsWorks with ASP.NET pages and server controlsAllows access to ASP.NET-hosted web services and Allows access to ASP.NET-hosted web services and componentscomponents
Works everywhere – cross-browser, standards Works everywhere – cross-browser, standards basedbased
A FRAMEWORK FOR BUILDING RICHER, MORE INTERACTIVE,
MORE PERSONALIZED WEB EXPERIENCES
A FRAMEWORK FOR BUILDING RICHER, MORE INTERACTIVE,
MORE PERSONALIZED WEB EXPERIENCES
PRS312 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas PRS312 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas (Part 1)(Part 1)
12
““Atlas” ArchitectureAtlas” Architecture
ASP.NET “Atlas” Server ExtensionsASP.NET “Atlas” Server Extensions
“Atlas” Server
Controls
“Atlas” Server
Controls
App Services Bridge
App Services Bridge
Web Services Bridge
Web Services Bridge
““Atlas” Server Atlas” Server FrameworkFramework
““Atlas” Client Framework and Atlas” Client Framework and ServicesServices
“Atlas” Client Script Library“Atlas” Client Script Library
Controls, Components
Controls, Components
Script CoreScript Core
Base Class LibraryBase Class Library
Component Model and UI FrameworkComponent Model and UI Framework
Browser Compatibility
Browser Compatibility
ASP.NET 2.0ASP.NET 2.0
Application Services
Application Services
Page Framework,
Server Controls
Page Framework,
Server Controls
““Atlas”-enabled Atlas”-enabled ASP.NET PagesASP.NET Pages
““Atlas”-enabled Atlas”-enabled ASP.NET PagesASP.NET Pages
Web ServicesWeb Services(ASMX or WCF)(ASMX or WCF)
Web ServicesWeb Services(ASMX or WCF)(ASMX or WCF)
HTML, Script,HTML, Script,““Atlas”Atlas”MarkupMarkup
HTML, Script,HTML, Script,““Atlas”Atlas”MarkupMarkup
““Atlas”Atlas”ServiceServiceProxiesProxies
““Atlas”Atlas”ServiceServiceProxiesProxies
13
““Atlas” Client ControlsAtlas” Client ControlsAutomatic data bindings between componentsAutomatic data bindings between components
ListView, ItemView controls for rich templated ListView, ItemView controls for rich templated renderingrendering
DataSource componentDataSource componentIntegrated with data-based web servicesIntegrated with data-based web services
Supports batched updatesSupports batched updates
Build programmatically or declarativelyBuild 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>
14
““Atlas” NetworkingAtlas” Networking
Client networking stack layered on XMLHTTPClient networking stack layered on XMLHTTPWebRequestWebRequest, , WebResponseWebResponse, , MethodRequestMethodRequest classes classes
ASP.NET “Atlas” Web Services BridgeASP.NET “Atlas” Web Services BridgeAccess to ASP.NET-hosted and serviced componentsAccess to ASP.NET-hosted and serviced components
ASMX and WCF services, .NET objects, ASP.NET page-level ASMX and WCF services, .NET objects, ASP.NET page-level servicesservices
Automatic client proxy generation 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>
15
““Atlas” Server ControlsAtlas” Server Controls
Wrap “Atlas” UI, client and server-side Wrap “Atlas” UI, client and server-side behaviorbehavior
Extends ASP.NET control model to “Atlas”Extends ASP.NET control model to “Atlas”Server-side programmability for Server-side programmability for
““Atlas” declarative script - *.aspx.scriptAtlas” declarative script - *.aspx.script
Client-side bindings, actions, templatesClient-side bindings, actions, templates
ASP.NET core controls will take advantage ASP.NET core controls will take advantage of “Atlas”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 PRS420 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas (Part 2)(Part 2)
16
ASP.NET “Atlas” DemosASP.NET “Atlas” Demos
MSN HotmailMSN HotmailA Simple “Atlas” ApplicationA Simple “Atlas” Application
17
Windows Presentation Windows Presentation FoundationFoundation
18
Windows Presentation Windows Presentation FoundationFoundation
BUILD THE APPLICATIONS YOUALWAYS DREAMED OF
BUILD THE APPLICATIONS YOUALWAYS DREAMED OF
19
The WPF ApproachThe WPF Approach
Unified approach to UI, Documents, and Unified approach to UI, Documents, and MediaMedia
Integrated development and experiencesIntegrated development and experiences
New Windows Infrastructure New Windows Infrastructure Retained graphics, vector based engineRetained graphics, vector based engine
Built on modern display hardware (D3D)Built on modern display hardware (D3D)
Modern development framework and patternsModern development framework and patterns
Designers and Tools MatterDesigners and Tools MatterBringing designers into the processBringing designers into the process
Declarative programming models for toolablity and Declarative programming models for toolablity and flexibilityflexibility
20
WPF CapabilitiesWPF Capabilities
Media Integration LayerMedia Integration Layer
2D2D
3D3D
AudioAudioImagingImagingTextText
VideoVideoEffectsEffects
Composition EngineComposition Engine
AnimationAnimation
Base ServicesBase Services
XAMLXAML
AccessibilityAccessibility
Property SystemProperty System
Input & EventingInput & Eventing
Document ServicesDocument Services
XPS DocumentsXPS Documents
Packaging Services
Packaging Services
User Interface ServicesUser Interface Services
Application ServicesApplication Services
Deployment Services
Deployment Services
ControlsControls
LayoutLayout
Databinding
Databinding
PRS305 WPF: A Lap around the Windows Presentation PRS305 WPF: A Lap around the Windows Presentation FoundationFoundation
21
WPF Base ServicesWPF Base Services
XAML<Button Name="btnOk">
<Button.Background>RadialGradient White Blue
</Button.Background>OK
</Button>
C#Button btnOk = new Button();btnOk.Background = new RadialGradientBrush(
Colors.White, Colors.Blue);btnOk.Content = "Ok";
VB .NETDim btnOk As New ButtonbtnOk.Background = New RadialGradientBrush(
Colors.White, Colors.Blue)btnOk.Content = "Ok"
Base ServicesBase Services
XAMLXAML
AccessibilityAccessibility
Property SystemProperty System
Input & EventingInput & Eventing
22
Visual Brushes – 2D on 3D
<VisualBrush x:Key="ContentOn3D" Stretch="Uniform" > <VisualBrush.Visual> <Button>OK</Button> </VisualBrush.Visual></VisualBrush><!-- Create 3D Model -->...<DiffuseMaterial Brush="{StaticResource ContentOn3D}"/>
WPF: Media Integration WPF: Media Integration LayerLayer
Vector Graphics<Path
Data= "M 100,200 C 100,25 400,350 400,175 H 280"
Stroke = "Red" StrokeThickness="3"/>
Media<MediaElement
Source=“video.wmv”/>
Media Integration LayerMedia Integration Layer
2D2D
3D3D
AudioAudioImagingImagingTextText
VideoVideoEffectsEffects
Composition EngineComposition Engine
AnimationAnimation
PRS309 WPF: Overview of Windows Vista GraphicsPRS309 WPF: Overview of Windows Vista GraphicsPRS325 WPF: Advanced Graphics (Part 1) – 2D, 3D, TextPRS325 WPF: Advanced Graphics (Part 1) – 2D, 3D, TextPRS328 WPF: Advanced Graphics (Part 2) – Animations, Imaging, PRS328 WPF: Advanced Graphics (Part 2) – Animations, Imaging, Effects, Media Effects, Media
23
WPF: User Interface WPF: User Interface ServicesServices
Layout & Databinding<StackPanel>
<Label>Select A Customer</Label><ListBox
Name="myListBox"Background="HoneyDew"ItemsSource="{Binding
{StaticResource myDataSource}}" </ListBox>
</StackPanel>
User Interface ServicesUser Interface Services
Application ServicesApplication Services
Deployment Services
Deployment Services
ControlsControls
LayoutLayout
Databinding
Databinding
PRS314 WPF: Using Application ServicesPRS314 WPF: Using Application ServicesPRS317 WPF: Beautiful Code, Beautiful Design – Applications Your Designers Can PRS317 WPF: Beautiful Code, Beautiful Design – Applications Your Designers Can Work WithWork WithPRS324 WPF: Using Data in Your WPF Applications: XML, WCF, ADO.NET and MorePRS324 WPF: Using Data in Your WPF Applications: XML, WCF, ADO.NET and MorePRS329 WPF: Building User Interface with Advanced Layout TechnologiesPRS329 WPF: Building User Interface with Advanced Layout TechnologiesPRS330 WPF: Creating Rich Content Experiences in Your ApplicationsPRS330 WPF: Creating Rich Content Experiences in Your Applications
24
WPF: Document ServicesWPF: Document Services
Packaging ServicesXpsDocument curDoc = new XpsDocument(Package.Open("foo.xps"));curDoc.SignDigitally(cert …);curDoc.Close();
Document ServicesDocument Services
XPS DocumentsXPS Documents
Packaging Services
Packaging Services
PRS330 WPF: Creating Rich Content Experiences in Your ApplicationsPRS330 WPF: Creating Rich Content Experiences in Your ApplicationsPRS333 WPF: Advances in Document Workflow – Securing, Viewing and Printing PRS333 WPF: Advances in Document Workflow – Securing, Viewing and Printing Your ContentYour Content
25
Windows Presentation Windows Presentation Foundation DemoFoundation Demo
Allscripts Patient MonitorAllscripts Patient Monitor
26
““WPF/E”WPF/E”
27
““WPF/E”WPF/E”
StrategyStrategy““WPF/E” is a subset runtime of WPF that’s WPF/E” is a subset runtime of WPF that’s small, fast, and will run everywhere (e.g., small, fast, and will run everywhere (e.g., Windows, Macintosh, Devices)Windows, Macintosh, Devices)Focused on scenarios that would like the Focused on scenarios that would like the Richness of WPF, but require more ReachRichness of WPF, but require more Reach
ImplementationImplementationSubset includes vector, image, video, Subset includes vector, image, video, animation, text, controls animation, text, controls
Considering out of scopeConsidering out of scope3D, Adaptive Documents, Extensibility, Hardware 3D, Adaptive Documents, Extensibility, Hardware Acceleration Acceleration Would like your feedbackWould like your feedback
No compilation required – WPF XAML+JScriptNo compilation required – WPF XAML+JScriptHostable and programmableHostable and programmable
ActiveX and Plug-ins for Browser HostingActiveX and Plug-ins for Browser HostingNative or ActiveX hosting for application scenariosNative or ActiveX hosting for application scenarios
28
WPF/E DemoWPF/E Demo
WPF/E technology overviewWPF/E technology overview
29
Windows Presentation Windows Presentation Foundation DemoFoundation Demo
3M Fire Prevention3M Fire Prevention
30
Choosing the Right TechnologyChoosing the Right Technology
ASP.NET “Atlas”ASP.NET “Atlas”Need the reach of DHTML, want application Need the reach of DHTML, want application level featureslevel features
Direct 3DDirect 3D3D centered technical applications, twitch 3D centered technical applications, twitch games games
Windows FormsWindows FormsBusiness applications across all versions of Business applications across all versions of WindowsWindows
Windows Presentation FoundationWindows Presentation FoundationImmersive Experiences, next generation Immersive Experiences, next generation Windows applicationsWindows applications
WPF/EWPF/EFocused on interactive content across multiple Focused on interactive content across multiple platforms and devicesplatforms and devices
31
Presentation Technologies Presentation Technologies TogetherTogether
ASP.NET “Atlas” & “WPF/E”ASP.NET “Atlas” & “WPF/E”ASP.NET “Atlas” will target the “WPF/E” runtimeASP.NET “Atlas” will target the “WPF/E” runtime
““WPF/E” can be used as an ActiveX control or plugin on WPF/E” can be used as an ActiveX control or plugin on HTML pagesHTML pages
WPF WPF ““Web Browser Applications” can be hosted in browser or Web Browser Applications” can be hosted in browser or frames (with partial trust)frames (with partial trust)
WPF & Win32WPF & Win32WPF applications can host Win32 HWNDsWPF applications can host Win32 HWNDs
Win32 based application can host Avalon contentWin32 based application can host Avalon content
WPF & Windows Forms WPF & Windows Forms WPF applications can host Windows Forms controls and WPF applications can host Windows Forms controls and content content
Windows Forms applications can host WPF controls and Windows Forms applications can host WPF controls and contentcontent
PRS313 WPF: Integrating with Your Win32/MFC ApplicationPRS313 WPF: Integrating with Your Win32/MFC ApplicationPRS321 Windows Forms: Integrating Windows Forms and Windows Presentation PRS321 Windows Forms: Integrating Windows Forms and Windows Presentation FoundationFoundationPRS334 WPF + WCF = MagicPRS334 WPF + WCF = Magic
32
In Closing…In Closing…
We are building platform We are building platform technologies that empower technologies that empower developers to meet the demand for developers to meet the demand for richer user experiencesricher user experiencesBroad number of alternatives for Broad number of alternatives for building presentation solutionsbuilding presentation solutions
We want to help you solve your critical We want to help you solve your critical architectural and business problemsarchitectural and business problems
Opportunity for developers to Opportunity for developers to differentiate based on experience, differentiate based on experience, which can drive a new business cyclewhich can drive a new business cycle
Increased revenue, reduced cost, Increased revenue, reduced cost, increased user productivityincreased user productivity
33
Presentation Platform @ Presentation Platform @ PDCPDC
45+ sessions at the PDC45+ sessions at the PDCGet StartedGet Started
PRS305 WPF: A Lap Around Windows Presentation PRS305 WPF: A Lap Around Windows Presentation FoundationFoundationPRS312 ASP.NET: Future Directions for Developing Rich Web PRS312 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas (Part 1)Applications with Atlas (Part 1)
Go Deep Go Deep ASP.NETASP.NETDirect 3DDirect 3DWindows FormsWindows FormsWindows Presentation FoundationWindows Presentation FoundationWindows VistaWindows Vista
See Case Studies at lunchSee Case Studies at lunch
Find us here at the PDC:Find us here at the PDC:Presentation Track LoungePresentation Track Lounge30+ Hands on Labs 30+ Hands on Labs Ask the Experts on Thursday nightAsk the Experts on Thursday night
http://msdn.microsoft.comhttp://msdn.microsoft.com
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.