1 Windows Presentation Foundation ("Avalon"): Using Application Services Lauren Lavoie PRS314 Program Manager Microsoft Corporation

Slides:



Advertisements
Similar presentations
Why should my organisation move to Internet Explorer 9? An upgrade guide for IT professionals.
Advertisements

Faith Allington Program Manager Microsoft Corporation WSV322.
Microsoft SharePoint 2010 technology for Developers
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Code Access Security vs. Role-Based Security  RBS  Security identity attached to user accounts  Access to resources specified according to user’s group.
Create Windows ® Applications with.NET Allan Knudsen.NET Developer Evangelist Microsoft.
1 of 6 Parts of Your Notebook Below is a graphic overview of the different parts of a OneNote 2007 notebook. Microsoft ® OneNote ® 2007 notebooks are digital.
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
It’s always better live. MSDN Events Developer Productivity Improvements with Visual Studio 2008 and Office Business Applications.
1 of 7 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Future Directions for Leveraging Advanced XML Tools and Building Custom XML Solutions Denise Draper DAT321 Microsoft Corporation.
Windows Forms in Visual Studio 2005: An Overview Saurabh Pant Program Manager Microsoft Corporation.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
300MM active users worldwide Worldwideleadership.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
1 Developing Rules Driven Workflows in Windows Workflow Foundation Jurgen Willis COM318 Program Manager Microsoft Corporation.
2 A First Look at Windows Presentation Foundation Everywhere ("WPF/E") Joe Stegman Lead Program Manager Microsoft Corporation.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation.
Microsoft Confidential Office as a Development Platform Tim Heuer
DEV290 Building Office Solutions with Visual Studio Eric Carter Lead Developer Developer Platform & Evangelism Microsoft Corporation.
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
 Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application.
Exploiting New Capabilities for Search And Organization Kerem Karatal DAT307 Lead Program Manager Microsoft Corporation.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Windows Forms: Harnessing The Power And Flexibility Of Windows Forms 2.0 Erick Ellis PRS402 Program Manager.NET Client Microsoft Corporation.
Understand what kind of applications Windows Presentation Foundation can deliver See how Visual Studio 2008 & Microsoft Expression Blend work together.
DEV363 Smart Client: Getting the Most out of Windows Forms and WPF Brad Abrams Group Program Manager.NET Framework Team
Building RIA for Desktop, Web and Mobile using Silverlight and WPF Giorgio Sardo UX Consultant, Microsoft UK blogs.msdn.com/Giorgio.
OFC290 Information Rights Management in Microsoft Office 2003 Lauren Antonoff Group Program Manager.
Mark Aslett Microsoft Introduction to Application Compatibility.
Windows Forms in Visual Studio 2005: An Overview Name: Joe Stegman Title: Lead Program Manager Session code.
Tony Goodhew Product Planner DEV328.
The Microsoft Technical Roadshow 2007 Rich Client Development in XAML Mark Johnston Developer & Platform Group Microsoft Ltd
A Deep Dive into Best Practices with the Windows Communication Foundation John Justice COM415 Program Manager Microsoft Corporation.
Create Windows ® Applications with.NET Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft.
James Akrigg Microsoft Ltd Integrating InfoPath Forms Into Workflow Solutions And Business Processes.
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
Windows Forms in Visual Studio 2005 Mike Pelton Systems Engineer Microsoft Ltd
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
A Lap Around Windows Presentation Foundation. Why hasn’t UX taken off in software? It’s Difficult! Animation 2D 3D Documents Styled Controls Video Windows.
Nick Kramer PRS313 Lead Program Manager Microsoft Corporation
DEV339: Creating Windows and Web Applications with WPF (DEV339) Ian Griffiths Independent Consultant & Pluralsight Instructor
Lap Around Windows Presentation Foundation Rob Relyea PRS305 Lead Program Manager Windows Presentation Foundation
DEV396 Windows Forms: No Touch Deployment Tips and Tricks Jamie Cool Program Manager.NET Client Microsoft Corporation.
Ronnie Saurenmann Principal Architect Microsoft Switzerland Silverlight 5 Advanced.
DEV395 No Touch Deployment for Windows Forms Jamie Cool Program Manager.NET Client Microsoft Corporation.
What’s New in Windows Forms 2.0 Stephen Turner Software Design Engineer
Understand Click Once Deployment Windows Development Fundamentals LESSON 5.1B.
Extending the 2007 Microsoft Office System User Interface Mike Taulty Developer & Platform Group, Microsoft Ltd
Microsoft Visual Studio 2005 Tools for the Office System: Building Office Solutions Using Visual Studio 2005 Tools for Office Andrew Coates Developer Evangelist.
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
Gowtham Prasad K N Partner Technical Consultant | Microsoft Corporation |
DEV221 Windows Forms in Visual Studio 2005: An Overview Saurabh Pant Program Manager Microsoft Corporation.
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
ClickOnce Deployment (One-click Deployment)
Mike Harsh PRSL001 Program Manager Microsoft Corporation
Office 365 Development July 2014.
Business Connectivity Services in SharePoint 2010 and Office 2010
Visual Studio Tools for Office 2005
Exceedra + Azure Mark Rendle Principal Software Architect
Introduction to Silverlight
Developer Patterns to Integrate Silverlight 4.0 with SharePoint 2010
Team Foundation Server 2010 for Everyone
Visual Studio 2010 SharePoint Development Tools Overview
ClickOnce Deployment (One-click Deployment)
Windows Forms in Visual Studio 2005: An in-depth look at key features
Windows Forms in Visual Studio 2005: An Overview
Presentation transcript:

1 Windows Presentation Foundation ("Avalon"): Using Application Services Lauren Lavoie PRS314 Program Manager Microsoft Corporation

2 Outline Creating a smart client application Demo: Chefalon Smart client app challenges Demo: Runtime management and resources Demo: Storage and user experience model Creating a rich browser application Web application challenges Web Browser Applications Demo: Moving Chefalon into the browser Q&A

3 Chefalon

4 Application Model Challenges App frameworks are restrictive Infrastructure for user experience models doesn’t exist Platforms don’t provide good metaphors for app-level management

5 App State and Runtime Management is the base class for an app is the base class for an app Starts and stops the application Resources A place for your app-global state Property bag Subclassing Events rather than WM_* messages Activation, deactivation App exit, session ending Window management

6 Application Resources Declarative model for loading resources <Frame Source= “pack://siteoforigin:,,Quiche.xaml” /> <Frame Source= “Food;Component/Egg.xaml” /> “Food;Component/Egg.xaml” /> Resources in the app Loose files in app dir From site of origin In another assembly Navigate(new Uri(“Mushroom.xaml”, UriKind.RelativeOrAbsolute)); Navigate(new Uri(“Salmon.xaml”, UriKind.RelativeOrAbsolute)); Navigate(new Uri( “pack://siteoforigin:,,Quiche.xaml”, UriKind.RelativeOrAbsolute)); Navigate(new Uri(“Food;Component/Egg.xaml”, UriKind.RelativeOrAbsolute));

7 Chefalon: Basic Application Framework

8 Persistent Storage and Settings Application Cookies Isolated Storage File System Windows Registry.config

9 User Experience Model Flavors of Windows Applications MDI SDI / Dialog Navigation- based SDI Structured Navigation Navigation- based MDI

10 User Experience Model Dialog-Based SDI Use Windows, Dialogs, and Controls May manage multiple windows in the same app Features often surfaced to users through menus Great UX paradigm for simple or frequent tasks The user is in control // Window1.xaml </Window>

11 User Experience Model Basic Navigation Great UX paradigm for tasks that are unfamiliar to users or involve several steps User may be led through steps or can safely explore Use Pages, Hyperlinks, Frames NavigationWindow created implicitly when StartupUri is set Navigation UI and history provided out of the box // Page1.xaml Go To Page 2 Go To Page 2 </Page> // Page2.xaml This is Page 2 This is Page 2 </Page>

