Successfully reported this slideshow.

Construir Aplicações Silverlight para Windows Phone 7

0

Share

Loading in …3
×
1 of 127
1 of 127

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Construir Aplicações Silverlight para Windows Phone 7

  1. 1. http://netponto.org<br />14ª Reunião Presencial - 18/09/2010<br />Construir Aplicações Silverlight para Windows Phone 7Nuno Silva<br />
  2. 2. Nuno Silva<br />Developer Evangelist @ Microsoft<br />“Phone Champ”<br />nuno.silva@microsoft.com<br />http://blogs.msdn.com/nunos<br />http://twitter.com/nuno_ms<br />
  3. 3. Perguntas “da praxe”<br />Sim, trouxe um device<br />Sim, é mesmo o Windows Phone 7<br />Não, não o podem levar para casa<br />
  4. 4. Windows Phone 7<br />Smart Design<br />Integrated Experiences<br />Photo by: Andrew Butitta, Founder, Talisman Digital Photography<br />
  5. 5. Metro<br />
  6. 6.
  7. 7. Windows Phone 7<br />demonstração<br />
  8. 8. Windows PhoneHardware<br />Common Hardware Elements<br />Consistent Platform<br />Quality Focus<br />800 or 480<br />Consistent set of hardware capabilities defined by Microsoft<br />One resolution at launch<br />Second resolution added later<br />Same touch input<br />Consistent processor / GPU<br />Same available RAM<br />Optional keyboard<br />480 or 320<br />
  9. 9. Objectivos da Plataforma<br />Modern, powerful run-times and tooling<br />Help developers be profitable<br />Enable cloud powered experiences<br />
  10. 10. Tools<br />Runtime – On “Screen”<br />Phone Emulator<br />Sensors<br />Media<br />Data<br />Location<br />Samples<br />Documentation<br />Xbox LIVE<br />Notifications<br />Phone<br />Guides<br />Community<br />.NET Framework managed code sandbox<br />Packaging and Verification Tools<br />SCREEN<br />CLOUD<br />Portal Services<br />Cloud Services<br />Notifications<br />App Deployment<br />Registration<br />Marketplace<br />Validation<br />MO and CC Billing<br />Location<br />Identity<br />Feeds<br />Certification<br />Business Intelligence<br />Maps<br />Social<br />Publishing<br />Update Management<br />Application Platform<br />
  11. 11. Application Platform<br />Runtime – On “Screen”<br />Sensors<br />Media<br />Data<br />Location<br />Xbox LIVE<br />Notifications<br />Phone<br />.NET Framework managed code sandbox<br />SCREEN<br />CLOUD<br />
  12. 12. DuasEscolhas<br /><ul><li>Modern XAML/event-driven application UI framework
  13. 13. Rapid creation of visually stunning apps
  14. 14. Metro-themed UI controls
  15. 15. HTML/JavaScript
  16. 16. 500,000 developers spanning Windows and web</li></li></ul><li>DuasEscolhas<br /><ul><li>High performance game framework
  17. 17. Rapid creation of multi-screen 2D and 3D games
  18. 18. Rich content pipeline
  19. 19. Mature, robust, widely adopted technology spanning Xbox 360, Windows, and Zune
  20. 20. Modern XAML/event-driven application UI framework
  21. 21. Rapid creation of visually stunning apps
  22. 22. Metro-themed UI controls
  23. 23. HTML/JavaScript
  24. 24. 500,000 developers spanning Windows and web</li></li></ul><li>Tools<br />Phone Emulator<br />Samples<br />Documentation<br />Guides<br />Community<br />Packaging and Verification Tools<br />SCREEN<br />CLOUD<br />Application Platform<br />
  25. 25. Tools<br />Gratuitas<br />RTM jádisponível<br />Training Kit e JumpStart<br />http://developer.windowsphone.com<br />Phone Emulator<br />Samples<br />Documentation<br />Guides<br />Community<br />Packaging and Verification Tools<br />Windows Phone Developer Tools<br />
  26. 26. Windows Phone Developer Tools<br />Tools<br />Phone Emulator<br />Samples<br />Documentation<br />Guides<br />Community<br />Packaging and Verification Tools<br />
  27. 27. Windows Phone Developer Tools<br />Tools<br />Phone Emulator<br />Samples<br />Documentation<br />Guides<br />Community<br />Packaging and Verification Tools<br />myapp.xap<br />
  28. 28. Windows Phone Developer Tools<br />Tools<br />Phone Emulator<br />Windows Phone<br />Emulator<br />Samples<br />Documentation<br />Guides<br />Community<br />Windows Phone device<br />Packaging and Verification Tools<br />myapp.xap<br />
  29. 29. Windows Phone Developer Tools<br />Tools<br />Phone Emulator<br />Windows Phone<br />Emulator<br />Samples<br />Documentation<br />Packaging & Verification Tools<br />Guides<br />Community<br />Windows Phone device<br />Packaging and Verification Tools<br />myapp.xap<br />
  30. 30. Windows Phone 7 Developer ToolsSimple Twitter Client<br />demonstração<br />
  31. 31. Default control templates<br />Simples e Elegantes<br />Hit-Targets de dimensãoconsiderável<br />Utilização de transparências<br />
  32. 32. Temas<br />Permitemaoutilizadorcustomizar o telefone<br />Temas dark e light, com váriasescolhas de côr<br />Built-in controls são “theme-aware”<br />
  33. 33. Customização do UI<br />demonstração<br />
  34. 34. Input<br />Silverlight TextBoxintegra com SIP <br />Supports and scrolling<br />Password has a delay<br />SIP permite a utilização de scopes<br />Text, Url, Number, Time, TelephoneNumber, EmailNameOrAddress<br />ScrollViewersuporta pan e flick<br />Manipulation events expõem pinch and stretch<br />
  35. 35. Accelerometer<br />+Y<br />Mede forçaaplicada<br />sobrecada um dos eixos<br />aolongo do tempo<br />-Z<br />-X<br />+X<br />+Z<br />-Y<br />
  36. 36. Media<br />Suporte a media<br />H/W decode<br />MediaStreamSource<br />PlayReady DRM<br />Algumaslimitações<br />Apenas um MediaElement<br />Ausência de VideoBrush<br />XNA sound effect API<br />
  37. 37. Input e Output<br />demonstração<br />
  38. 38. Integração com o OS<br />Hub integration<br />Podemoscontribuirparaos hubs<br />Launchers (fire and forget)<br />SMS, email, web browser, maps, dialer, search, etc<br />Choosers (retorno de informação)<br />Picture, contact, camera, etc<br />
  39. 39. Launchers & Choosers<br />Choosers<br />Launchers<br />CameraCaptureTask<br />BingMapsTask<br />MarketplaceLauncher<br />MediaPlayerLauncher<br />PhoneCallTask<br />SaveEmailAddressTask<br />SavePhoneNumberTask<br />SearchTask<br />EmailComposeTask<br />SMSComposeTask<br />WebBrowserTask<br />PhoneNumberChooserTask<br />PhotoChooserTask<br />EmailAddressChooserTask<br />
  40. 40. Launchers and ChoosersCamera Application<br />demonstração<br />
  41. 41. default silverlight application<br />Application<br />UserControl<br />Content<br />
  42. 42. default silverlight application<br />Application<br />UserControl<br />Content<br />Content<br />
  43. 43. default silverlight application<br />Application<br />UserControl<br />Content<br />Content<br />Content<br />
  44. 44. default silverlight application<br />Application<br />UserControl<br />Content<br />Content<br />Content<br />
  45. 45. silverlight 3 navigation application<br />Application<br />UserControl<br />Content<br />Content<br />Content<br />
  46. 46. silverlight 3 navigation application<br />Application<br />UserControl<br />Frame<br />Page 3<br />Page 1<br />Page 2<br />
  47. 47. silverlight 3 navigation application<br />Application<br />UserControl<br />Frame<br />Page 3<br />Page 1<br />Page 2<br />
  48. 48. ?<br />Windows Phone application<br />
  49. 49. Windows Phone application<br />Application<br />UserControl<br />Frame<br />Page 3<br />Page 1<br />Page 2<br />
  50. 50. Windows Phone application<br />Application<br />Frame<br />Page 3<br />Page 1<br />Page 2<br />
  51. 51. Windows Phone application<br />Application<br />Frame<br />Page 3<br />Page 1<br />Page 2<br />
  52. 52. Back key<br />Permiteaoutilizadornavegarpara o últimoecran<br />
  53. 53. Back key<br />Permiteaoutilizadornavegarpara o últimoecran<br />Podeatravessaraplicaçõesdiferentes<br />
  54. 54. Back key<br />Permiteaoutilizadornavegarpara o últimoecran<br />Podeatravessaraplicaçõesdiferentes<br />Nãodeveser “overriden” nasaplicações<br />
  55. 55. Navegação e Estrutura<br />demonstração<br />
  56. 56. Um mundo de interrupçõesconstantes<br />
  57. 57. Um mundo de interrupçõesconstantes<br />phone calls<br />
  58. 58. Um mundo de interrupçõesconstantes<br />phone calls<br />low battery<br />
  59. 59. Um mundo de interrupçõesconstantes<br />phone calls<br />low battery<br />txt msgs :-)<br />
  60. 60. Um mundo de interrupçõesconstantes<br />phone calls<br />low battery<br />App<br />switch<br />txt msgs :-)<br />
  61. 61. Um mundo de interrupçõesconstantes<br />phone calls<br />low battery<br />reminders<br />App<br />switch<br />txt msgs :-)<br />
  62. 62. Um mundo de interrupçõesconstantes<br />phone calls<br />low battery<br />lock screen<br />reminders<br />App<br />switch<br />txt msgs :-)<br />
  63. 63. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  64. 64. App constructor
  65. 65. Startup event
  66. 66. Exit event</li></li></ul><li>basic application lifetime<br />Not running<br /><ul><li>Splash screen
  67. 67. App constructor
  68. 68. Startup event
  69. 69. Exit event</li></li></ul><li>basic application lifetime<br />Not running<br /><ul><li>Splash screen
  70. 70. App constructor
  71. 71. Startup event
  72. 72. Exit event</li></ul>Start<br />
  73. 73. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  74. 74. App constructor
  75. 75. Startup event
  76. 76. Exit event</li></ul>Start<br />
  77. 77. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  78. 78. App constructor
  79. 79. Startup event
  80. 80. Exit event</li></ul>Start<br />Running<br />
  81. 81. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  82. 82. App constructor
  83. 83. Startup event
  84. 84. Exit event</li></ul>Start<br />Running<br />
  85. 85. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  86. 86. App constructor
  87. 87. Startup event
  88. 88. Exit event</li></ul>Start<br />Exit<br />Running<br />
  89. 89. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  90. 90. App constructor
  91. 91. Startup event
  92. 92. Exit event</li></ul>Start<br />Exit<br />Running<br />
  93. 93. basic application lifetime<br />Not running<br /><ul><li>Splash screen
  94. 94. App constructor
  95. 95. Startup event
  96. 96. Exit event</li></ul>Start<br />Exit<br />Running<br /><ul><li>Obscured
  97. 97. Paused</li></li></ul><li>obscured: popup ui from shell<br />Not in the Mix build<br />What if they answer the phone?<br />
  98. 98. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br />What if they answer the phone?<br />
  99. 99. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br /><ul><li>Phone call
  100. 100. Reminder
  101. 101. Battery low</li></ul>What if they answer the phone?<br />
  102. 102. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br /><ul><li>Phone call
  103. 103. Reminder
  104. 104. Battery low</li></ul>What if they answer the phone?<br />Obscured<br />Running<br />
  105. 105. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br />What if they answer the phone?<br />Obscured<br />Running<br />
  106. 106. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br />What if they answer the phone?<br />Obscured<br />Unobscured<br />Running<br />
  107. 107. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br />Games could auto-pause<br />What if they answer the phone?<br />Obscured<br />Unobscured<br />Running<br />
  108. 108. obscured: popup ui from shell<br />Not in the Mix build<br />Running<br />Games could auto-pause<br />Game could auto-resume<br />What if they answer the phone?<br />Obscured<br />Unobscured<br />Running<br />
  109. 109. paused: jump to another app<br />Not in the Mix build<br />
  110. 110. paused: jump to another app<br />Not in the Mix build<br />Running<br />
  111. 111. paused: jump to another app<br />Not in the Mix build<br />Running<br /><ul><li>Start Button
  112. 112. Accept call
  113. 113. Open toast</li></li></ul><li>paused: jump to another app<br />Not in the Mix build<br />Running<br /><ul><li>Start Button
  114. 114. Accept call
  115. 115. Open toast</li></ul>Pause<br />Suspended<br />
  116. 116. paused: jump to another app<br />Not in the Mix build<br />Running<br />Pause<br />Suspended<br />
  117. 117. paused: jump to another app<br />Not in the Mix build<br />Running<br />Pause<br />Resume<br />Suspended<br />
  118. 118. paused: jump to another app<br />Not in the Mix build<br />Running<br />Pause<br />Resume<br />Suspended<br />Assume your process is killed<br />
  119. 119. paused: jump to another app<br />Not in the Mix build<br />Running<br />Pause<br />Resume<br />Suspended<br />Assume your process is killed<br />Save state for later use<br />
  120. 120. paused: jump to another app<br />Not in the Mix build<br />Running<br />Load state to continue where you left off<br />Pause<br />Resume<br />Suspended<br />Assume your process is killed<br />Save state for later use<br />
  121. 121. paused: jump to another app<br />Not in the Mix build<br />Running<br />Load state to continue where you left off<br />User never knows what happened :-)<br />Pause<br />Resume<br />Suspended<br />Assume your process is killed<br />Save state for later use<br />
  122. 122. Push Notifications<br />Comunicaçãoiniciada no servidor<br />
  123. 123. Push Notifications<br />Comunicaçãoiniciada no servidor<br />Permitecenários de “background execution”<br />
  124. 124. Push Notifications<br />Comunicaçãoiniciada no servidor<br />Permitecenários de “background execution”<br />Preservabateria e melhora a experiência do utilizador<br />
  125. 125. 14<br />New photos online!<br />Tipos de notificações<br />
  126. 126. 15<br />New photos online!<br />Tipos de notificações<br />
  127. 127. Tipos de notificações<br />15<br />New photos online!<br />
  128. 128. Seattle, WA: Sunny and 85 degrees<br />Tipos de notificações<br />15<br />New photos online!<br />
  129. 129. Tipos de notificações<br />15<br />New photos online!<br />Seattle, WA: Sunny and 85 degrees<br />
  130. 130. Tipos de notificações<br />15<br />New photos online!<br />Seattle, WA: Sunny and 85 degrees<br />
  131. 131. Seattle, WA: Sunny and 85 degrees<br />Tipos de notificações<br />15<br />New photos online!<br />
  132. 132. push notifications<br />
  133. 133. push notifications<br />App<br />
  134. 134. push notifications<br />Push client<br />App<br />
  135. 135. push notifications<br />Push client<br />App<br />Open push channel<br />
  136. 136. push notifications<br />Push client<br />App<br />Return URI<br />
  137. 137. push notifications<br />Push client<br />App<br />Your service<br />
  138. 138. push notifications<br />Push client<br />App<br />Send URI to server<br />Your service<br />
  139. 139. push notifications<br />Push client<br />App<br />Send URI to server<br />Your service<br />
  140. 140. push notifications<br />Push client<br />App<br />Send URI to server<br />Your service<br />Event<br />
  141. 141. push notifications<br />Push client<br />App<br />Push service<br />Your service<br />
  142. 142. push notifications<br />Push client<br />App<br />Push service<br />Your service<br />Send push data to URI<br />
  143. 143. push notifications<br />Push client<br />App<br />Send push data to client<br />Push service<br />Your service<br />
  144. 144. push notifications<br />Push client<br />App<br />Data to App<br />Push service<br />Your service<br />
  145. 145. push notifications<br />Push client<br />Toast<br />App<br />Data to App<br />Push service<br />Your service<br />
  146. 146. push notifications<br />Push client<br />Toast<br />App<br />Data to toast<br />Data to App<br />Push service<br />Your service<br />
  147. 147. push notifications<br />Push client<br />Tile<br />Toast<br />App<br />Data to toast<br />Data to App<br />Push service<br />Your service<br />
  148. 148. push notifications<br />Push client<br />Tile<br />Toast<br />App<br />Data to toast<br />Data to tile<br />Data to App<br />Push service<br />Your service<br />
  149. 149. Push Notifications<br />demonstração<br />
  150. 150. Location Services<br />No emulator support<br />Smart device + cloud service<br />
  151. 151. Location Services<br />No emulator support<br />Smart device + cloud service<br />Equilíbrioprecisãovstempo/consumo<br />
  152. 152. Location Services<br />No emulator support<br />Smart device + cloud service<br />Equilíbrioprecisãovs tempo/consumo<br />API Consistente<br />
  153. 153. location<br />
  154. 154. location<br />GPS<br />
  155. 155. location<br />GPS<br />
  156. 156. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />
  157. 157. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />Cell towers<br />
  158. 158. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />Cell towers<br />
  159. 159. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />- Accuracy<br />+ Power<br />+ Speed<br />- Wilderness<br />Cell towers<br />
  160. 160. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />- Accuracy<br />+ Power<br />+ Speed<br />- Wilderness<br />WiFi<br />Cell towers<br />
  161. 161. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />- Accuracy<br />+ Power<br />+ Speed<br />- Wilderness<br />WiFi<br />Cell towers<br />
  162. 162. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />- Accuracy<br />+ Power<br />+ Speed<br />- Wilderness<br />WiFi<br />+/- Accuracy<br />+/- Power<br />+/- Speed<br />+/- Urban areas<br />Cell towers<br />
  163. 163. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />- Accuracy<br />+ Power<br />+ Speed<br />- Wilderness<br />WiFi<br />+/- Accuracy<br />+/- Power<br />+/- Speed<br />+/- Urban areas<br />Cell towers<br />Location services<br />
  164. 164. location<br />GPS<br />+ Accuracy<br />- Power<br />- Speed<br />- Indoors<br />- Accuracy<br />+ Power<br />+ Speed<br />- Wilderness<br />WiFi<br />+/- Accuracy<br />+/- Power<br />+/- Speed<br />+/- Urban areas<br />Cell towers<br />Location services<br />
  165. 165. Location Services<br />demonstração<br />
  166. 166. Questões?<br />
  167. 167. Patrocinadores deste evento<br />
  168. 168. Próximas reuniões presenciais<br />18/09/2010 - Setembro<br />23/10/2010 - Outubro<br />20/11/2010 - Novembro<br />11/12/2010 - DezembroReserva estes dias na agenda! :)<br />
  169. 169. Obrigado!<br />Nuno Silva<br />nuno.silva@microsoft.com<br />http://blogs.msdn.com/nunos<br />http://twitter.com/nuno_ms<br />

