Stephen Forte Chief Strategy Officer Telerik WUX204
Speaker.Bio.ToString(); Chief Strategy Officer of Telerik Certified Scrum Master Active in the Community: International Conference Speaker for 12+ Years RD, MVP and INETA Speaker Co-moderator & founder of NYC.NET Developers Group Wrote a few books: SQL Server 2008 Developers Guide (MS Press) MBA from the City University of New York Past: CTO and co-Founder of Corzen, Inc. (TXV: WAN) CTO of Zagat Survey
Out of Browser Goals Simplicity Give the user the right default behavior No additional downloads for user Follow the web rules Use the web deployment/update model Most applications can live within a sandbox
Out of browser
Taking an App Out of Browser Gestures (How) Context menu Application-provided behavior App runs before install User initiates action to trigger Application Types Always connected Always disconnected Occasionally connected
Detaching API Manifest (AppManifest.xaml) Name, title, description Optional icons Code APIs Detach() method ExecutionState ExecutionStateChanged event model RunningOffline property
Detached State Flow In-browser RunningOnline Detaching Detached (RunningOffline=false) Out of browser Detached (RunningOffline=true)
Application Updates Optimized for instant on Background downloading upon identification Next out of browser launch uses new app Event model when update downloaded
Network Availability Network detection key for scenario (occasionally connected apps) Silverlight 3 new APIs for detection IP address change event Network available property Any interface (no loopback) Best practices Do more than just detect IP change
Interacting with Data Out of browser IsoStore Default limit increase to 25MB upon Detach() Can still prompt for quota increase Storage is shared location for in-browser and out- of-browser – not a new IsoStore OpenFileDialog and SaveFileDialog Interaction with full file system via user action
Out of browser
Debugging Methods ChildWindow for Exceptions Attach to SLLauncher.exe in beta Post-beta will launch auto attach in VS In-browser and out of browser are two instances of the app
Differences from In-browser Additional key mappings (F keys) No HTML DOM Access MouseWheel XmlHttp Currently no HTML interop Assembly Cache not available
Best Practices Download local data Check RunningOffline for state Don’t trigger more than one HttpWebRequest at a time Keep your code in the XAP Silverlight versions for you If data model changes, require a restart Show UI for major updates
Sessions On-Demand & Community Resources for IT Professionals Resources for Developers Microsoft Certification and Training Resources Microsoft Certification & Training Resources Resources
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.