12 Chefalon: Adding Navigation Functionality

13 Problems with Simple Navigation Hyperlink == GOTO ack=homepage.aspx

14 Structured Navigation Solving the Problems with Simple Navigation PageFunctions == function calls

15 User Experience Model Structured Navigation Great UX paradigm for tasks involving a sophisticated flow of steps The app drives the user Use PageFunction PageFunction is called like a function, returns result to caller Upon finish, returns the user to the calling page May create sophisticated topologies // PF1.xaml // Page1.xaml.cs PF1 pf = new PageFunction1(); pf.InitializeComponent(); pf.Return += new ReturnEventHandler (pf_Return); this.NavigationService.Navigate(pf);

16 Chefalon: Adding Structured Navigation

17 Web Application Challenges Vastly different programming models for Web and Windows apps Making highly interactive, personalized Web apps is hard Creating interactive apps often requires a tradeoff with security

18 Web Browser Applications (WBA) Moving WPF to the Web Run in a security sandbox Have no security or installation prompt Are not installed No Start Menu or Add/Remove Programs presence Use ClickOnce for deployment Run in the browser Familiarity of web browsing Are “online only” apps

19 Web Browser Applications The Security Sandbox Web Browser Apps run in a sandbox Full Trust (Standalone Apps) Secondary Windows, File System Access, WCF, Registry Access… Internet Zone (WBA) Isolated Storage, Site of Origin Access, Printing, 3D, Flow, Animation… Code Access Security (CAS) Permission-based sandbox Applications are limited by deployment zone App is granted specific set of permissions Attempt to use features not enabled in sandbox raises SecurityException

20 Web Browser Applications The defense-in-depth foundation Code Access Security – 1 st line of defense Security Transparent / Security Critical IE7 Protected Mode on Windows Vista On other platforms, remove IE6’s admin token Out of process from browser Hard isolation boundary Trustworthy Computing best practices Threat models, code reviews, static tools

21 Web Browser Applications Converting a desktop app to a web app Specify “Web Browser Application” Using the Visual Studio 2005 template By setting 3 properties in your project file Remove non-sandbox friendly code Conditional blocks Runtime checks // Get AppDomain’s permission set PermissionSet aDPermSet = AppDomain.CurrentDomain.DefaultGrantS et.ApplicationTrust.PermissionSet; PermissionSet permSet = new PermissionSet(); permSet.AddPermission(new UIPermission(UIPermissionWindow.AllWi ndows); // Set cache bit _bindToWindow = !permSet.IsSubsetOf(aDPermSet); #if (WBA) // Write to iso storage // Write to iso storage#else // Write to file system // Write to file system#endif

22 Chefalon: Moving into the Browser

23 Practical Web Browser Applications Migrating or integrating with your existing site Multiple renderings – WPF for the premium experience Sniffing the UserAgent string Leveraging your existing content Hosting HTML in WPF Hosting WPF in HTML Interop with an existing backend Using cookies Use XSLT to transform to loose XAML

24 Web Browser Apps and Installed Apps Two great flavors of WPF hosting Web Browser Apps Safe and easy for users Seamless browser experience – no prompts! Power of the platform on the Web Installed Apps Can use non-sandbox features Can create immersive experiences Can provide offline support “Sticky” desktop presence

25 Summary WPF provides options for app management Low policy primitives for system and data management Built-in infrastructure for common user experience models Web Browser Applications give you the power of WPF on the Web Runs in a security sandbox Seamless browser experience

26 Community Resources At PDC For more information, go see PRS330: Creating Rich Content Experiences in Your Applications FUN222: Installation Technologies for Windows Vista Labs: PRSHOL09, PRSHOL10 Ask The Experts Track lounge: I’ll be there Thu 9:30-12:30 After PDC If you missed this related session, watch on the DVD PRS313: Integrating with Your Win32/MFC Application MSDN dev center: Channel 9 tag:

27 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.