Editor's Notes

  • As we set out to re-define what a Windows Phone Experience should be, we knew we would have to come up with some thing different from what we had done before. That said, this is not being different for the sake of it; we had some very smart reasons on improvements we wanted to include on Windows Phone, amongst these: our design had to be smart, and we wanted to build truly integrated experiences so our could get the most out of the phone.
  • In the beginning of 2009 a new approach was taken. How did this transition from the previous slide to this slide happen?During designing Windows Phone 7 Series, the designers did not exclusively have phones in mind, even though a great phone experience is important for the end result. However, finding information fast and easy in a beautiful environment was more important for the design of the Windows Phone 7 Series.This is where Metro came in. Metro as a design language is based on a foundation (or set of principals).
  • The Panoramic ExperienceWindows Phone 7 ‘broke’ out of its frameMost current screens display a canvas in a frame (the real estate is limited to the canvas)Windows Phone 7 gives you a panoramic frameworkA bit more work to create for application developersGives the end user a very rich experienceThe canvas is much bigger than the frameWorks great to get users engaged, combine client information in your application with services
  • Our game changing philosophy is so deep, you see it even on our hardware platform, where we have merged both the smart design and integrated experiences by having a best of breed, bleeding edge hardware specification for our OEMs and Mobile Operators. This will drive consistency for developers. You are coding to a single hardware platform. The experience is consistent with integrated Windows, Back and search button, so users can easily navigate across tasks. At the same time, we need to give consumer choice and we need to give OEMs the ability to differentiate their offerings, but again we have done this with this zen-like balance that is going to drive consistency and a single platform to code for. On resolution, we do have two resolutions: 800x480 will be available at launch and HVGA 480x320 will be added a bit later. The drivers are provided by Microsoft, ensuring great quality and reliability and letting our partners focus on innovation instead of drivers. Touch is capacity; all devices have four touch points.
  • Smart Design and integrated experiences is our promise to end-users.Microsoft knows too well that we also must deliver a great platform for the developers to innovate on. Without a solid platform we have no apps, and there fore less value to our customers. As such, we set out to create a modern platform. We offer the best run-times: Silverlight and XNA; both of these have the best, most RAD tooling experiences so our developers can be proactive and quick to market. We also made sure we embraced the cloud; there is things we can’t (or don’t want to) do on the phone, but we have APIs and services for developers to compliment our client-side offerings and make the best applications without compromising the user experience. Beyond run-times of course we need for our developers to be profitable; a market place where consumers can easily and securely purchase applications, so developers and content providers can get paid. Win-win-win for consumers, for Microsoft and for developers.
  • As you can see a comprehensive platform. The ones on the bottom are on the cloud. That is mostly free services you will get. The top are both the tools you will use and the API you will use to create your amazing apps.
  • Moving on to the code that runs on the device, Notice that as a developer you are creating applications that can run across multiple channels: Windows Phone, XBOX Live, and/or Windows … It is Silverlight or XNA on all these platform.
  • We have our best two frameworks for you to choose from when creating a client app. Silverlight is microsoft’s already established RIA offering. A very comprehensive and powerful App UI framework and run-time with huge innovation around media, controls, etc.. XNA is our high performance gaming framework; another well established framework, already proven on XBOX 360 and Zune. These APIs not only provide you the best of breed
  • We have our best two frameworks for you to choose from when creating a client app. Silverlight is microsoft’s already established RIA offering. A very comprehensive and powerful App UI framework and run-time with huge innovation around media, controls, etc.. XNA is our high performance gaming framework; another well established framework, already proven on XBOX 360 and Zune. These APIs not only provide you the best of breed
  • Moving onto tools, we have visual studio and XNA Game Studio 4.0.
  • Our tools are Free. This includes Visual Studio, Game Studio, and Expression Blend. They will continue to be free even after V1 of the tools RTM. Though we don’t have this as a single download today, that is the goal. Go get the tools at developer.windowsphone.com
  • This is the process of getting an app from the tools into the marketplace. The emulator is what you can use to test now (until you have a phone).It is an x86 emulator. It is blazing fast, faster than the phone. It is hardware accelerated for graphics ( and so is the phone). Emulator also supports multitouch if you are running on Windows 7. It is the actual OS, but compiled for x86. Deploying to the phone is just as easy. You literally change a combobox in the tools and can now deploy to the phone, get an integrated debugger with break points, etc.. Your phone will have to be developer unlocked; you can do that by registering your phone as a developer phone. It is a friction-free process. Later we will have a few extra tools for verifying your application. These are not in the current CTP. These are what you will use to get ingested into the market place.
  • This is the process of getting an app from the tools into the marketplace. The emulator is what you can use to test now (until you have a phone).It is an x86 emulator. It is blazing fast, faster than the phone. It is hardware accelerated for graphics ( and so is the phone). Emulator also supports multitouch if you are running on Windows 7. It is the actual OS, but compiled for x86. Deploying to the phone is just as easy. You literally change a combobox in the tools and can now deploy to the phone, get an integrated debugger with break points, etc.. Your phone will have to be developer unlocked; you can do that by registering your phone as a developer phone. It is a friction-free process. Later we will have a few extra tools for verifying your application. These are not in the current CTP. These are what you will use to get ingested into the market place.
  • This is the process of getting an app from the tools into the marketplace. The emulator is what you can use to test now (until you have a phone).It is an x86 emulator. It is blazing fast, faster than the phone. It is hardware accelerated for graphics ( and so is the phone). Emulator also supports multitouch if you are running on Windows 7. It is the actual OS, but compiled for x86. Deploying to the phone is just as easy. You literally change a combobox in the tools and can now deploy to the phone, get an integrated debugger with break points, etc.. Your phone will have to be developer unlocked; you can do that by registering your phone as a developer phone. It is a friction-free process. Later we will have a few extra tools for verifying your application. These are not in the current CTP. These are what you will use to get ingested into the market place.
  • This is the process of getting an app from the tools into the marketplace. The emulator is what you can use to test now (until you have a phone).It is an x86 emulator. It is blazing fast, faster than the phone. It is hardware accelerated for graphics ( and so is the phone). Emulator also supports multitouch if you are running on Windows 7. It is the actual OS, but compiled for x86. Deploying to the phone is just as easy. You literally change a combobox in the tools and can now deploy to the phone, get an integrated debugger with break points, etc.. Your phone will have to be developer unlocked; you can do that by registering your phone as a developer phone. It is a friction-free process. Later we will have a few extra tools for verifying your application. These are not in the current CTP. These are what you will use to get ingested into the market place.
  • The Windows Phone 7 look &amp; feel is added to the Silverlight default controlsThe UI that is available on the phone is very simple and very elegant. Silverlight can do super flashy things, great media, 3D perspectives but nothing is overdone on a Windows Phone.It is important to have oversized hit targets for those elements that users can select on the phone. This is necessary because the phone will be finger controlled because it makes use of capacitive touch.Inside the templates, there is a big use of transparency. On a Windows Phone, everything is centered around content, not around chrome. The user should be able to see as much content as possible. Transparency will help with that.
  • Theming is another important part of the different controls on a Windows Phone.The user can pick a theme. The two major differences are:Dark background with light textLight background with dark textBesides the dark / light themes, the user can also select different accent colors. There are four different accent colors to choose from:RedOrangeGreenBlueThe built-in controls are automatically themed, according to the user selection. The user selected theme can be used inside your own application as well to make your application match everything else on the phone:Your own user controls can tap into the theming system to make their appearance consistent over applicationsYour application’s content can tap into the theming system to make it consistent with other applications on the phoneThe look of your content can change when the user selects another theme or another accent color
  • As you saw in the demo, the TextBox really integrates with the Operating System software keyboardThere is also a password obfuscation delay. When you enter data on a password textbox, you can see the entered character for a second before it turns into a dot. This is what you expect on a phone because entering passwords is kind of tricky when you are using the software keyboard.You also saw that built-in controls have gesture support. There are also new events available on controls that are called “Manipulation Events”. They are fired when manipulations are started and ended or when a particular delta is reached. Using these events on controls you are able to influence gestures.
  • The accelerometer is pretty much straight forward. You get force in units of gravity applied in every dimension over time. Every sample comes with an x, y and z force and a time stamp.If the device is just laying flat on a surface, it has -1 unit of gravity in the Z-direction.X and Y coordinates are similar to screen coordinates, Z gets into the device.When you shake the device, you will get readings containing values larger than 1 unit of gravity.
  • As far as media goes we have:Hardware decodeAudio + Video on the deviceSilverlight media are available on the device, also protected media can be played with the right authenticationThere are a couple of limitations for media on the deviceYou can only have one MediaElement at a timeThis is due to limited hardware resources on the deviceThere is no support for video brushesYou can make use of transforms with the MediaElement, meaning you can animate the media surfaceYou can make use of the XNA Sound Effect APIOptimized for game type of sound, but works pretty good in Silverlight for short looping sounds (consisting of plain wave data)
  • The remainder of this presentation concentrates on what you can do specifically with the phone from inside your own applications.There are three main buckets to discuss:Hub integrationApplications can add (through specific API’s) history information to a hub to make the hub more personalized for a particular userYour application also has the possibility to register as a photo application and get access to the photo hubLaunchers allow an application to go to the background and fire up an existing built-in application, for instance to allow sending text messages from ‘inside’ your own application or to display a dialer to make phone calls from inside your own application.Choosers are pieces of functionality that act similar to an open file dialog to select some locally stored data of a particular format for use inside your own application.
  • This is just a list of all launchers and choosers that are available on Windows Phone 7.Again: A launcher starts an existing Operating System application and puts your application (temporarily) to the background.A chooser is a piece of Operating System functionality that can select some stored data and return it to your application.
  • A Silverlight application consists of a root visual which is typically a user control.The user control typically contains some content.This application model worked great for building applications on the web (widgets, rich media applications)[Animate]Silverlight applications add more and more content that eventually leads to problems. The application appears more and more as a complete web page to the user. This implies that the user wants to navigate through the application in the same way they navigate over web pages.[Animate]This does not work well with the browser though. If the user uses the browser back button on such a Silverlight application, instead of returning to the previous content, the user will return to the previous web page, tearing down the Silverlight application.
  • A Silverlight application consists of a root visual which is typically a user control.The user control typically contains some content.This application model worked great for building applications on the web (widgets, rich media applications)[Animate]Silverlight applications add more and more content that eventually leads to problems. The application appears more and more as a complete web page to the user. This implies that the user wants to navigate through the application in the same way they navigate over web pages.[Animate]This does not work well with the browser though. If the user uses the browser back button on such a Silverlight application, instead of returning to the previous content, the user will return to the previous web page, tearing down the Silverlight application.
  • A Silverlight application consists of a root visual which is typically a user control.The user control typically contains some content.This application model worked great for building applications on the web (widgets, rich media applications)[Animate]Silverlight applications add more and more content that eventually leads to problems. The application appears more and more as a complete web page to the user. This implies that the user wants to navigate through the application in the same way they navigate over web pages.[Animate]This does not work well with the browser though. If the user uses the browser back button on such a Silverlight application, instead of returning to the previous content, the user will return to the previous web page, tearing down the Silverlight application.
  • A Silverlight application consists of a root visual which is typically a user control.The user control typically contains some content.This application model worked great for building applications on the web (widgets, rich media applications)[Animate]Silverlight applications add more and more content that eventually leads to problems. The application appears more and more as a complete web page to the user. This implies that the user wants to navigate through the application in the same way they navigate over web pages.[Animate]This does not work well with the browser though. If the user uses the browser back button on such a Silverlight application, instead of returning to the previous content, the user will return to the previous web page, tearing down the Silverlight application.
  • In Silverlight 3, this problem was recognized and solved.[Animate]It is solved by introducing the notion of a frame control which can navigate between pages. With this added functionality, a Silverlight application behaves like a ‘normal’ web application containing multiple pages.[Animate]Navigation through the Silverlight application now works great with the Browser back button.
  • In Silverlight 3, this problem was recognized and solved.[Animate]It is solved by introducing the notion of a frame control which can navigate between pages. With this added functionality, a Silverlight application behaves like a ‘normal’ web application containing multiple pages.[Animate]Navigation through the Silverlight application now works great with the Browser back button.
  • In Silverlight 3, this problem was recognized and solved.[Animate]It is solved by introducing the notion of a frame control which can navigate between pages. With this added functionality, a Silverlight application behaves like a ‘normal’ web application containing multiple pages.[Animate]Navigation through the Silverlight application now works great with the Browser back button.
  • Which application model is used for Windows Phone 7?[Animate]Windows Phone 7 uses a similar Silverlight 3 application model, however, there is not really any need for the user control in the middle.[Animate]Therefore, the structure of a Silverlight application on the phone is very simple. The Application has a Frame as its visual root and the Frame can contain multiple Pages.[Animate]A Windows Phone 7 has a hardware back button that allows navigating, similar to the Browser back button.
  • Which application model is used for Windows Phone 7?[Animate]Windows Phone 7 uses a similar Silverlight 3 application model, however, there is not really any need for the user control in the middle.[Animate]Therefore, the structure of a Silverlight application on the phone is very simple. The Application has a Frame as its visual root and the Frame can contain multiple Pages.[Animate]A Windows Phone 7 has a hardware back button that allows navigating, similar to the Browser back button.
  • Which application model is used for Windows Phone 7?[Animate]Windows Phone 7 uses a similar Silverlight 3 application model, however, there is not really any need for the user control in the middle.[Animate]Therefore, the structure of a Silverlight application on the phone is very simple. The Application has a Frame as its visual root and the Frame can contain multiple Pages.[Animate]A Windows Phone 7 has a hardware back button that allows navigating, similar to the Browser back button.
  • Which application model is used for Windows Phone 7?[Animate]Windows Phone 7 uses a similar Silverlight 3 application model, however, there is not really any need for the user control in the middle.[Animate]Therefore, the structure of a Silverlight application on the phone is very simple. The Application has a Frame as its visual root and the Frame can contain multiple Pages.[Animate]A Windows Phone 7 has a hardware back button that allows navigating, similar to the Browser back button.
  • The back key allows the user to go back to screens that they have seen before, in other words, there is a whole stack of screens that the user can walk back through. This is completely independent from applications, so hitting the back button, a user might end up in another application.Applications should not override the meaning of the back key. Even if you can do it, it is a bad idea because the user expects this key to behave consistent. So don’t even do it in games. However, every rule has one or two exceptions, so lets take a look at one of the exceptions in a little demo.
  • The back key allows the user to go back to screens that they have seen before, in other words, there is a whole stack of screens that the user can walk back through. This is completely independent from applications, so hitting the back button, a user might end up in another application.Applications should not override the meaning of the back key. Even if you can do it, it is a bad idea because the user expects this key to behave consistent. So don’t even do it in games. However, every rule has one or two exceptions, so lets take a look at one of the exceptions in a little demo.
  • The back key allows the user to go back to screens that they have seen before, in other words, there is a whole stack of screens that the user can walk back through. This is completely independent from applications, so hitting the back button, a user might end up in another application.Applications should not override the meaning of the back key. Even if you can do it, it is a bad idea because the user expects this key to behave consistent. So don’t even do it in games. However, every rule has one or two exceptions, so lets take a look at one of the exceptions in a little demo.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  • Push notifications are a way to offload background processing from the device into the cloudNo need to use the battery, CPU cycles and memory on the deviceInitiated by the server to enable key background scenariosAKA ‘Smart Multitasking’Users can focus on the foreground application that has as much resources as possible availableYou (as a developer) can notify the user through the server if there is something they should know about or react upon
  • Push notifications are a way to offload background processing from the device into the cloudNo need to use the battery, CPU cycles and memory on the deviceInitiated by the server to enable key background scenariosAKA ‘Smart Multitasking’Users can focus on the foreground application that has as much resources as possible availableYou (as a developer) can notify the user through the server if there is something they should know about or react upon
  • Push notifications are a way to offload background processing from the device into the cloudNo need to use the battery, CPU cycles and memory on the deviceInitiated by the server to enable key background scenariosAKA ‘Smart Multitasking’Users can focus on the foreground application that has as much resources as possible availableYou (as a developer) can notify the user through the server if there is something they should know about or react upon
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  • Location services are currently not supported on the emulator (there is not something like FakeGPS), but you can use a mock to ‘pretend receiving’ location dataLocation services combine smart software on the device with a backend service to balance accuracy of location with time / power it takes to get the locationFor some applications location down to city or zip code level is sufficientOther applications need read accurate location information up to a few yardsThe different location requirements can be specified, using a location API that is not only available on the phone, but also on the desktop (Windows 7, .NET Framework 4.0)
  • Location services are currently not supported on the emulator (there is not something like FakeGPS), but you can use a mock to ‘pretend receiving’ location dataLocation services combine smart software on the device with a backend service to balance accuracy of location with time / power it takes to get the locationFor some applications location down to city or zip code level is sufficientOther applications need read accurate location information up to a few yardsThe different location requirements can be specified, using a location API that is not only available on the phone, but also on the desktop (Windows 7, .NET Framework 4.0)
  • Location services are currently not supported on the emulator (there is not something like FakeGPS), but you can use a mock to ‘pretend receiving’ location dataLocation services combine smart software on the device with a backend service to balance accuracy of location with time / power it takes to get the locationFor some applications location down to city or zip code level is sufficientOther applications need read accurate location information up to a few yardsThe different location requirements can be specified, using a location API that is not only available on the phone, but also on the desktop (Windows 7, .NET Framework 4.0)
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  • ×