This document outlines an agenda and topics for a presentation on building Windows Phone 7 apps with Silverlight, including:
- An overview of the Silverlight development experience and supported controls for Windows Phone
- Demos of using common controls like the WebBrowser and AppBar, and tasks for launching other apps and picking data
- Details on navigation between pages, app lifecycle handling, and data storage options
- A section for questions and answers
The presentation aims to provide guidance and code examples for core aspects of building Windows Phone apps with the Silverlight framework.
Azure Monitor & Application Insight to monitor Infrastructure & Application
Windows Phone 7 and Silverlight
1. Glen Gordon Developer Evangelist, Microsoft http://blogs.msdn.com/glengordon @glengordon Building Windows Phone 7 Apps with Silverlight
2. Agenda Silverlight Momentum Development Experience Phone Controls Web Browser Control App Bar Navigation Launchers and Choosers Application Lifecycle
3. Agenda Silverlight Momentum XAML Fundamentals Development Experience Phone Controls Q&A ….with lots of demos!
7. Silverlight 3 July 2009 Silverlight 1 Silverlight 2 September 2007 October 2008
8. Silverlight 4 Business Applications Media Beyond the Browser Silverlight 1 Silverlight 2 Silverlight 3 Silverlight 4 September 2007 October 2008 July 2009 April 2010
12. Windows Phone 7 Framework Windows Phone Frameworks Camera Device Integration Launchers & Choosers Windows Phone Controls PhoneApplicationPage PushNotification WebBrowserControl Sensors PhoneApplicationFrame Silverlight Presentation and Media XNA Frameworks for Games Controls Drawing IsolatedStorage Drawing GamerServices Navigation Shapes Markup Media Audio Media Graphics Content Input Application Object Common Base Class Library Diagnostics Reflection IO Runtime Resources Globalization Text Location Net Collections ComponentModel Configuration Security Threading ServiceModel Linq
13. Graphics Composition Start Experience System Tray Direct3D Surface AppPage Notification Volume SIP Incoming Call App Bar Shell frame composes all UI into a single screen Central page management enables cross app UI transitions and other effects You can also do this for orientation changes
14. UI Model: Familiar Web Concepts Phone application Provides UI represented as XAML pages connected into cross-app flows by URI’s Web application Provide media represented as HTTP resources linked by URL’s Shell frame Requests pages, renders UI, and handles navigation across apps Web browser Requests HTTP resources, renders them, and handles navigation across sites Sessions and back stack Groups together sequences of pages corresponding to a user’s activity across apps History and tabs Groups together sequences of HTTP resources corresponding to a user’s activity across sites
18. Controls support Touch Mouse Events Automatically converted for you SIP and WebBrowser control have gestures ScrollViewer Just like Silverlight Basic Flick and Pan gestures Raw Touch.FrameRendered DoodlePad – Sketch App
19. Controls support Touch Gestures System level (WM_GESTURE). Can make your own. Tap, Double Tap, Pan, Flick, Touch and Hold Multi-Touch Pinch, Stretch Manipulations Events ManipulationStarted ManipulationData ManipulationCompleted Use for Drag and Drop, etc.
21. List Application Master/Detail Data MainPage.Xaml, DetailsPage.xaml ViewModel ItemViewModel.cs, MainViewModel.cs Project Types VS2010 calls it List Application and Blend calls it Databound Application
23. WebBrowser control Displays network and local content Gestures: pan, double tap and pinch Supports transforms & projections No Input on transform Application can interact with JavaScript Optimized for privacy Script is disabled by default Cookies and cache are isolated 23
24. Silverlight to Script Silverlight string fromScript = wb.InvokeScript("runScriptStuff", arg1, arg2); JavaScript function runScriptStuff(arg1, arg2) { return “awesome”; }
27. AppBar Toolbar Up to 4 icons Can set transparency level Slide up Menu can display more items Can declare in code or XAML Icons found under Program Filesicrosoft SDKsindows Phone7.0cons
28. AppBar Icons 48 pixels by 48 pixels White foreground on a transparent background Using alpha channel. Icon get colorized to current style Circle will be added
30. Frame and Page Frame Top-level container control PhoneApplicationFrame class Contains the page control and system elements such as system tray and application bar Page Fills the entire content region of the frame PhoneApplicationPage-derived class Optionally surfaces its own application bar Handles Orientation NavigatedTo and NavigatedFrom
31. Page Navigation Forward NavigationService.Navigate(new Uri(“/Page2.xaml”,uriKind.RelativeOrAbsolute)); Back NavigationService.GoBack(); Hardware Back Button Handle BackKeyPress, OnBackKeyPressand Navigate to where you would like
33. Tasks - Launchers and Choosers Launcher Launches one of the built-in applications through which a user completes a task No data is returned to calling application Example: PhoneCallTask Chooser Launches one of the built-in applications through which a user completes a task, and which returns some data to calling application When caller completes, calling application is activated and supplied with the Chooser result Example: PhotoChooserTask
36. UI and State Management: Concepts Page UI Describes the visual appearance of a page Retained in shell frame to support resuming paused sessions Discarded while the session is paused Page State Contains data that describes an instance of a page, analogous to browser cookie
37. App Lifecycle Close Back Button Tombstoned Start Button Task Launched Phone call received Handle events in App.xaml.cs
38. App State - Storage Isolated Storage Settings and Custom Data Secure and Sandboxed Logical Folder Structure via APIs No quota currently Be responsible and inform/empower user State Management PhoneApplicationPage/PhoneApplicationState Good for transient data
39. Isolated Storage API Using System.IO;using System.IO.IsolatedStorage;IsolatedStoragefileisf = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStreamfs = new IsolatedStorageFileStream(“myfile.txt”,FileMode.Open,isf); StreamReadersr = new StreamReader(fs); data=sr.ReadLine(); sr.Close();
42. Calling a Service WebClient Class Just like Silverlight WebClient client = new WebClient(); client.DownloadStringCompleted += DownloadComplete; client.DownloadStringAsync(new Uri(RssUrl)); oData Library oData.org Covered this afternoon