340 likes | 686 Views
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.
E N D
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
Web 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 Windows 1994 – Win32 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 User Experience: Recent Past • 2006 and Beyond • Rising demand for richness
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
User Experience Matters Consumer Software HTML DHTML WinFX
User Experience Matters Productivity Software MSN Hotmail (today) MSN Hotmail (beta) Office: Outlook
ASP.NET “Atlas” Windows Presentation Foundation WPF/E DHTML Win32 Direct 3D Windows Forms Rising Expectations for User Experience
Win32 (User, GDI) Direct 3D Windows Forms WPF Presentation Technologies
HTML DHTML ASP.NET “Atlas” WPF/E Presentation Technologies
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)
“Atlas” Client Script Library Controls, Components ASP.NET “Atlas” Server Extensions App Services Bridge Component Model and UI Framework “Atlas” Server Controls Web Services Bridge Base Class Library Script Core ASP.NET 2.0 Page Framework, Server Controls Application Services Browser Compatibility “Atlas” Architecture HTML, Script, “Atlas” Markup “Atlas” Service Proxies “Atlas”-enabled ASP.NET Pages Web Services (ASMX or WCF) “Atlas” Client Framework and Services “Atlas” Server Framework
“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>
“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>
“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)
ASP.NET “Atlas” Demos MSN Hotmail A Simple “Atlas” Application
Windows Presentation Foundation BUILD THE APPLICATIONS YOU ALWAYS DREAMED OF
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
Media Integration Layer Base Services Document Services Imaging 2D Text Audio XAML XPS Documents Video Effects 3D Accessibility Packaging Services Animation Input & Eventing User Interface Services Composition Engine Property System Application Services Controls Databinding Deployment Services Layout WPF Capabilities PRS305 WPF: A Lap around the Windows Presentation Foundation
Base Services XAML Accessibility Input & Eventing Property System WPF Base Services C# Button btnOk = new Button(); btnOk.Background = new RadialGradientBrush( Colors.White, Colors.Blue); btnOk.Content = "Ok"; XAML <Button Name="btnOk"> <Button.Background> RadialGradient White Blue </Button.Background> OK </Button> VB .NET Dim btnOk As New Button btnOk.Background = New RadialGradientBrush( Colors.White, Colors.Blue) btnOk.Content = "Ok"
Media Integration Layer Imaging 2D Text Audio Video Effects 3D Animation Composition Engine WPF: Media Integration Layer 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}"/> 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” /> 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
User Interface Services Application Services Controls Databinding Deployment Services Layout WPF: User Interface Services 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
Document Services XPS Documents Packaging Services WPF: Document 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
Windows Presentation Foundation Demo Allscripts Patient Monitor
“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
WPF/E Demo WPF/E technology overview
Windows Presentation Foundation Demo 3M Fire Prevention
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
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
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
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
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.