<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://windowsteamblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Phone Developer Blog</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/default.aspx</link><description /><dc:language>en-US</dc:language><generator>Telligent Community (Build: 5.5.134.11459)</generator><item><title>Using the Accelerometer on Windows Phone 7</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/09/08/using-the-accelerometer-on-windows-phone-7.aspx</link><pubDate>Wed, 08 Sep 2010 16:16:25 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:549649</guid><dc:creator>Dave Edson</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=549649</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/09/08/using-the-accelerometer-on-windows-phone-7.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://windowsteamblog.com/windows/m/files/549630/download.aspx"&gt;&lt;strong&gt;&lt;u&gt;Download for this blog&lt;/u&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When Windows Phone 7 is released, users will be able to enjoy the fact that the hardware requirements for the phone include an accelerometer. Some applications are naturally inclined to work well with accelerometer input. Imagine a “Labyrinth” style game where you can now just rotate or tilt the device instead of simulating the tilting of the table using some buttons or sliders? Just rotating the device from portrait to landscape can re-flow the screen in the right orientation without the user selecting their preferred orientation. &lt;/p&gt;  &lt;p&gt;In this blog post we will talk about the different ways you can use the accelerometer API in Windows Phone 7. We also include a class called AccelerometerHelper that uses the Microsoft supplied managed API and provides a variety of data for you to experiment with and find the right solution for your application. There are two major usages of the accelerometer: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Orientation relative to our planet Earth (assuming the device is being held steady)&lt;/li&gt;    &lt;li&gt;Detecting movement of the device relative to the initial point (assuming you know the orientation). &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The AccelerometerHelper class adds two high level functions for filtering of the data and calibration of the accelerometer.&lt;/p&gt;  &lt;p&gt;Before we jump into the helper class, let’s take a look at the &lt;a href="http://msdn.microsoft.com/en-us/library/ff431793(v=VS.92).aspx"&gt;Windows Phone 7 managed accelerometer API&lt;/a&gt;. It’s pretty simple. There is a class called Accelerometer that is in the Microsoft.Devices.Sensors namespace. You create a new instance of the Accelerometer and then set up an event handler for the ReadingChanged event. Call the Start() method and you will start getting these events:&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; SetupAccelerometer()&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;_sensor = &lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Accelerometer&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_sensor.ReadingChanged += OnSensorReadingChanged;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_sensor.Start();&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; OnSensorReadingChanged(&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; sender, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;AccelerometerReadingEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; e&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="MsoNoSpacing"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The AccelerometerReadingEventArgs contains the X, Y, and Z accelerometer readings from the sensor on the phone and a timestamp. The values are expressed in G-forces (1G = 9.81 m/s&lt;sup&gt;2&lt;/sup&gt;), so a value of 1.0 means that the corresponding axis is being pulled with the same force as the gravity in Paris (the oh-so obvious center of the gravitational universe, hi Greg!). For example, if Z is -1.0, then the device is lying flat, face up, on a perfectly flat surface. If Z is 1.0, then the device is lying flat, faced down. Here is a diagram showing all the corresponding values:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5734.image_5F00_43041960.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3630.image_5F00_thumb_5F00_7991C4A4.png" width="375" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There is something very important to note, however. Getting a value of 1.0 is not going to happen all the time. Earth’s gravity doesn’t roll that way. You may be at the &lt;a href="http://en.wikipedia.org/wiki/Mystery_Spot"&gt;Mystery Spot&lt;/a&gt;, you may be on top of a very tall mountain, or your hand may be trembling enough that there are some extra forces on the device. The accelerometer has some error tolerance, so you will want to experiment around with the cumulative margin of errors for the max/min values if your application needs to know these sorts of things. The AccelerometerHelper does not provide this functionality.&lt;/p&gt;  &lt;p&gt;Now keep in mind that you will get those events often. Fifty times per second, to be exact. That means you are going to be getting a lot of data. The data you get will be noisy because of the nature of the accelerometer sensor on the device. Even with the device sitting on a table, minding its own business, the numbers coming in will have some variance. Additionally, there will be some calibration problems due to the nature of manufacturing tolerances (and users possibly dropping their phones a few times). Some devices will also come with edges that are not exactly flat. This means setting the device on a table may not result in a “level” reading. For applications using orientation, they need to really know that when the X and Y values are 0, the device is “leveled” (if “leveled” means the device is lying flat. If “leveled” means on edge then Z is 0, and either X or Y is 0). A level application is a perfect example of this.&lt;/p&gt;  &lt;p&gt;With this short preamble, let us now look at the AccelerometerHelper class. It provides methods to calibrate the accelerometer and smooth the noisy 50 Hz data stream that the underlying Accelerometer class is generating. The AccelerometerHelper class provides a ReadingChanged event, which uses AccelerometerHelperReadingEventArgs. I think the class speaks for itself. Here is the class’s signature:&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 9.5pt"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Accelerometer Helper Class, providing filtering and local calibration of accelerometer sensor data &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;AccelerometerHelper&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;: &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; New raw and processed accelerometer data available event.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Fires every 20ms.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;AccelerometerHelperReadingEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt; ReadingChanged;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Singleton instance of the Accelerometer Helper class&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;AccelerometerHelper&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Instance { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; True when the device is &amp;quot;stable&amp;quot; (no movement for about 0.5 sec)&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; DeviceStable&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;{ &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Persistant data (calibration of accelerometer)&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Simple3DVector&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; ZeroAccelerationCalibrationOffset { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Accelerometer is not present on device &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; NoAccelerometer { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Accelerometer is active and reading value when true&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Active&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;{ &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get; set; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Release sensor resource if not already done&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Dispose();&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Indicate that the calibration of the sensor would work along a particular set of axis&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; because the device is &amp;quot;stable enough&amp;quot; or not inclined beyond reasonable&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;xAxis&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;check stability on X axis if true&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;yAxis&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;check stability on X axis if true&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;returns&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;true if all of the axis checked were &amp;quot;stable enough&amp;quot; or not too inclined&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/returns&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; CanCalibrate(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; xAxis, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; yAxis);&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Calibrates the accelerometer on X and / or Y axis and save data to isolated storage.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;xAxis&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;calibrates X axis if true&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;yAxis&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;calibrates Y axis if true&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;returns&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;true if succeeds&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/returns&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Calibrate(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; xAxis, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; yAxis);&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The AccelerometerHelperReadingEventArgs provide the current values (see the next section “A Look at Data Smoothing” for an explanation of these values):&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&lt;/font&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Arguments provided by the Accelerometer Helper data event&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;AccelerometerHelperReadingEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Raw, unfiltered accelerometer data (acceleration vector in all 3 dimensions) coming directly from sensor.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; This is required for updating rapidly reacting UI.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Simple3DVector&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; RawAcceleration { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160; &lt;/font&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Filtered accelerometer data using a combination of a low-pass and threshold triggered high-pass on each axis to &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; elimate the majority of the sensor low amplitude noise while trending very quickly to large offsets (not perfectly&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; smooth signal in that case), providing a very low latency. This is ideal for quickly reacting UI updates.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Simple3DVector&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; OptimalyFilteredAcceleration { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Filtered accelerometer data using a 1 Hz first-order low-pass on each axis to elimate the main sensor noise&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; while providing a medium latency. This can be used for moderatly reacting UI updates requiring a very smooth signal.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Simple3DVector&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; LowPassFilteredAcceleration { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Filtered and temporally averaged accelerometer data using an arithmetic mean of the last 25 &amp;quot;optimaly filtered&amp;quot; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; samples (see above), so over 500ms at 50Hz on each axis, to virtually eliminate most sensor noise. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; This provides a very stable reading but it has also a very high latency and cannot be used for rapidly reacting UI.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size: 9.5pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Simple3DVector&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; AverageAcceleration { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 9.5pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;The Simple3DVector is just a nice class that puts X, Y, and Z into the same object, along with some handy math functions.&lt;/p&gt;  &lt;h4&gt;A Look at Data Smoothing&lt;/h4&gt;  &lt;p&gt;Remember that the data from the accelerometer come in fast and furious at 50 times per second. The important thing to understand is how you want your application to react to this data stream. How you want your application to react depends on your application scenario. Some applications will want to have a very “nimble” feel, where small changes in the accelerometer value have immediate results. Games come to mind here. Other applications will want to have a very “steady” feel, where minute changes are ignored unless they trend over time from Value A to Value B. Let’s look at two graphs of raw data that we recorded from a device. The first graph trends from a low number to a high number. The second graph rapidly switches from one range of numbers to another, and then back. In real life, the trending graph is from a device that the user slowly tilts in one direction, and the second graph is from a device where the user rapidly tilts the device and then quickly resets the device. For the sake of simplicity, we show only one axis in the graph. The reader can extrapolate to all 3 axes:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6204.image_5F00_57C5EC13.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1325.image_5F00_thumb_5F00_6FE9566E.png" width="240" height="209" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5657.image_5F00_63E7663A.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2845.image_5F00_thumb_5F00_1C25DD53.png" width="240" height="210" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note how choppy the raw values are. If you have an application that shows the value of the accelerometer as numbers, those numbers will appear to be jumping all over the place. Perhaps this is what you want (highly doubtful, since it’s so noisy). But if you want to add some fluidity to the numbers so they seem to move in a more sequential fashion, then you will need to do some math stuff called signal processing.&lt;/p&gt;  &lt;p&gt;Let’s first look at using the running average of the past five samples. By averaging the past five readings, the value is much, much smoother. But you can see in the second graph that the change in reading is now detected much later due to the smoothing. Therefore any application that needs to respond quickly to the change (like a car racing game), the latency will make the game play difficult. For the first graph (which has trending data versus sudden changes), this looks pretty nice.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6014.image_5F00_6640E838.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7607.image_5F00_thumb_5F00_1355D507.png" width="240" height="184" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3324.image_5F00_0B5E32A5.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4331.image_5F00_thumb_5F00_1F774F2E.png" width="260" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Averaging is one method to smooth out noisy signals. Another method is to use something called a “Low Pass Filter”. A simple low pass filter is described by the formula below:&lt;/p&gt;  &lt;p&gt;O&lt;sub&gt;n&lt;/sub&gt; = O&lt;sub&gt;n-1 &lt;/sub&gt;+ α(I&lt;sub&gt;n&lt;/sub&gt; – O&lt;sub&gt;n-1&lt;/sub&gt;)&lt;/p&gt;  &lt;p&gt;O is the output (filtered value) and I is the input (raw value), and α is a “coefficient” with a value between 0 and 1. If the coefficient is 1, the output is exactly the same as the input. If the coefficient is 0, the output is always the initial number. Those are the boring cases, the more interesting cases are when the coefficient is somewhere in between. The lower the coefficient, the more smoothing goes on. This formula gives you a single number to twiddle to get the smoothing effect you want. Let’s now look at the two graphs again, filtered with the low pass filter using a coefficient of 0.5:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2318.image_5F00_69925A13.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2211.image_5F00_thumb_5F00_489EE76C.png" width="240" height="187" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8446.image_5F00_40A7450A.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4064.image_5F00_thumb_5F00_06B8021E.png" width="237" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And now, let’s use a coefficient of 0.15:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3021.image_5F00_01A59EA2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3441.image_5F00_thumb_5F00_00CD38B8.png" width="240" height="187" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1234.image_5F00_54B03BC6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5140.image_5F00_thumb_5F00_6CD3A621.png" width="240" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see, the resultant signals are pretty smooth, but there is still latency in the second graph. We need to find a way to smooth the data when it is bound to a range, but take the big changes immediately. We’ll call this the “Optimal” value. There are lots of ways to do this, but the AccelerometerHelper takes the simple approach of checking the delta against a threshold. If the delta between the average value and the raw value is beyond a threshold, then the raw value is used, otherwise the low pass filter value is used. Here are the two graphs using this “Optimal” algorithm:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7043.image_5F00_2BC526BD.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6406.image_5F00_thumb_5F00_2AECC0D3.png" width="240" height="186" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2046.image_5F00_22F51E71.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6443.image_5F00_thumb_5F00_48EACEC7.png" width="260" height="186" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Just in case you don’t have graph overload, here is a composite graph showing all the different algorithms at once:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0447.image_5F00_55E4AED8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0871.image_5F00_thumb_5F00_73E2BCCC.png" width="375" height="269" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6607.image_5F00_2BB500F0.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7142.image_5F00_thumb_5F00_31237194.png" width="375" height="267" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you would like to play around with the coefficients and thresholds, you can find an Excel spreadsheet in the downloadable for this blog post. It has a sample of actual data taken from a device, and you can play around with the coefficients to see the effect on the data.&lt;/p&gt;  &lt;h4&gt;Calibration&lt;/h4&gt;  &lt;p&gt;Just what does calibrating the accelerometer mean? As an application, you do not have the ability to write system settings, so any calibrations you make will be only applicable at your application level. The AccelerometerHelper class “calibrates” the accelerometer by actually calibrating itself. You, the user, are expected to lay the device flat on a surface, then press a button whose event handler calls the Calibrate method for the X and Y axis. Calibration on the Z axis is not relevant. The method signature looks like this:&lt;/p&gt;  &lt;p&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;///&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Calibrates the accelerometer on X and / or Y axis and save data to isolated storage.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;xAxis&amp;quot;&amp;gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt;calibrates X axis if true&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;yAxis&amp;quot;&amp;gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt;calibrates Y axis if true&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;returns&amp;gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt;true if succeeds&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/returns&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;Calibrate&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;xAxis&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;yAxis&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;You notice that the return value indicates success or failure. That’s because the Calibrate method checks the CanCalibrate method first to see if calibration is possible. If the device is tilted such that the X or Y values are nowhere near 0, then CanCalibrate will return false. Also, if the device is moving around a lot, CanCalibrate will return false. Your application can call CanCalibrate is response to the ReadingChanged event and modify the UI of your application accordingly. For example, a Level application could enable/disable the calibrate button to correlate to the CanCalibrate value.&lt;/p&gt;  &lt;p&gt;If the Calibrate method proceeds to actually “calibrate”, then the average X and/or Y values of the accelerometer are used to build a vector. That vector is the negative of the current values. When added together, you get a vector with 0, 0, 0 for the x, y, z values. So the raw values from the Accelerometer class are combined with the compensation vector and the resultant values are run through the filters above. In addition, the calibration vector is saved away in the built-in IsolatedStorageSettings.ApplicationSettings with key names of “AccelerometerCalibrationX” and “AccelerometerCalibrationY”. This is nice because the user will usually only need to calibrate once per app and be done.&lt;/p&gt;  &lt;h4&gt;Orientation&lt;/h4&gt;  &lt;p&gt;In addition to the AccelerometerHelper class, there is also an OrientationHelper class we’ve written. It gives you information on all six of the device orientations for the 3 dimensions, as well as “Unknown” in case the device is not close enough to any of the orientations that a true orientation can be determined (or if the device is in motion, and the accelerometer values are rapidly changing). You get an event which tells you the new orientation and the previous orientation.&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;///&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Possible orientations for the device&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160; &lt;/font&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DeviceOrientation&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;Unknown, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ScreenSideUp, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ScreenSideDown, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;PortraitRightSideUp, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;LandscapeRight, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;LandscapeLeft, &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;PortraitUpSideDown&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font style="font-size: 11pt" color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Arguments provided on device orientation change events&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DeviceOrientationChangedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; : &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Current (new) orientation of the device&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DeviceOrientation&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;CurrentOrientation&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font style="font-size: 11pt" color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Previous (before this current update) orientation of the device&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DeviceOrientation&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;PreviousOrientation&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Your app just gets itself a reference to the singleton object, and sets up the event handler, it literally cannot be any easier than this code. The Dispatcher.BeginInvoke bit is only required if you need the HandleOrientation method (which you implement) to run on the UI thread. That depends on your application design.&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DeviceOrientationHelper&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;.&lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;Instance.OrientationChanged += &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;orientationHelper_OrientationChanged;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font style="font-size: 11pt" color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;. . .&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font style="font-size: 11pt" color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; Called on orientation change from orientation helper&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt;Event sender&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;font color="#808080"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;///&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#008000"&gt;Event arguments&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#808080"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;orientationHelper_OrientationChanged&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; &lt;/font&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;font color="#000000"&gt;sender&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DeviceOrientationChangedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;font color="#808080"&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Dispatcher.BeginInvoke(() =&amp;gt; HandleOrientation(e));&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt" class="CodeSnippet"&gt;&lt;span style="mso-no-proof: yes; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Dave Edson and Greg Hogdal (who wrote this post) are both software developers on the Windows Phone 7 Applications Platform team at Microsoft. We are working towards making your Windows Phone 7 development experience as easy and fun as possible!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=549649" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Gaming/default.aspx">Gaming</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Apps/default.aspx">Apps</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Applications/default.aspx">Applications</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Code+Sample/default.aspx">Code Sample</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Games/default.aspx">Games</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Accelerometer/default.aspx">Accelerometer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/API/default.aspx">API</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developing/default.aspx">Developing</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Managed+Accelerometer+API/default.aspx">Managed Accelerometer API</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Code/default.aspx">Code</category></item><item><title>A Developer’s Roadmap to Windows Phone 7 Launch Timing</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/23/a-developer-s-roadmap-to-windows-phone-7-launch-timing.aspx</link><pubDate>Mon, 23 Aug 2010 16:25:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:548410</guid><dc:creator>Brandon Watson</dc:creator><slash:comments>29</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=548410</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/23/a-developer-s-roadmap-to-windows-phone-7-launch-timing.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;August marks the six-month anniversary of the public unveiling of our &lt;/span&gt;&lt;a href="http://www.microsoft.com/presspass/press/2010/feb10/02-15mwc10pr.mspx"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;next-generation mobile phone, Windows Phone 7&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;. &lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Six months is an interesting bit of time; it can fly by, or it can feel like it&amp;rsquo;s dragging on forever.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The gating factor tends to be how much fun you are having.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;For us on the Windows Phone team, it feels like just yesterday that we first introduced Windows Phone 7 to the world. Now, just a blink of the eye and phones will be on shelves.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;All of the work of the last six months is certainly paying off, as just about every conversation we have with developers focuses on &lt;b style="mso-bidi-font-weight: normal;"&gt;their&lt;/b&gt; strategy for generating more business with Windows Phone 7.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;It&amp;rsquo;s amazing to see so many inspired developers looking to create experiences for Windows Phone 7. In fact, to date there have been north of &lt;b style="mso-bidi-font-weight: normal;"&gt;300,000 downloads of the Windows Phone Developer Tools.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;These first six months have affirmed that a rich application platform based on the well understood Silverlight and XNA technologies, combined with great free tools based on Visual Studio 2010 and Expression Blend is the right approach for enabling developers and designers of all skill levels who are looking to capitalize on the opportunities presented by Windows Phone 7. Throughout the process, the developer community has continued to astound us with their creative ideas.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Their use of the unique Windows Phone 7 features - like our design system, Live tiles, and location and notifications services - demonstrate that the experiences a developer can build on Windows Phone 7 match their imaginations. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;While our developer community has been busy stretching the capabilities of the application platform and developer tools, we have been working very closely with some amazing application and game developers to ensure that Windows Phone 7 customers have the applications they expect, across a wide swath of the categories they value. &lt;span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;Here&amp;rsquo;s a just&amp;nbsp;small sample of the variety of companies with whom we have been working:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Adenclassifieds, Allocin&amp;eacute; (including sister brands: Screenrush, Filmstarts, Sensacine), APPA Mundi Ltd, Artificial Life, Inc., ebay, Inc., Esurance Insurance Services, Inc, Flixster, Intelligent Touch Solutions Ltd., Jobsite UK (Worldwide), Limited, Kelley Blue Book Co., Inc., Le Figaro group, My Interactive Limited, Open Table, Inc., Pageonce, Inc., Panoramic Software, Inc., photobucket inc., REALTOR.COM&amp;reg; Real Estate Search&amp;nbsp; (Move, Inc.), Red Badger Consulting Limited, rising systems networks GmbH, Seesmic, Sequence Collective Ltd, TBS Field Mobility Solutions, The Associated Press, Touchnote, Trip Mate, Inc., Tx3 Solutions, vente-priv&amp;eacute;e.com, Viadeo S.A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Of course, it&amp;rsquo;s not just the big names in development who are going to bring great titles to Windows Phone 7 customers.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;There are many multiples more of lesser known developers who are looking to be in the Windows Phone Marketplace.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Large or small, all developers will have equal opportunity to capitalize on the first mover advantage of having their apps or games ready at launch.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;In order to do that, there are a few things developers will need to do:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div class="MsoListParagraph"&gt;&lt;a href="http://developer.windowsphone.com/Signup-Create-Account.aspx"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="color: #0000ff;"&gt;Register&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt; at the marketplace today&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraph"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Finish you application or game using the &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=189554"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="color: #0000ff;"&gt;Beta&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt; tools&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraph"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Download the final Windows Phone Developer Tools when they are &lt;b style="mso-bidi-font-weight: normal;"&gt;released on September 16&lt;sup&gt;th&lt;/sup&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraph"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Recompile your app or game using the final tools&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraph"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Have your XAP ready for ingestion into the marketplace in early October when it opens&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;The final tools will likely have some minor breaking changes from the Beta tools, so developers may have to fix some bugs that arise.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The final tools will also include several highly requested Silverlight controls which will make it even easier for developers to deliver high quality Windows Phone 7 experiences.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Also in the September 16&lt;sup&gt;th&lt;/sup&gt; final release, the panorama, pivot and Bing maps controls will all be available to drop into applications.&lt;/span&gt; &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;The developer tools, controls and application platform are great, but we also recognize the need for smart training.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Just last week we released a course called the &lt;/span&gt;&lt;a href="http://channel9.msdn.com/posts/egibson/Windows-Phone-7-Jump-Start-Session-1-of-12-Introduction/"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Windows Phone 7 Jump Start&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;, delivered by two of our MVPs, Andy Wigley and Rob Miles.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;It includes 12 hours of classroom training and supporting exercises.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;We have also recently updated the &lt;/span&gt;&lt;a href="http://channel9.msdn.com/learn/courses/WP7TrainingKit/"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;Windows Phone 7 Developer Training Kit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;We will be releasing many more hours of training in the coming weeks and months. For the XNA developers, the &lt;/span&gt;&lt;a href="http://creators.xna.com/"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="color: #0000ff;"&gt;XNA Creator Club&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt; announced today a new set of educational materials&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman';"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;We&amp;rsquo;re also taking additional steps to make sure that the developer experience with Windows Phone Marketplace is even more friendly and intuitive. Ask any mobile developers about their biggest headaches and you are likely to hear about an opaque or non-existent app store ingestion process.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;We&amp;rsquo;ve shown how we are making the process of building apps and games easier for developers, but that is only part of the journey. The next step is getting apps and games in front of customers.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The Windows Phone Marketplace continues our commitment to having a clear and open process for certifying apps and games.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;To reinforce that, today we have posted an &lt;/span&gt;&lt;a href="http://download.microsoft.com/download/1/2/D/12D67308-29EE-463D-A442-142F6982AECE/Windows Phone 7 Application Certification Requirements.pdf"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="color: #0000ff;"&gt;updated set of Windows Phone Marketplace policies&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Further, in the coming weeks we will be conducting a limited Beta test cycle of our app submission and certification process.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;We&amp;rsquo;re also working on significant changes to our developer portal that reflects feedback from the community. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;In those changes, you&amp;rsquo;ll see enhancements meant to simplify and streamline the path for developers to get the information they need.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;So what does this all mean?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;We&amp;rsquo;ve demonstrated that you can build a phone that doesn&amp;rsquo;t just allow developers to build apps, but rather one that enhances apps with unique features like Live tiles and a design system not available anywhere else.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;We&amp;rsquo;ve shown that a phone isn&amp;rsquo;t there to just run apps, but rather to understand the full context of what customers are trying to do; integrating functions like maps and search and saving the state of apps so that customers can move between them without losing content or negatively impacting battery life.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Lastly, we aren&amp;rsquo;t just building a marketplace to deliver apps and games, but rather testing and certifying every one for quality and performance - all the while maintaining a fully open and transparent process to support the developer and their Marketplace success. Our rich developer ecosystem is creating a variety of quality apps and games that take advantage of the phone&amp;rsquo;s unique features and design.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;How will you spend the next couple of weeks?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;For the developers telling us how much fun they are having with our productive set of tools and APIs, launch day will be here before they know it. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Developers now know when they will receive the final Windows Phone Developer Tools (September 16&lt;sup&gt;th&lt;/sup&gt;!) and when they should have their XAPs ready for Marketplace ingestion.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;300,000 tools downloads means quite a bit of imagination is going to be pouring into the apps and games that customers see on Windows Phone 7 this holiday season.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The clock is ticking.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Will you be ready?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=548410" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/XNA/default.aspx">XNA</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/WP7/default.aspx">WP7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developers/default.aspx">Developers</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/wp7dev/default.aspx">wp7dev</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Gamer/default.aspx">Gamer</category></item><item><title>Windows Phone 7 Jump Start Training</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/17/windows-phone-7-jump-start-training.aspx</link><pubDate>Tue, 17 Aug 2010 22:54:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:547997</guid><dc:creator>Brandon Watson</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=547997</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/17/windows-phone-7-jump-start-training.aspx#comments</comments><description>&lt;p&gt;Today we are publishing the first in our training content led by our MVPs.&amp;nbsp; Rob Miles and Andy Wigley led an incredibly well received live training course about a month ago, focused on getting developers trained up on building amazing applications and games for Windows Phone 7.&lt;/p&gt;
&lt;p&gt;We recognize that providing as much technical content as we can for the full range of developers is what developers deserve. While we plan on having more live training sessions in the coming weeks and months, we are also committed to making that content available as quickly as possible to as many developers as possible. Since this round of content is based on Beta Windows Phone Developer Tools, we will not be localizing it.&amp;nbsp; For our non-English speaking developers, we will be providing localized training once we have released the final developer tools.&lt;/p&gt;
&lt;p&gt;Andy and Rob provide a good bit of humor along with their incredible depth of knowledge on the topic of building apps and games for Windows Phone 7. We think they have covered a fair amount ground, but if there are topics you feel we need to cover more in depth, don't hesitate to let us know.&lt;/p&gt;
&lt;p&gt;There are 12 sessions in total, each about :50 minutes in length. Think of this as a semester's worth of class time to help you in your quest to be an awesome Windows Phone 7 developer. It's self-paced, and both Rob and Andy are pretty approachable. Head on over to their blogs if you want to get more plugged into what they are doing.&lt;/p&gt;
&lt;p&gt;Here are the sessions, and a link to &lt;a href="http://borntolearn.mslearn.net/wp7/m/classresources/default.aspx?wa=wsignin1.0"&gt;their course material&lt;/a&gt;.&amp;nbsp; UPDATED: Here's a link to the &lt;a href="http://social.zune.net/redirect?type=podcastseries&amp;amp;id=c18bb848-3b89-46cf-9b37-c3f5a1e926b5&amp;amp;CampaignID=1&amp;amp;affiliateID="&gt;&lt;img src="http://social.zune.net/xweb/lx/pic/zuneclick.jpg" /&gt;Zune subscription&lt;/a&gt; link.&amp;nbsp; Also a link to the &lt;a href="- http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=388022966"&gt;iTunes subscription&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL1USBL/"&gt;Windows Phone 7 Jump Start (Session 1 of 12): Introduction&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A quick tour of Windows Phone 7 and how you write programs for it. We take a look at the platform capabilities and the software development options. We also offer you a chance to win a prize that is almost certainly not a private jet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL2USBL/"&gt;Windows Phone 7 Jump Start (Session 2 of 12): Building a Silverlight Application, Part 1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Building an application from scratch. How you can take a simple idea for a program and build the user interface, followed by the program behaviors that sit behind it. We take a look at databinding on Windows Phone and how best to structure your application to make best use of it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL3USBL/"&gt;Windows Phone 7 Jump Start (Session 3 of 12): Building a Silverlight Application, Part 2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Making more complex applications. You also get an overview of how the built in controls work, and how to tailor the user input to match your requirements. We also take a look at page navigation within a multi-form Silverlight application on the phone and how to use the navigation inputs for best effect.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL4USBL/"&gt;Windows Phone 7 Jump Start (Session 4 of 12): Building Games for the Windows Phone 7 Platform&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using Silverlight as a platform for game creation. We show how to get a draw/update behavior into your Silverlight games and give you a fully worked game to chew on. We also illustrate how a Silverlight game can leverage the XNA libraries to add sound effects to a game.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL5USBL/"&gt;Windows Phone 7 Jump Start (Session 5 of 12): Building XNA Games for the Windows Phone 7 Platform, Part 1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Getting Started with&amp;nbsp; XNA on Windows Phone. We talk about what makes the Windows Phone such a good platform for XNA development and how you create XNA games for it. We take a look at how games can manage the orientation of a phone and give you some tips on getting the best performance. Then we move on to take a look at the accelerometer input and how to make games that use this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL6USBL/"&gt;Windows Phone 7 Jump Start (Session 6 of 12): Building XNA Games for the Windows Phone 7 Platform, Part 2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using the Windows Phone platform features in your XNA games. We continue with our look at Windows Phone features that make the platform so interesting to game developers. We cover the use of the touch screen, sound creation and finally give you some coverage of how to access the Zune media content in the device. Then we round off with a little look at how you can get text input from users by means of the Guide support in XNA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL7USBL/"&gt;Windows Phone 7 Jump Start (Session 7 of 12): Advanced Application Development, Part 1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Application Lifecycle. A look at the execution model on the phone, and how to create solutions that give a great user experience in the face of phone calls, termination and even total shutdown of the device itself. We show how to respond to messages to make your application give the appearance of being "always on" and the data persistence facilities that you will need to make this work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL8USBL/"&gt;Windows Phone 7 Jump Start (Session 8 of 12): Advanced Application Development, Part 2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Launchers and Choosers plus Using Isolated Storage. In this session we take a look at "Launchers and Choosers", how your application can use the built in phone behaviors to place calls, take pictures and select contacts, making it part of how the phone works. We also show how your application can store data in its own isolated storage on the phone device.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL9USBL/"&gt;Windows Phone 7 Jump Start (Session 9 of 12): Advanced Application Development, Part 3&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Storing Data and Using the Network. In this session we look at the connectedness of Windows Phone and how you can make this work for you. We demonstrate connected applications and how the notification service is used to allow external systems to give your application a wake-up call.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL10USBL/"&gt;Windows Phone 7 Jump Start (Session 10 of 12): Marketing Your Windows Phone 7 Application&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using Windows Marketplace. In this session we explain how to join the Marketplace and get your applications out there. We take a look at how your solutions are packaged and deployed and how you go about registering a device for development and then using that with Visual Studio 2010 to test your applications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL11USBL/"&gt;Windows Phone 7 Jump Start (Session 11 of 12): Working with Media&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using XNA in 3D and with Media. In this session we take a quick look at how the Windows Phone works as an excellent platform for 3D games in XNA. We also explore how an XNA game can make use of the media stored in the phone, including photographs taken by the user and media loaded onto it from Zune.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://r.ch9.ms/WP7MSL12USBL/"&gt;Windows Phone 7 Jump Start (Session 12 of 12): Final Silverlight Topics and Wrap-Up&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Taking Silverlight to the max. We start with a look at the Application bar, a crucial component in Windows Phone applications. We then move on to the Expression Blend tool, and how to create compelling user experiences with it. Finally we round off the session by showing how easy it is to use the map services in your phone and demonstrate some of the really cool navigation tools that are coming.&lt;/p&gt;
&lt;p&gt;Here are the bios for our fearless session leaders.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rob Miles&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rob Miles is a lecturer and Microsoft MVP based at Hull University in the UK. He teaches Programming, Software Engineering, Embedded Development and students. He has been working with XNA since before it was released and has been a big fan of Windows Phone 7 ever since he found out he could run his XNA and Silverlight programs on it. He writes a regular blog on programming and other forms of wit at &lt;a href="http://www.robmiles.com/"&gt;www.robmiles.com&lt;/a&gt; and can be found on twitter with the unsurprising name of RobMiles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Andy Wigley&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Andy Wigley is a device application development MVP and co-founder of UK-based mobile consultancy firm, Appa Mundi. He is the co-author of a number of Microsoft Press books, including the Mobile Development Handbook and the .NET Compact Framework Core Reference and is a regular speaker at major conferences such as Tech Ed. He lives in the mountains of Snowdonia, North Wales where a strong mobile phone signal is a total luxury which has helped him to hone his skills developing offline mobile apps. You can read his blog, and those of his Appamundi colleagues at &lt;a href="http://mobileworld.appamundi.com/blogs"&gt;http://mobileworld.appamundi.com/blogs&lt;/a&gt;. &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=547997" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/WP7/default.aspx">WP7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Training+Kit/default.aspx">Training Kit</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/wp7dev/default.aspx">wp7dev</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/windows+phoe/default.aspx">windows phoe</category></item><item><title>Xbox LIVE Games for Windows Phone 7 Unleashed at Gamescom</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/16/xbox-live-games-for-windows-phone-7-unleashed-at-gamescom.aspx</link><pubDate>Tue, 17 Aug 2010 04:20:09 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:547936</guid><dc:creator>Michael Klucher</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=547936</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/16/xbox-live-games-for-windows-phone-7-unleashed-at-gamescom.aspx#comments</comments><description>&lt;p&gt;I've been lucky enough this week to find myself in Köln Germany at &lt;a href="http://www.gamescom-cologne.com/en/gamescom/home/index.php"&gt;Gamescom&lt;/a&gt; 2010. It's also a pretty exciting day as we announced a number of Xbox LIVE games that will launch with Windows Phone 7 this holiday season. You'll find several familiar names in our first wave of titles from companies like Gameloft, Konami, Namco, Popcap and THQ. Microsoft Game Studios is also publishing several titles for Windows Phone 7 and partnering with many independent studios like Press Start to bring innovative indie content to Windows Phone 7. This is really cool to me, because it shows another step forward Microsoft is taking with the small and independent developer community.&lt;/p&gt;  &lt;p&gt;One particular game that we announced that's interesting to me is CarneyVale: Showtime. It's because its story is intertwined with so many significant milestones through XNA Game Studios' history and really shows the growth from a great idea from a few folks to having a game available as a launch title for a platform. If you're unfamiliar with the game, CarneyVale: Showtime is an acrobatic puzzle game where players are asked to complete various circus stunts. CarneyVale was developed by &lt;a href="http://gambit.mit.edu/"&gt;Team GAMBIT&lt;/a&gt;, a small indie studio in Singapore backed by MIT (yep, that one!). &lt;/p&gt;  &lt;p&gt;CarneyVale first showed up on my radar when it was submitted for an entry in our second annual &lt;a href="http://www.dreambuildplay.com/main/default.aspx"&gt;Dream.Build.Play&lt;/a&gt; contest circa 2008. As a member of the judging team that year, I was simply blown away at how polished the game was and how fun it was to play. Using XNA Game Studio, Team GAMBIT was able to build the game in four months and the game ended up winning the Grand Prize and $40,000. CarneyVale went on to accumulate other accolades such as the PAX 10 award and being chosen as a finalist in the Independent Games Festival. The game was included as part of our launch of Xbox LIVE Community games (now called Xbox LIVE Indie Games), which allows indies to publish their games on Xbox LIVE. In March of this year Team GAMBIT announced that they plan to bring CarneyVale: Showtime to the PC thanks to a distribution contract with Games for Windows – LIVE. They are taking full advantage of the portability that XNA Game Studio provides.&lt;/p&gt;  &lt;p&gt;For the Windows Phone 7 port of CarneyVale: Showtime, Team GAMBIT partnered with Microsoft Game Studios to integrate Xbox LIVE services available on the platform. In order for us to succeed, we want all types of content on Windows Phone 7, including games that are innovative and introduce concepts that are new to players. CarneyVale: Showtime is just that type of game.&lt;/p&gt;  &lt;p&gt;Because the game was already written in XNA Game Studio, the developers were able to bring their game across the Xbox 360 platform to Windows Phone 7 quickly. Instead of spending a lot of time re-coding the game, they were able to really focus on the differences between the platforms such as user input and screen resolution, while having the core game experience easily translate.&lt;/p&gt;  &lt;p&gt;CarneyVale: Showtime is just one example of a game that's built by indies who were able to utilize XNA Game Studio to bring their game to Xbox 360 and Windows Phone 7. Another great example of this is also included in our launch wave lineup; Rocket Riot from &lt;a href="http://www.codeglue.com/"&gt;Codeglue&lt;/a&gt;, a game that's currently available on Xbox LIVE Arcade. We're looking to everyone, bigger studios, indie studios, or just a single person with a bright idea to create games for Windows Phone 7. &lt;/p&gt;  &lt;p&gt;If there's one piece of information that can really get you started it's that all the titles used the same toolset that's available to you today at &lt;a href="http://developers.windowsphone.com"&gt;http://developers.windowsphone.com&lt;/a&gt;. If you're part of an indie group like Team GAMBIT, or a developer with a bright idea you can get everything you need from the site above. If you're just starting out with game development, we're here to help along the way at the same site you download the tools, or at our XNA Game Studio site at &lt;a href="http://creators.xna.com"&gt;http://creators.xna.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;I hope you get started today and will be looking forward to playing your next game on Windows Phone 7!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=547936" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/XNA/default.aspx">XNA</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Games/default.aspx">Games</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Popcap/default.aspx">Popcap</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Microsoft+Game+Studios/default.aspx">Microsoft Game Studios</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/XNA+Game+Studio/default.aspx">XNA Game Studio</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Konami/default.aspx">Konami</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/THQ/default.aspx">THQ</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Gameloft/default.aspx">Gameloft</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Xbox+LIVE/default.aspx">Xbox LIVE</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Namco/default.aspx">Namco</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Gamescom/default.aspx">Gamescom</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Xbox/default.aspx">Xbox</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Gamescom+2010/default.aspx">Gamescom 2010</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/CarneyVale_3A00_+Showtime/default.aspx">CarneyVale: Showtime</category></item><item><title>Windows Phone 7 Design Resources – UI Guide and Design Templates</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/27/windows-phone-7-design-resources-ui-guide-and-design-templates.aspx</link><pubDate>Tue, 27 Jul 2010 17:18:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:547185</guid><dc:creator>chriskil</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=547185</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/27/windows-phone-7-design-resources-ui-guide-and-design-templates.aspx#comments</comments><description>&lt;p&gt;With the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=189554"&gt;Windows Phone Developer Tools&lt;/a&gt; in &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx"&gt;Beta&lt;/a&gt; and Windows Phone 7 in &lt;a href="http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2010/07/18/a-windows-phone-7-milestone.aspx"&gt;Technical Preview&lt;/a&gt;, now is the time for you to build Windows Phone 7 apps in earnest. We have refreshed our &lt;a href="http://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx"&gt;developer documentation&lt;/a&gt; to help you build those apps, and we have two, new design-focused documents to help you make them look beautiful.&lt;/p&gt;  &lt;p&gt;First up, the &lt;b&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=183218"&gt;UI Design and Interaction Guide for Windows Phone 7 v2.0&lt;/a&gt; &lt;/b&gt;has been updated from the ground up for beta. With additional information and a new layout we hope you will find more readable, this guide provides detailed information about UI elements and controls, UI system behaviors, and the interaction model for the touch interface based on the design system internally named Metro. Designers and developers should read this guide to learn about the dos and don’ts of UI implementations for their Windows Phone apps. We've made it easier to find specific guidance by putting it in bold in the right-hand column of each page. &lt;/p&gt;  &lt;p&gt;&lt;img border="0" src="http://windowsteamblog.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84/1665.UI-Guide-v2.0-Sample-Page-Small.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Also available are the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=196225"&gt;Design Templates for Windows Phone 7&lt;/a&gt;. These are a collection of 28 layered Photoshop template files and the Segoe WP font family that can be used to create pixel-perfect application layouts, to help guide UI development, or to pitch an idea. These design templates showcase many controls that are a part of the Windows Phone Developer Tools Beta. They also include examples of controls that are a part of Windows Phone, but are not available as a part of the Windows Phone Developer Tools.&lt;/p&gt;  &lt;p&gt;&lt;img border="0" src="http://windowsteamblog.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84/7624.Design-Template-Sample-Page-Small.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Let us know what you think. If you have suggestions or feedback about these design resources, please email us at &lt;a href="mailto:wp7des@microsoft.com"&gt;wp7des@microsoft.com&lt;/a&gt; and help spread the word – if you find these resources helpful, please tweet about them.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=547185" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/UX/default.aspx">UX</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/WP7/default.aspx">WP7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Apps/default.aspx">Apps</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Applications/default.aspx">Applications</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developers/default.aspx">Developers</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Enthusiast/default.aspx">Enthusiast</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Chris+Kilbourn/default.aspx">Chris Kilbourn</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/UI/default.aspx">UI</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Documentation/default.aspx">Documentation</category></item><item><title>Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and more… – Part 3.</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/20/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-more-part-3.aspx</link><pubDate>Tue, 20 Jul 2010 22:44:08 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:546324</guid><dc:creator>Yochay</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=546324</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/20/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-more-part-3.aspx#comments</comments><description>&lt;p&gt;In the first two &lt;em&gt;Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and Choosers, and… Few More Things on the Way&lt;/em&gt; posts (&lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx"&gt;part 1&lt;/a&gt;, and &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/16/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-2.aspx"&gt;part 2&lt;/a&gt;) you learned about the different application lifecycle events – Launching, Deactivated, Closing, and Activated, and how they differ from one another. Based on that knowledge and &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-CodeSamples-LWP_5F00_AppLifecycle/4666.LWP.AppLifeCylce.zip"&gt;this code&lt;/a&gt;, we’ll move forward. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Saving the transient state and navigating to the right page&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;As you will recall, the second page of our simple application includes two textboxes, one for allowing the user to enter a phone number that will be used to save new contact information, and a second textbox for allowing the user to enter an SMS message to be sent. This will become useful when we start playing with Launchers and Choosers in the context of tombstoning applications. &lt;/p&gt;  &lt;p&gt;Let’s start by defining the problem. The easiest way is simply to run a small experiment:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;From Visual Studio, start your application.&lt;/li&gt;    &lt;li&gt;Navigate to the second page and enter some text in either or both textboxes. &lt;/li&gt;    &lt;li&gt;Press the Windows button; this will deactivate your application (see &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/16/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-2.aspx"&gt;part 2&lt;/a&gt; of this series). &lt;/li&gt;    &lt;li&gt;Press Back (once) to return to your application. This will result in a black screen on your emulator.&lt;/li&gt;    &lt;li&gt;Press F5, or use any other method to restart the Visual Studio debugging session to reactivate your application. (Again, if you are missing some context, please read part 2 of this series)&lt;/li&gt;    &lt;li&gt;At this stage, your application should be running and you should see the second page of the application. However, both textboxes are empty… the text that you entered before you deactivated your application is no longer there. It is gone!&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5383.image_5F00_6993909D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2604.image_5F00_thumb_5F00_5A7CB1C3.png" width="474" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;From this little experiment you have learned that data entered into your application is not automatically saved when your application deactivates (remember, your application gets terminated). And since reactivating an application really means starting a &lt;b&gt;new instance&lt;/b&gt; of the application with some tombstoned information, the page that you land on – in our case page 2, the DetailsPage, is a brand new instance of that page. This indicates that by default all the controls have no data, unless you load data into them.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The most&lt;/b&gt; important thing to remember about tombstoned applications is the simple fact that the user may &lt;b&gt;NOT return&lt;/b&gt; to your application, and therefore &lt;b&gt;your application may not be reactivated&lt;/b&gt;. If you anticipate this happening, &lt;b&gt;you&lt;/b&gt; need to &lt;b&gt;save&lt;/b&gt; to disk any data that you wish to restore at a later time. It is completely up to you and your responsibility as a developer to handle the saving and retrieving of data in your application&lt;/p&gt;  &lt;p&gt;We identified two sets of data types that we want to store (copied from &lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx"&gt;MSDN&lt;/a&gt;):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Persistent data&lt;/b&gt; - Data that is shared by all instances of an application. Persistent data is saved and loaded from &lt;b&gt;isolated storage&lt;/b&gt;. Application settings are an example of persistent data that should be preserved between application executions.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Transient data&lt;/b&gt; –Data that describes the state of a single instance of an application. Transient data is stored in the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.phoneapplicationservice.state(v=VS.92).aspx"&gt;State&lt;/a&gt; dictionary provided by the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.phoneapplicationservice(v=VS.92).aspx"&gt;PhoneApplicationService&lt;/a&gt; class. A tombstoned application restores its transient state when it is activated. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We will address the persistent data and working with isolated storage in a future post. For now, let’s focus on managing the transient data and using the State dictionary. &lt;/p&gt;  &lt;p&gt;One of the new classes in the SDK is &lt;b&gt;PhoneApplicationService. &lt;/b&gt;The PhoneApplicationService class provides access to various conditions of the application’s lifetime. This includes management of the application’s idle behavior and management of the application’s state when it becomes active or inactive. This class plays a major role in the tombstoning game, since it exposes the Launching, Deactivate, Activated, and Closing events that have the corresponding methods (which you already saw) in the App.xaml.cs file. This class also includes a read-only &lt;b&gt;State &lt;/b&gt;property of type &lt;b&gt;IDictionary&amp;lt;string, object&amp;gt;&lt;/b&gt;. The importance of this dictionary is that it is &lt;b&gt;persisted&lt;/b&gt; on your application’s behalf by the Windows Phone operating system when your application gets tombstoned. When the application reactivates, the objects that placed in the dictionary are returned. You don’t need to save these transient objects to disk as long as you expect your application to return from the tombstoned state. Therefore, if you intend to use the State dictionary, make sure you save only transient data in it– information that you don’t mind losing and that is local to the current application instance. In our example, we’ll save the phone number and SMS text message. &lt;/p&gt;  &lt;p&gt;Please note that the objects you store in this dictionary have to be &lt;b&gt;serializable&lt;/b&gt;, or else you will get an exception during the deactivating event about the inability of the operating system to sterilize or desterilize your object.&lt;/p&gt;  &lt;p&gt;MSDN &lt;a href="http://msdn.microsoft.com/en-us/library/ff817009(v=VS.92).aspx"&gt;best practices&lt;/a&gt; recommend that you store transient page data in the State dictionary during the &lt;b&gt;OnNavigatedFrom&lt;/b&gt; event, and load data during the &lt;b&gt;NavigatedTo&lt;/b&gt; event. &lt;/p&gt;  &lt;p&gt;I’ve update the application to save the phone number and the SMS message in the Store dictionary, and load it each time the page get navigated to. If a “completely” new instance (indicated by the “Lunching” event) of the application is started, the State dictionary is empty.&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;   Util.Trace(&lt;span style="color: #006080"&gt;&amp;quot;***** in DetailsPage: OnNavigatedFrom ( &amp;quot;&lt;/span&gt; + DateTime.Now.Ticks + &lt;span style="color: #006080"&gt;&amp;quot; *****)&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;   &lt;span style="color: #008000"&gt;//try to locate the phone number from previous save and simply override it&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt; == PhoneApplicationService.Current.State.ContainsKey(PhoneNumberKey))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;   {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//clear prev value&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;     PhoneApplicationService.Current.State.Remove(PhoneNumberKey);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;   }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;   PhoneApplicationService.Current.State.Add(PhoneNumberKey, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.PhoneNumberTxt.Text);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;   &lt;span style="color: #008000"&gt;//try to locate the SMS Messagefrom previous save and simply override it&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt; == PhoneApplicationService.Current.State.ContainsKey(SmsMessageKey))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;   {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//clear prev value&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;     PhoneApplicationService.Current.State.Remove(SmsMessageKey);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;   }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;   PhoneApplicationService.Current.State.Add(SmsMessageKey, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.MessageTxt.Text);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Step 2&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;   Util.Trace(&lt;span style="color: #006080"&gt;&amp;quot;***** in DetailsPage: OnNavigatedFrom ( &amp;quot;&lt;/span&gt; + DateTime.Now.Ticks + &lt;span style="color: #006080"&gt;&amp;quot; *****)&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt;   &lt;span style="color: #008000"&gt;//try to locate the phone number from previous run&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt; == PhoneApplicationService.Current.State.ContainsKey(PhoneNumberKey))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt;   {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; s = PhoneApplicationService.Current.State[PhoneNumberKey] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(s))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt;       Util.Trace(&lt;span style="color: #006080"&gt;&amp;quot;***** in DetailsPage: OnNavigatedTo: Found phone number ( &amp;quot;&lt;/span&gt; + &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt;                                                     DateTime.Now.Ticks + &lt;span style="color: #006080"&gt;&amp;quot; *****)&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.PhoneNumberTxt.Text = s;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum37"&gt;  37:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum38"&gt;  38:&lt;/span&gt;   }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum39"&gt;  39:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum40"&gt;  40:&lt;/span&gt;   &lt;span style="color: #008000"&gt;// Step 2&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum41"&gt;  41:&lt;/span&gt;   &lt;span style="color: #008000"&gt;//try to locate the phone SMS MSG from previous run&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum42"&gt;  42:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt; == PhoneApplicationService.Current.State.ContainsKey(SmsMessageKey))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum43"&gt;  43:&lt;/span&gt;   {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum44"&gt;  44:&lt;/span&gt;     Util.Trace(&lt;span style="color: #006080"&gt;&amp;quot;***** in DetailsPage: OnNavigatedTo: Found Sms Msg ( &amp;quot;&lt;/span&gt; + DateTime.Now.Ticks + &lt;span style="color: #006080"&gt;&amp;quot; *****)&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum45"&gt;  45:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum46"&gt;  46:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; s = PhoneApplicationService.Current.State[SmsMessageKey] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum47"&gt;  47:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(s))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum48"&gt;  48:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum49"&gt;  49:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.MessageTxt.Text = s;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum50"&gt;  50:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum51"&gt;  51:&lt;/span&gt;   }&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum52"&gt;  52:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Note that with the following changes, the information in page 2 is stored between page navigation. That is when you press the Back button in page 2, the application navigates back to page 1. If you click the “Navigate to next page” from page 1, your application navigates to page 2. The OnNavigateTo (on page 2) event is raised, and with the above code the control will be loaded with data. This is important because if you take a closer look at the trace in the Output windows in Visual Studio you will find that the each time you navigate to page 2, its constructor is executed. This indicates that each time you press the Back button from page 2, that page is destroyed, and therefore each time you navigate back from page 1 to page 2, the page is recreated. To observe this behavior for yourself, simply navigate back and forth between the two pages, and note that the page 2 CTOR is called each time you navigate from page 1 to page 2. If you comment out the OnNavigatedFrom method in your application, and navigate between the two pages, you will see that the information on the second page is not saved.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1145.image_5F00_6057555C.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6740.image_5F00_thumb_5F00_669E2BEA.png" width="553" height="198" /&gt;&lt;/a&gt;Now tombstone the application to see for yourself that the phone number and SMS message are being stored, not just between page navigations, but also after leaving the application and returning to it. Simply navigate to page 2, enter a phone number and some text, and press the Windows button to tombstone the application. You should see the deactivated trace and then the application terminated. Press the Back button and don’t forget to press F5 in Visual Studio to restart the debugging session. Your application will return from its tombstoned state and you will see the launching event, and then the DetailsPage (page 2) constructor. Next you will see the OnNavigatedTo trace and, if everything works, you will see the &amp;quot;Found phone number&amp;quot; and &amp;quot;Found Sms Msg&amp;quot; lines in the trace (and in the emulator), as shown in the next image. 

  &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2260.image_5F00_6CE50278.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2185.image_5F00_thumb_5F00_7DE9305B.png" width="623" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All this is nice, and I hope it explains the way things work with tombstoning Windows Phone applications. But, now it is time to step up our game and show some cool things in action. &lt;/p&gt;

&lt;p&gt;First, I’ve added a helper Logger class that logs all the traces and displays them in the MainPage (first page) textbox. The goal of the Logger is to prove to you without a doubt that your application gets terminated and that the State dictionary really works. The logger will also allow you to run your application from the emulator, not in debug mode, and still get some information back through the traces shown in the log textbox. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Logger class&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The Logger class includes a very simple (and most probably not that thread-safe) implementation of a &lt;a href="http://en.wikipedia.org/wiki/Singleton_pattern"&gt;Singleton&lt;/a&gt;. The main reason this class is a singleton is to show that even a singleton class is removed from memory when your application is terminated, as well as the order of events and the loading of data between the different events. This class has a string member, which is the log, and a DateTime member that saves the creation time of the Logger object. With the Logger class you can add new lines to the log, and get the entire log. This is good for debugging, which is exactly what the Logger is for. Each time you use the Util Class to add a trace, you also add it to the Logger. &lt;/p&gt;

&lt;p&gt;Usually a singleton implementation doesn’t have a public constructor. However, you are going to save this class in the State dictionary, which means that the Logger class must be serializable and therefore must have a public default (empty) constructor. Otherwise you will get an exception when trying to deactivate or activate your application. &lt;/p&gt;

&lt;p&gt;To “view” the log, I’ve added the OnNavigatedTo method to the MainPage.xaml.cl and loaded text in the log to the &lt;b&gt;logTextBox&lt;/b&gt; control on the main page. Therefore each time you navigate to the main page of the application you will see the log file printed. Doing this enables you to view the trace in your application without the need to debug your application in VS (and thanks to &lt;a href="http://blogs.msdn.com/b/jaimer/"&gt;Jaime Rodriguez&lt;/a&gt; for the tip). Let’s try it.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;First you need to deploy you application to the emulator. You can do this by right clicking on your project in the Visual Studio Solution Explorer panel, or from the Build menu. Simply click Deploy.&lt;/li&gt;

  &lt;li&gt;In the emulator, navigate to the applications list by clicking on the white arrow on the top right corner of the phone.&lt;/li&gt;

  &lt;li&gt;You should see the applications list, which is rather short. From the applications list pick your application. If you are using the code from this post, the application name is LWP.AppLifeCycle&lt;/li&gt;

  &lt;li&gt;The application launches, and you see the trace in the MainPage textbox. You may want to change the phone setting (by clicking the wrench button) to set the zoom level of the emulator to 100%. The text in the log textbox is small to be able to show as much log history as possible without scrolling.&lt;/li&gt;

  &lt;li&gt;In the log textbox you should see the trace from creating the application and the constructor of the main page.&lt;/li&gt;

  &lt;li&gt;Click the Next Page button. &lt;/li&gt;

  &lt;li&gt;On the second page, enter a phone number or some text to the SMS textbox. &lt;/li&gt;

  &lt;li&gt;Then deactivate your application simply by clicking the Windows button. In the emulator, you should see the Start screen. &lt;/li&gt;

  &lt;li&gt;Click the Back button to return to your application. This will reactivate your application and restore your application to the last page you viewed, that is the second page, and, if all goes well, you should also see the information you entered in step 7. &lt;/li&gt;

  &lt;li&gt;On the second page, click the Back button to return to the first page. Take a look at the trace found in the log textbox. You should see something that looks the following image:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5287.image_5F00_6AC803AF.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0456.image_5F00_thumb_5F00_4249219B.png" width="432" height="768" /&gt;&lt;/a&gt;The interesting segment of this trace is the information between the dashed lines, and the following code snippet for which the Application Activated method is responsible.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt; == PhoneApplicationService.Current.State.ContainsKey(LoggerKey))&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     Logger logger = (PhoneApplicationService.Current.State[LoggerKey] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; Logger);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;long&lt;/span&gt; timeDef = Logger.Instance.CreationTime.Ticks - logger.CreationTime.Ticks;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;     Util.Trace(&lt;span style="color: #006080"&gt;&amp;quot;-------------------------------------\n--&amp;gt; Time difference between Loggers = &amp;quot;&lt;/span&gt; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;                 + timeDef&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;                 + &lt;span style="color: #006080"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt; + logger.GetLog() &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;                 + &lt;span style="color: #006080"&gt;&amp;quot;\n-------------------------------------&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In this code, you can see that we are looking for the Logger object in the State dictionary. The object was put into the State dictionary in the deactivated event. Assuming the logger object is found, we are creating a temporary object called logger (note this is not the actual logger object that we are using in the current application). Next we compare the creation time of the Logger from the State to the singleton Logger instance of the “new” application that we just activated. As you can see in the trace, there is a difference in time; the logger from the State dictionary that we saved when we last deactivated the application is older than the new logger. From the code you can see that we can’t really initiate the older logger; its creation time and log are restored and printed to the textbox. So everything between the dashed lines is actually the previous run of the application up to the deactivated event.&lt;/p&gt;

&lt;p&gt;The first line after the dashed line is shows the constructor of the second page, as expected, and it shows the “new” application that got reactivated and returned to the second page, from which we had deactivated the application. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;To summarize&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Now you have seen all four events in action: Launching, Deactivated, Activated, and Closing. I hope you understand that when your application is not running, it is terminated, and any data you didn’t saved is gone. Then when you are return to the application, with either an Activated event or a Launching event, you get a NEW instance of the application (our little singleton experience proved that). &lt;/p&gt;

&lt;p&gt;The State dictionary can save transient data between Deactivated and Activated events and will turn out to be a very useful tool in the next post where we’ll talk about choosers and launchers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=546324" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Yochay+Kiriaty/default.aspx">Yochay Kiriaty</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Developer+Tools/default.aspx">Windows Phone Developer Tools</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Tombstone/default.aspx">Tombstone</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Application+Lifecycle+Edit+tags/default.aspx">Application Lifecycle Edit tags</category></item><item><title>Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and Choosers, and Few More Things That Are on the Way – Part 2</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/16/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-2.aspx</link><pubDate>Fri, 16 Jul 2010 19:36:47 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:545982</guid><dc:creator>Yochay</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=545982</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/16/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-2.aspx#comments</comments><description>&lt;p&gt;In the &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx"&gt;previous post&lt;/a&gt;, you learned about the basics of the Windows Phone execution model. You saw three out of four events. We covered Application Launching, Application Closing, and Application Deactivated. Now it is time to cover the last event, Application &lt;b&gt;Activated&lt;/b&gt;. If you want to follow the code shown in this post , you can &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-CodeSamples-LWP_5F00_AppLifecycle/6406.LWP.AppLifeCylce.zip"&gt;download&lt;/a&gt; the code for the code sample.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;How to resume the debugging session of a tombstoned application – Handling the Activated Event?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Remember my promise about the Back button functionality? I'm finally going to come through. However, please &lt;b&gt;read through all 7 of these steps and the following Note&lt;/b&gt; before actually trying this yourself. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;From Visual Studio, start a new debugging session of the simple application we created in the last post. &lt;/li&gt;    &lt;li&gt;Press the Next button to navigate to the application’s second page. &lt;/li&gt;    &lt;li&gt;Press the Windows button.&lt;/li&gt;    &lt;li&gt;The emulator returns to WP Start screen, and in the Visual Studio output window, you should see the following image: &lt;/li&gt;    &lt;/ol&gt;&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8867.image_5F00_5B1802E3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3515.image_5F00_thumb_5F00_3A90C331.png" width="623" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;As you can see, we started a new instance, and therefore the application launching event was raised. Next the application's first page was called (by default) and therefore you see the MainPage trace. When you pressed the Next button, your application navigated to the second page, as you can see from the DetailsPage trace. And finally, when you pressed the Windows key your application was deactivated, again as shown by the trace. The emulator shows the Start screen &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Note: Do not close the emulator or make any code change&lt;/strong&gt;, or else you will start a new instance of your “updated” application, and we don’t want that to happen&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;In the WP emulator, you should see the Start screen, press the Back button (once). &lt;/li&gt;    &lt;li&gt;At this point your emulator screen will go black as if it is waiting for something to happen. Guess what? It is. This is the designed behavior for the current Beta version tools. The screen goes black and the application does &lt;b&gt;not restart&lt;/b&gt; as it waits for you to re-attach the debugger so you can continue debugging the application. &lt;/li&gt;    &lt;li&gt;To &lt;b&gt;re-attach&lt;/b&gt; the debugger and &lt;b&gt;continue&lt;/b&gt; the debug session, switch to Visual Studio and press F5 (or use any other method to start your debugger). The debugger attaches to the correct instance, the emulator continues to activate the application, and the &lt;b&gt;Activated&lt;/b&gt; event is raised, as you can see in the following image of the Output window of Visual Studio: &lt;/li&gt;   &lt;/ul&gt;&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6354.image_5F00_6C1C30C6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 37px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2860.image_5F00_thumb_5F00_1DA79E5C.png" width="624" height="87" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: There is a &lt;b&gt;time limit&lt;/b&gt; for this process to be successful, as the emulator terminates the application if it takes longer than &lt;b&gt;10 seconds to reload&lt;/b&gt;. Therefore you need to be quick. Also, you should NOT place any breaking points in the Activated event, as Visual Studio will break at the right place, but if you spend too long debugging your code, the emulator thinks that there is something wrong with your application and will terminate it (even if Visual Studio debug session is still active). According to the guidance, your application UI should load within 10 seconds, and since the Activated event is handled before your main page constructor, no UI is shown if you debug and step into the Activated event.&lt;/p&gt;  &lt;p&gt;Now that you know what to expect, go ahead and reactivate your application to bring it back to life from its tombstone state by following the steps described above. You will notice that Visual Studio starts a “new session” (because the first instance of the application was terminated). But this time the first trace line is Activated and not Launching, after the Activated event, the next line of debug output shows the &lt;i&gt;DetailsPage CTOR&lt;/i&gt; and not the application default first page, MainPage. And if you look at the emulator you will see that your application returned to the correct page, which is the last page you viewed in your application (the second page) before pressing the Windows button.&lt;/p&gt;  &lt;p&gt;So there you go, you just experienced firsthand how your application gets tombstoned and then is resurrected. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note &lt;/b&gt;that when your application returns from its tombstone state, it is a new instance of your application, and even so, you will not see the&amp;#160; &lt;strong&gt;launching &lt;/strong&gt;event, and therefore you don’t see the Launching trace in the Output window. The Launching and Activated events are &lt;b&gt;mutually exclusive.&lt;/b&gt; You should &lt;b&gt;never&lt;/b&gt; see both events in the same run of your application’s instance.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A few important things to remember&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Launching, Deactivated, Activated, and Closing events are all application level events. They will always get called (unless you remove them from the code – which you MUST NOT DO). If there is any generic workload that your application needs to handle, like loading data from disk or saving data to disk, these events are the right tools for that work (we’ll get to that later). &lt;/p&gt;  &lt;p&gt;As you just saw, the application can return from its tombstone state to any one your application’s pages, and therefore you can’t guarantee that one page will load before the other. &lt;/p&gt;  &lt;p&gt;The most important thing to remember about tombstoning is that the user may &lt;b&gt;opt&lt;/b&gt; &lt;b&gt;NOT to return&lt;/b&gt; to your application, and therefore &lt;b&gt;your application may not be reactivated&lt;/b&gt;. The user could launch the application again from the Start page (instead of via the Back button), thereby &lt;b&gt;invoking a new instance&lt;/b&gt; of the application – Launching event Vs. Activated. Or, the user could launch several other applications, knocking the tombstoned application off of the back of the application stack where it cannot be reached with the Back button. In such a cases, you need to save any data that you wish to restore at a later time. It is completely up to you and your responsibility as a developer to handle the saving and retrieving of data in your application. And that is the subject of our next post. But for now review the following diagram, from the &lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx"&gt;Windows Phone documentation&lt;/a&gt;; it should help you understand the relationship between the different events.&lt;/p&gt; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6201.image_5F00_7D205EA9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7776.image_5F00_thumb_5F00_4A505835.png" width="343" height="762" /&gt;&lt;/a&gt;   &lt;p&gt;By now, you should understand the meaning and functionality of Windows Phone application lifecycle events – Launching, Deactivated, Closing, and Activated. But that is only the beginning as there are additional topics to cover in order to fully understand the execution model and how make the most of it in your application. In the next post, you will learn how to save your page state into a temporary store and when and where in the application to save and load such data.&lt;/p&gt;  &lt;p&gt;You can &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-CodeSamples-LWP_5F00_AppLifecycle/6406.LWP.AppLifeCylce.zip"&gt;download&lt;/a&gt; the code for the sample shown in this blog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/learn/courses/WP7TrainingKit/"&gt;Windows Phone 7 Training Kit for Developers&lt;/a&gt; includes a full lab dedicated to the Windows Phone &lt;a href="http://channel9.msdn.com/learn/courses/WP7TrainingKit/WP7Silverlight/ApplicationLifetimeWP7Lab/"&gt;Application Lifecycle&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;MSDN documentation includes a topic - &lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx"&gt;Execution Model Overview for Windows Phone&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Blog edited by Barbara E. Alban&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=545982" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Yochay+Kiriaty/default.aspx">Yochay Kiriaty</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Developer+Tools/default.aspx">Windows Phone Developer Tools</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Tombstone/default.aspx">Tombstone</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Application+Lifecycle/default.aspx">Application Lifecycle</category></item><item><title>Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and Choosers, and Few More Things That Are on the Way – Part 1</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx</link><pubDate>Thu, 15 Jul 2010 20:30:32 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:545755</guid><dc:creator>Yochay</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=545755</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx#comments</comments><description>&lt;p&gt;With such a long and promising title, this series of posts better be a good one – you’ll be the judge of it. However, the real reason for this long title is rather simple. All these “big” words simply represent different aspects of the execution model. There are a few things that you need to know if you want to maximize your user’s experience. This post explains the Windows Phone (WP) application execution model by taking you step-by-step through the different aspects of launching, running, and closing a Silverlight application. Note that for XNA games the terms and ideas remain the same with some minor implementation differences. In following posts we’ll cover deactivation, reactivation, and how launchers and choosers work with tombstoning. &lt;/p&gt;  &lt;p&gt;With the &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx"&gt;latest Beta&lt;/a&gt; release of the Windows Phone developer tools, applications running on WP employ an updated execution model. Now, when your application is removed from the phone foreground (a different application occupies the phone foreground like incoming phone call, or the lock screen being activated), it is actually being terminated (more on this later). In earlier version of the WP tools, you could get into all kinds of strange scenarios if you went from one application to another. That is because in the previous version of the tools, the WP operating system didn’t terminate your application, it “parked” it. However that led to some issues regarding launching a new instance of your application vs. navigating back to the instance on the back stack. Adding to the confusion, the events and API were less than perfect. I guess that is one of the reasons we have technical previews—to test and fix such “issues.”&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A Few Ground Rules&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Just to make sure we are all on the same page, by now you probably already know that the WP operating system doesn’t allow any 3rd party applications to run in the background. To be more specific, there can be only one application running in the foreground at any given time, and if your application is not running in the foreground, it means that your application is NOT RUNNING. The main reasons for not allowing 3rd party applications to run in the background are to preserve battery life (see &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/05/03/understanding-microsoft-push-notifications-for-windows-phones.aspx"&gt;Push Notification post&lt;/a&gt;) and to ensure a responsive and consistent user experience. &lt;/p&gt;  &lt;p&gt;All WP devices feature a hardware Back button. This button allows the user to navigate back in a given application and even between applications. This is a rather cool feature, mainly because unlike other phones, you can navigate from your application to the browser or to another application, and then press Back to seamlessly return to your application. This yields a much more consistent user experience across different applications, whether they are 3rd party applications or part of the phone's built-in application suite. This also implies that WP operating system is maintaining a journal of you navigation actions to support the Back button functionality. This is also known as the &lt;strong&gt;back-stack.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Basics – Launching, Running, and Closing Applications&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;It is time to jump into the Windows Phone execution model, and the best way to do this is to start looking at some code. Simply start a new Windows Phone application and look at the auto-generated code of a new WP Silverlight application template, and you will find four new methods in the &lt;b&gt;App.xaml.cs file&lt;/b&gt; that are directly related to the execution model: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Application_&lt;b&gt;Launching&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;Application_&lt;b&gt;Activated&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;Application_&lt;b&gt;Deactivated&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;Application_&lt;b&gt;Closing&lt;/b&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As a side note, all these events (the functions are the event handlers) are members of the &lt;b&gt;PhoneApplicationService&lt;/b&gt; class in the &lt;b&gt;Microsoft.Phone.Shell&lt;/b&gt; namespace.&lt;/p&gt;  &lt;p&gt;I think the names of these methods are rather self-explanatory, but just to be on the safe side, let’s review them. We’ll address the Activated and Deactivated methods later; for now, let’s focus on the simple events: Launching and Closing. I’ve added a single line of code to each method:&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;// Step 1 - Util is helper class for logging&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; font-size: 12px"&gt;Util.Trace(&amp;quot;&lt;span style="color: #8b0000"&gt;***** in MainPage CTOR\t\t ( &lt;/span&gt;&amp;quot; + DateTime.Now.Ticks + &amp;quot;&lt;span style="color: #8b0000"&gt; *****)&lt;/span&gt;&amp;quot;);&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Util&lt;/strong&gt; is a simple helper class that we’ll use to help us with debugging. The text in each method changes according to the event but you get the idea. I log the time of each event in order to prove a point later when we talk about Activated and Deactivated events. &lt;/p&gt;

&lt;p&gt;Running the application in its current state yields the expected result. Upon launching your application the “Launching” method is called. As expected, after that event, your application runs. Press the Back button (not the Windows button) and your application terminates and the “Closing” event is raised, as you can see in the following image (copy of the output window from Visual Studio).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3247.image_5F00_68714C1D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5340.image_5F00_thumb_5F00_7909470B.png" width="624" height="114" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we said, by pressing the hardware Back button, the navigation model allows the user to “step back,” or navigate backwards through the application pages, and even across applications. However once you reach to the application’s first page (the first page, and &lt;b&gt;its first&lt;/b&gt; instance) pressing the Back button raises the &lt;b&gt;Closing&lt;/b&gt; event and terminates your application. You can see that from the above image, where it clearly states that the “program” exited. If you are following this post while coding in Visual Studio you will also note that the emulator exits your application and returns to the Start window.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Understanding Activated and Deactivated Events and Tombstone&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;So far so good, I mean there is nothing new here. However, let’s try the following trick. From Visual Studio, start your application in debug mode (so we can see the traces). As expected, your application starts and you should see the Application Launching trace in the log. Now, instead of pressing the Back button (which if you do, will terminate your application), press the Windows button (the middle button). &lt;/p&gt;

&lt;p&gt;You should notice the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The emulator returned to the Start screen and your application doesn’t occupy the phone’s foreground, which means it is no longer running!&lt;/li&gt;

  &lt;li&gt;The debugging session in Visual Studio was terminated. This means that Visual Studio is not debugging your application, which makes sense since the application is no longer running. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: At the end, your application gets &lt;b&gt;terminated&lt;/b&gt;. That is super easy to see in the Visual Studio Output window, as the last line in the Output windows states, “&lt;i&gt;The program '[220921918] taskhost.exe: Managed' &lt;b&gt;has exited&lt;/b&gt; with code 0 (0x0).&lt;/i&gt;” No worries, this is by design. However, unlike our previous example, this time the event that followed the Launching event is “&lt;b&gt;Deactivated,&lt;/b&gt;” and NOT Closing. But in both cases your application gets terminated (at the end). So what is going here? What is the difference between Closing and Deactivated and more important, why?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7840.image_5F00_657BE76A.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7774.image_5F00_thumb_5F00_3649FBD3.png" width="624" height="104" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Application Closing&lt;/b&gt; is simply the outcome of the user pressing the hardware Back button enough times to navigate backwards through the pages of your application, past the application’s first page. Currently, this is the ONLY way for a user to exit your application. Once your application is closed, its process is terminated, and the operating system removes any trace of that application from its memory (RAM).&lt;/li&gt;

  &lt;li&gt;&lt;b&gt;Application Deactivated &lt;/b&gt;occurs when a different application takes control of the foreground - for example, an incoming phone call, launching a chooser, or the user pressing the Windows button. In both cases, your application will be deactivated (not closed). Before we step into the subtleties of the Deactivated event, let’s make sure we all understand that upon Deactivation, your application &lt;b&gt;gets terminated &lt;/b&gt;(at the end).&lt;b&gt; &lt;/b&gt;It's that simple; your code can’t run in the background, therefore your application &lt;b&gt;gets terminated&lt;/b&gt;. However, unlike an application that is closed, a deactivated application gets &lt;b&gt;tombstoned&lt;/b&gt;. Don’t get confused, a tombstoned application’s process still gets &lt;b&gt;terminated&lt;/b&gt;. But unlike a closed application, where the WP operating system removes any trace of the application, when an application is deactivated, the WP operating system stores a record (a tombstone) of the application's state. Basically, the WP operating system keeps a tombstone of the application that becomes part of the phone’s application back-stack, which is a journal that enables the use of the hardware Back button to enhance navigation functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are several ways in which applications can become tombstoned. An application will be tombstoned and deactivated if:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The user presses the Windows button (as you just did)&lt;/li&gt;

  &lt;li&gt;The device timeout causes the lock screen to be engaged (again, a different application takes control of the foreground) &lt;/li&gt;

  &lt;li&gt;The user invokes a Launcher or a Chooser – which we will cover later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In any of these cases, the running application will be deactivated, the Deactivated event is raised, and your application gets terminated shortly afterwards. &lt;/p&gt;

&lt;p&gt;At this point in the application life cycle (while your application is tombstoned), a few things can happen. The user might return to a tombstoned application. This can happen if the user completes the chooser or launcher activity and returns to the application, or if the user presses the Back button enough times to return to the tombstoned application. Regardless of how users return to the tombstone application, the application will be reactivated (raising the Activated event) and magically show the last page viewed by the user before the deactivation. &lt;/p&gt;

&lt;p&gt;You don’t believe me, let’s try it together. I’ve added a second page to the basic WP Silverlight application, and added a trace to both constructor pages. Next, I added a button to the first page that navigates to the second page. &lt;/p&gt;

&lt;p&gt;In Visual Studio, start debugging your application and click the button to navigate to the second page. From the second page, press the &lt;b&gt;Windows&lt;/b&gt; button. As expected, your application is deactivated and then terminated, as you can see from the following screen capture of the Visual Studio Output window.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3414.image_5F00_27331CF9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4442.image_5F00_thumb_5F00_621A4FC2.png" width="623" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note the sequence of the trace (and the corresponding time-code). First your application launches, then the main page constructor is called, and after pressing the button on page one, the application navigates to the second page (DetailsPage), after which you press the Windows button raising the Deactivated event, which indicates that your application is tombstoned. &lt;/p&gt;

&lt;p&gt;In the next post you’ll learn about returning to a tombstoned application and managing your state between tombstoning. &lt;/p&gt;

&lt;p&gt;You can &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-CodeSamples-LWP_5F00_AppLifecycle/6406.LWP.AppLifeCylce.zip" target="_blank"&gt;download&lt;/a&gt; the code for the code samples.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://channel9.msdn.com/learn/courses/WP7TrainingKit/"&gt;Windows Phone 7 Training Kit for Developers&lt;/a&gt; includes a full lab dedicated to the Windows Phone &lt;a href="http://channel9.msdn.com/learn/courses/WP7TrainingKit/WP7Silverlight/ApplicationLifetimeWP7Lab/"&gt;Application Lifecycle&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;MSDN documentation includes a topic - &lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx" target="_blank"&gt;Execution Model Overview for Windows Phone&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blog edited by Barbara E. Alban&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=545755" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Yochay+Kiriaty/default.aspx">Yochay Kiriaty</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Developer+Tools/default.aspx">Windows Phone Developer Tools</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Tombstone/default.aspx">Tombstone</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Application+Lifecycl/default.aspx">Application Lifecycl</category></item><item><title>Windows Phone Developer Training Kit – Beta Refresh</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/13/windows-phone-developer-training-kit-beta-refresh.aspx</link><pubDate>Wed, 14 Jul 2010 00:33:53 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:544703</guid><dc:creator>Yochay</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=544703</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/13/windows-phone-developer-training-kit-beta-refresh.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://download.microsoft.com/download/8/2/2/822BD724-2110-40F9-A32E-8CB9BCFD7426/WP7TrainingKitForDevelopers_Beta.Setup.exe"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="OfflineKit[6]" border="0" alt="OfflineKit[6]" align="right" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3051.OfflineKit6_5F00_369A7331.png" width="240" height="195" /&gt;&lt;/a&gt;&lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx" target="_blank"&gt;Beta is here&lt;/a&gt;! This means we are getting closer to release, which means it is time you start building your Windows Phone applications ASAP. Just in case you are asking, here is a great resource to help you get started building great Windows Phone applications. &lt;/p&gt;  &lt;p&gt;As part of our efforts to help developers jumpstart their development of Windows Phone applications, we released a refresh of the Windows Phone Training to meet the changes in the Windows Phone Beta tools release. You can &lt;a href="http://go.microsoft.com/?linkid=9723028"&gt;download a local copy of the training kit&lt;/a&gt;, or you can go to the &lt;a href="http://r.ch9.ms/WP7TKDevs"&gt;online version on Channel 9&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;More information about the new tools can be found &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx"&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This release of the WP training kit includes all the labs from the previous release (updated to the Beta tools) and all the videos from the previous release. In addition we added two new labs:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Using Windows Phone Launcher and Choosers In Your Applications&lt;/li&gt;    &lt;li&gt;Understanding the Windows Phone Application Lifecycle (handling Tombstone)&lt;/li&gt; &lt;/ul&gt; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4137.image_5F00_09756096.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" align="right" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8875.image_5F00_thumb_5F00_53FC9E70.png" width="174" height="200" /&gt;&lt;/a&gt;   &lt;p&gt;A new functionality in this Beta release tool is the exposure of APIs for using Windows Choosers and Launchers. The launchers and choosers framework enables Windows Phone applications to provide a set of common tasks for users, such as placing phone calls, sending email, and taking pictures. The “&lt;b&gt;Using Windows Phone Launcher and Choosers In Your Applications”&lt;/b&gt; lab covers some of these new launchers and choosers. The emulator doesn’t provide the full Windows Phone user experience, and therefore we don’t cover all the available choosers and launchers in the API. But there is more than enough for you to learn about this topic.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Understanding the Windows Phone Application Lifecycle (handling Tombstone)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;As you probably already know, Windows Phone allows only one application to run at any given time in the foreground, and no 3rd party applications are allowed to run in the background. Therefore when a user navigates away from your application, either to a chooser like picture chooser, or to a launcher like phone call, Windows Phone operating system terminates your application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx" target="_blank"&gt;Tombstoning&lt;/a&gt; is the procedure in which the operating system terminates an application’s process when the user navigates away from the application. The operating system maintains state information about the application. If the user navigates back to the application, the operating system restarts the application process and passes the state data back to the application. This lab explain in great detail what tombstoning is, how it works, and what you should be handling in your application&lt;/p&gt;  &lt;p&gt;Another area of improvement in the API is &lt;strong&gt;Push Notification Services&lt;/strong&gt;. We’ve upgraded the lab to work with the updated Beta API and while doing so gave it a nice facelift. This lab features an end-to-end scenario for a simple weather application that registers to receive Push Notifications as well as a WPF client application that mimics the 3rd party backend server.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7230.image_5F00_33755EBE.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6505.image_5F00_thumb_5F00_6E5C9187.png" width="640" height="291" /&gt;&lt;/a&gt;     &lt;br /&gt;On top of that, the training kit includes four additional labs (all refreshed and up-to-date with the latest Beta tools):     &lt;br /&gt;&lt;b&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8030.image_5F00_1F0F9933.png"&gt;&lt;img style="border-right-width: 0px; margin: 10px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" align="right" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1033.image_5F00_thumb_5F00_386776A0.png" width="146" height="237" /&gt;&lt;/a&gt;Hello Phone&lt;/b&gt; - This lab aims to be the classic “Hello World” application, introducing you to the tools and procedures required to build and test Silverlight for Windows Phone applications. During the lab, you will see how to use Microsoft Visual Studio 2010 Express for Windows Phones, Expression Blend to build and design your Windows Phone applications, and how to deploy and debug your Windows Phone application on the Windows Phone Emulator&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Building Your First Windows Phone Application – &lt;/b&gt;This lab introduces you to the basic building blocks of any Windows Phone Silverlight application. During the course of this lab you will create a simple puzzle game. The lab takes you through the different stages of starting a new project, adding controls and code behind, and testing and debugging. Unlike the Hello World lab, this lab focuses more on phone-related topics like navigation, using pages, frame and navigation services, multi-touch, and isolated storage.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2110.image_5F00_1E934071.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" align="left" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7824.image_5F00_thumb_5F00_2BF95377.png" width="137" height="223" /&gt;&lt;/a&gt;&lt;b&gt;Windows Phone Navigation and Controls&lt;/b&gt; – This lab introduces you to the Windows Phone layout system, the phone’s chrome, and few new controls. The lab explains the basics of navigating between different screens (pages) in a Windows Phone Silverlight application. During the lab you will build a navigation application that switches between various screens, with each screen displaying different phone functionality, such as playing an audio or video file.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Game Development with XNA Framework for&lt;/b&gt; &lt;b&gt;Windows Phone&lt;/b&gt; – This lab introduces you to XNA game development on Windows Phones, as well as to the basics of XNA game development. During the lab you will build a simple XNA game application that introduces key concepts in XNA game development and learn how to use Microsoft Visual 2010 Express for Windows Phone to build and design your XNA games for Windows Phones&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This post is an update to an earlier post - &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/05/05/windows-phone-developer-training-kit-april-refresh.aspx"&gt;Windows Phone Developer Training Kit April Refresh&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=544703" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Training+Kit/default.aspx">Training Kit</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Yochay+Kiriaty/default.aspx">Yochay Kiriaty</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Developer+Tools+Beta/default.aspx">Windows Phone Developer Tools Beta</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Push+Notification/default.aspx">Push Notification</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Launchers/default.aspx">Launchers</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Choosers/default.aspx">Choosers</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Tombstone/default.aspx">Tombstone</category></item><item><title>Intuit Partner Platform Delivers Windows Phone 7 SDK</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/13/intuit-partner-platform-delivers-windows-phone-7-sdk.aspx</link><pubDate>Tue, 13 Jul 2010 11:57:44 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:544203</guid><dc:creator>Walid Abu-Hadba</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=544203</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/13/intuit-partner-platform-delivers-windows-phone-7-sdk.aspx#comments</comments><description>&lt;p&gt;I am pleased to announce that Intuit is developing an SDK for Windows Phone 7, making it easier for developers to write Windows Phone 7 applications that interface with the Intuit Partner Platform's cloud services for businesses, including QuickBooks. This enables business professionals to access key data from a variety of Windows Phone 7 devices and easily view their cloud data hosted in Windows Azure. &lt;/p&gt;  &lt;p&gt;Our work with Intuit further demonstrates the industry momentum for Windows Phone 7. Today’s announcement also extends the relationship we began with Intuit in January, when &lt;a href="http://www.microsoft.com/presspass/press/2010/jan10/1-20IntuitDevelopersPR.mspx?rss_fdn=Press%20Releases"&gt;we announced&lt;/a&gt; that we were joining forces to deliver Web applications to millions of small businesses through the Intuit App Center via integration between the two companies cloud services platforms:&amp;#160; the &lt;a href="http://ipp.developer.intuit.com/"&gt;Intuit Partner Platform&lt;/a&gt; and &lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure platform&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Both Microsoft and Intuit Partner Platform remain committed to providing developers from both companies additional opportunities for revenue and by enabling them to develop for the cloud and for Windows Phone 7 devices, while also reaching Intuit’s vast network of businesses, we are certainly meeting this goal. I look forward to this continued relationship with Intuit and am excited about future opportunities. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=544203" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/WPC10/default.aspx">WPC10</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Wordwide+Partner+Conference/default.aspx">Wordwide Partner Conference</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Partner/default.aspx">Partner</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Azure/default.aspx">Azure</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Intuit/default.aspx">Intuit</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/SDK/default.aspx">SDK</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Intuit+Partner+Platforom/default.aspx">Intuit Partner Platforom</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Cloud/default.aspx">Cloud</category></item><item><title>Windows Phone Developer Tools Beta Released</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx</link><pubDate>Mon, 12 Jul 2010 18:28:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:544172</guid><dc:creator>Brandon Watson</dc:creator><slash:comments>21</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=544172</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/12/windows-phone-developer-tools-beta-released.aspx#comments</comments><description>&lt;p&gt;First things first: go get the &lt;a href="http://developer.windowsphone.com/"&gt;Windows Phone Developer Tools Beta&lt;/a&gt;. It has arrived!&lt;/p&gt;  &lt;p&gt;The term “Beta” is understood to mean that things are close to being finished.&amp;#160; Well, that’s what we mean anyway. This Beta release represents the near final version of the tools for building applications and games for Windows Phone 7.&amp;#160; &lt;/p&gt;  &lt;p&gt;Since the initial CTP release of the tools just this March, the Windows Phone Developer Tool CTP has been widely embraced by the community, and they have shown what’s possible on our new development platform.&lt;/p&gt;  &lt;p&gt;It’s time to get serious about building the actual apps and games for Windows Phone 7 that consumers will be looking for starting this holiday season.&lt;/p&gt;  &lt;p&gt;One of the things I really want to do is just take a step back and congratulate the entire Windows Phone 7 team.&amp;#160; They have done an amazing job of delivering code month after month on our path to releasing later this year.&amp;#160; Check out this timeline:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Feb 2010&lt;/b&gt; – Windows Phone 7 was unveiled at Mobile World Congress in Barcelona&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Mar 2010&lt;/b&gt; – The application platform was unveiled at MIX 10 in Las Vegas.&amp;#160; With that, we had the first CTP of the Windows Phone Developer Tools.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Apr 2010&lt;/b&gt; – The tools received an updated, and the CTP Refresh shipped.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Jun 2010&lt;/b&gt; – Windows Phone Marketplace details unveiled at TechEd 2010.&amp;#160; Get the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=183220"&gt;Windows Phone 7 Application Certification Requirements&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;July 2010&lt;/b&gt; – Beta release of Windows Phone Developer Tools, and the preview developer phones start shipping to ISVs&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Whew! The Windows Phone engineering team has been crushing it. &lt;s&gt;&lt;/s&gt;&lt;/p&gt;  &lt;p&gt;Here’s a link to the &lt;a href="http://msdn.microsoft.com/en-us/library/ff637516(v=VS.92).aspx"&gt;release notes for the beta&lt;/a&gt;, but I wanted to talk about a few top level items:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Microsoft Expression Blend for Windows Phone&lt;/b&gt; – Blend is now integrated completely into the Windows Phone Developer Tools Beta.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Developer Registration Utility&lt;/b&gt; – Now you can unlock you Windows Phone 7 device for development purposes.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;XAP Deployment Tool&lt;/b&gt; – if you want to deploy XAP files directly to an unlocked device, now you can.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;The Windows Phone 7 API &lt;/b&gt;– we’re getting close to completion.&amp;#160; Many namespaces that were previously distributed over several different DLLs have now been consolidated into one.&amp;#160; In addition, there have been realignments and changes in several other namespaces as well.&amp;#160; Push Notifications, Accelerometer and App Bar APIs have all been updated.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Additional Controls&lt;/b&gt; – There are some additional controls coming in the next few weeks (i.e. Panorama and Pivot) which didn’t make the beta release.&amp;#160; They are coming soon.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Control Templates&lt;/b&gt; – Silverlight for Windows Phone control templates have been updated to match evolutions in the overall OS.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Get Trained – Windows Phone 7 Jump Start&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Windows Phone 7 JumpStart is a FREE virtual live class for developers interested in developing applications and games for Windows Phone 7.&amp;#160; We’re providing this in partnership with our MS Learning team. The course is organized into four virtual instructor-led sessions that are of 3-hour duration.&amp;#160; They will be presented by forthcoming MS Press authors and MVP's, Andy Wigley and Rob Miles. It will provide developers a jump start for developing Windows Phone 7 applications.&amp;#160; The Labs will be completed offline with office hours access to the instructors.&lt;/p&gt;  &lt;p&gt;The dates for these course sessions are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;July 20&lt;/b&gt; – 8am: Session One: Getting Started with Microsoft Windows Phone and Silverlight&lt;/li&gt;    &lt;li&gt;&lt;b&gt;July 20&lt;/b&gt; – 1pm: Session Two: Programming Game Applications with XNA&lt;/li&gt;    &lt;li&gt;&lt;b&gt;July 22&lt;/b&gt; – 8am: Session Three:&amp;#160; Programming Applications with Silverlight&lt;/li&gt;    &lt;li&gt;&lt;b&gt;July 22&lt;/b&gt; – 1pm: Session Four:&amp;#160; Review and Wrap Up&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032455932&amp;amp;Culture=en-US"&gt;Go register for the course now&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Devices for Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;We made a promise last month that we would be getting pre-production preview devices to developers this month. We are keeping that promise. In fact, the very first preview devices were &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/08/meet-the-windows-phone-7-rockstar-team-beastware.aspx"&gt;awarded&lt;/a&gt; last week to a pair of pretty amazing high-school students who won the Windows Phone “Rockstar” contest as part of the Imagine Cup. When we saw what they had done, we knew we had to get them preview phones.&lt;/p&gt;  &lt;p&gt;Starting next Monday (July 19th), we start shipping the devices more broadly. Sadly, we will not be able to meet all of that demand.&amp;#160; We are planning to set up deploy and test labs in major cities to make it a little easier for everyone who wants to have access to a preview phone to have it. More on that soon.&lt;/p&gt;  &lt;p&gt;Lastly, to get your name in the queue, assuming you haven’t already sent in an email, you can now send an email to &lt;a href="mailto:wp7req@microsoft.com"&gt;wp7req@microsoft.com&lt;/a&gt;.&amp;#160; A field representative will get back to you as soon as possible. Again, these are preview phones, so they are limited in quantity. When you send email, please include the following information:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Your name&lt;/li&gt;    &lt;li&gt;Company name, if applicable&lt;/li&gt;    &lt;li&gt;What city/state/country you are located in&lt;/li&gt;    &lt;li&gt;App(s) you plan on developing (category and brief description)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Twitter&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;At some point, we had to mention Twitter, right? We strongly encourage developers establish a connection with their local field evangelist, since they will be the ones ultimately putting phones into the hands of developers, but they can also point you in the right direction for solving problems, get you connected to other partners, and generally help out. To make it easier to get to know your local evangelist, we’ve set up this list - &lt;b&gt;wp7dev/champs&lt;/b&gt; (&lt;a href="http://twitter.com/wp7dev/champs"&gt;http://twitter.com/wp7dev/champs&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;You can also follow other members of the team based on their area of coverage:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.twitter.com/ckindel"&gt;@ckindel&lt;/a&gt; – WP7 Dev Platform&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.twitter.com/ai"&gt;@ai&lt;/a&gt; – Mobile Social Media&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.twitter.com/brandonwatson"&gt;@brandonwatson&lt;/a&gt; – Marketplace &amp;amp; Platform&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.twitter.com/cschormann"&gt;@cschormann&lt;/a&gt; – Silverlight &amp;amp; Blend (UPDATED: Fixed incorrect spelling/link)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.twitter.com/mklucher"&gt;@mklucher&lt;/a&gt; – Gaming &amp;amp; XNA&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.twitter.com/ozymandias"&gt;@ozymandias&lt;/a&gt; – Gaming&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.twitter.com/shawnhargreaves"&gt;@shawnhargreaves&lt;/a&gt; – Game Design&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;In Closing&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is a big milestone for everyone involved in Windows Phone 7 – inside and outside of Microsoft - and we hope you share in our excitement. With the Beta release of the tools, developers can build apps with a “ship it” mentality. There have already been so many amazing apps shown running on the emulator, and a lucky few who have been able to deploy to the phones at our developer events. We’re blown away by the early look at the apps, all of the sharing in the community, the blogging, and the screenshots. There’s a huge team of people here in Redmond who are all watching for new content tagged with “wp7dev” or “Windows Phone 7 Development.” It’s not uncommon for links to get passed around with a “wow, check out what these guys did!”&amp;#160; Keep it up, and keep the faith.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=544172" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone/default.aspx">Windows Phone</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Expression+Blend/default.aspx">Expression Blend</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Beta/default.aspx">Beta</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Developer+Tools+Beta/default.aspx">Windows Phone Developer Tools Beta</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Devices/default.aspx">Devices</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Training/default.aspx">Training</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+7+Jump+Start/default.aspx">Windows 7 Jump Start</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Developer+Tools/default.aspx">Windows Phone Developer Tools</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Jump+Start/default.aspx">Jump Start</category></item><item><title>Meet the Windows Phone 7 Rockstar team - Beastware</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/08/meet-the-windows-phone-7-rockstar-team-beastware.aspx</link><pubDate>Thu, 08 Jul 2010 16:57:15 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:544096</guid><dc:creator>Anand Iyer</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=544096</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/08/meet-the-windows-phone-7-rockstar-team-beastware.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/08/meet-the-windows-phone-7-rockstar-team-beastware.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Anand Iyer here, and I’m onsite in Warsaw, Poland for the Imagine Cup 2010 finals. Last month, we &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/08/and-the-windows-phone-7-rockstar-is.aspx"&gt;announced the winners for the Windows Phone “Rockstar” contest&lt;/a&gt; – a team named Beastware who had created a game called “Droid Assault” a 2D XNA Framework based game for Windows Phone 7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0083.DSCN3800_5F00_56117D6F.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="DSCN3800" border="0" alt="DSCN3800" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3678.DSCN3800_5F00_thumb_5F00_75DFE12A.jpg" width="387" height="293" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Today, the Polish Minster for Science and Higher Education, Barbara Kudrycka, awarded Beastware with their prize winning check. And to much of the team’s surprise, they were also awarded Windows Phone 7 devices – this team is one of the first set of non-Microsoft developers to get Windows Phone 7 preview devices!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1460.DSCN3813_5F00_54140899.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSCN3813" border="0" alt="DSCN3813" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8662.DSCN3813_5F00_thumb_5F00_73FF6596.jpg" width="389" height="286" /&gt;&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;We got to catch up with the Christian Hood, 17, and Eric Lo, 16, from the Beastware team. They are high school students at the &lt;a href="http://www.atech.org/"&gt;Advanced Technologies Academy&lt;/a&gt; in Las Vegas, NV. One of the questions I had for them was how they emulated the accelerometer sensor and I was especially blown away about how the team had built a Windows version of their app using the XNA framework and used a library called &lt;a href="http://www.brianpeek.com/blog/pages/wiimotelib.aspx"&gt;WiimoteLib&lt;/a&gt;. They then ported the app to Windows Phone 7 and trusted that the accelerometer on the device would “just work” – and it did! &lt;/p&gt;  &lt;p&gt;Here’s a short video interview with them:&lt;/p&gt; &lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13182309&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13182309&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;a href="http://vimeo.com/13182309"&gt;Beastware Intro&lt;/a&gt; from &lt;a href="http://vimeo.com/anandiyer"&gt;Anand Iyer&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also, here is a demo of the app:&lt;/p&gt; &lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13181662&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13181662&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;a href="http://vimeo.com/13181662"&gt;Beastware Droid Assault Demo&lt;/a&gt; from &lt;a href="http://vimeo.com/anandiyer"&gt;Anand Iyer&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’m really proud of what the Beastware team has accomplished I can’t wait for Droid Assault to hit the &lt;a href="http://developer.windowsphone.com/"&gt;Windows Phone Marketplace&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://twitter.com/ai"&gt;@ai&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=544096" width="1" height="1"&gt;</description></item><item><title>Hey, You, Get Off of My Cloud</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/08/hey-you-get-off-of-my-cloud.aspx</link><pubDate>Tue, 08 Jun 2010 17:01:23 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:542681</guid><dc:creator>Charlie Kindel</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=542681</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/08/hey-you-get-off-of-my-cloud.aspx#comments</comments><description>&lt;p&gt;Microsoft is making several announcements at &lt;a href="http://www.microsoft.com/events/techednorthamerica/"&gt;TechEd&lt;/a&gt; this week that developers should be sure to catch, like the introduction of our new &lt;a href="http://www.windowsphone7.com/"&gt;Windows Phone&lt;/a&gt; Marketplace &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/07/new-policies-for-next-gen-windows-phone-marketplace.aspx"&gt;policies&lt;/a&gt;. We’re also providing more details about some developer features, one of which I think is worth exploring more closely; &lt;strong&gt;private beta distribution through Windows Phone Marketplace&lt;/strong&gt;. This is noteworthy not only as a cool new Marketplace feature, but also as a prime example of Microsoft embracing the concept of the &lt;a href="http://www.microsoft.com/cloud/?CR_CC=100357852&amp;amp;WT.srch=1&amp;amp;WT.mc_ID=SEARCH&amp;amp;CR_SCC=100357852"&gt;public and private cloud&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;At &lt;a href="http://live.visitmix.com/MIX10/Sessions/CL20"&gt;MIX in March we talked about the Windows Phone Marketplace and the public distribution aspects of that infrastructure&lt;/a&gt;. We also stated our intent to deliver a system whereby developers will be able to distribute applications to beta testers prior to marketplace certification. This week we are able to talk about this capability in more detail. &lt;/p&gt;  &lt;p&gt;The public model enables developers to market and distribute applications to all phone users globally or based on a particular geography.&amp;#160; In contrast the private model enables developers to use the same Marketplace service to distribute applications to a defined set of people that they select for beta-testing. Developers will identify their beta-testers and then upload their application to the developer portal. The Windows Phone application deployment system will then ensure that the application is available on the beta-tester’s phones via a “deep link” the tester will receive in email. We’ll be rolling this mechanism out as we finalize the developer portal this fall.&lt;/p&gt;  &lt;p&gt;This private distribution for beta-testing represents an important first step for Windows Phone. Those of you who have heard me present on Windows Phone 7 know that &lt;a href="http://channel9.msdn.com/posts/matthijs/Overview-of-the-Windows-Phone-7-Application-Platform/"&gt;I frequently speak of the importance that cloud services play in creating user experiences&lt;/a&gt;. Microsoft is a leading proponent of the “cloud” services that compliment local software, be that software on a server, desktop or phone. Cloud services are increasingly providing both public and private functions, whereby an organization can tap into a public service’s extensive storage, bandwidth and infrastructure for private projects. Windows Phone Marketplace is one such cloud service and our long term strategy is to adopt the public and private cloud model with Marketplace as well. Initially, we are enabling private distribution of applications for registered developers in a way that is optimized for beta-testers. This will enable developers to more easily distribute test applications in a secure way. We also appreciate that as phones come to market and people begin bringing them into corporate environments, IT will look for a similar private distribution solution. We are working with our corporate customers to understand the full scope of their distribution needs. We anticipate that our eventual corporate distribution solution will be an extension of the private cloud model we’re introducing for developers in Windows Phone Marketplace.&lt;/p&gt;  &lt;p&gt;So we’re starting by implementing a feature to help developers test applications, but over time we’re going to build on this public and private cloud philosophy to make the Marketplace infrastructure accessible to corporate and business customers as well. This will create an even richer marketplace for the games and applications that already live there by attracting an even broader base of customers who will no doubt want more than line of business applications on their new Windows Phone 7.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=542681" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Marketplace/default.aspx">Marketplace</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Public/default.aspx">Public</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Private/default.aspx">Private</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Beta/default.aspx">Beta</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Deployment/default.aspx">Deployment</category></item><item><title>And the Windows Phone 7 “Rockstar” is…</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/08/and-the-windows-phone-7-rockstar-is.aspx</link><pubDate>Tue, 08 Jun 2010 11:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:542658</guid><dc:creator>Anand Iyer</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=542658</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/08/and-the-windows-phone-7-rockstar-is.aspx#comments</comments><description>&lt;p&gt;Back in March 2010, we announced the &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/03/25/be-a-windows-phone-7-rockstar.aspx"&gt;Windows Phone 7 “Rockstar” Award&lt;/a&gt; – an award that would be presented to the student team that developed the most compelling Windows Phone 7 application for the &lt;a href="http://www.imaginecup.com/"&gt;Imagine Cup 2010&lt;/a&gt;. Over the past few months, several hundred student teams from around the world were building Windows Phone 7 applications using the Community Technology Preview (CTP) of the &lt;a href="http://developer.windowsphone.com/"&gt;developer tools&lt;/a&gt;. These teams were building applications using either the Silverlight or the XNA framework, and developed some really outstanding applications. The teams were asked to submit the XAP file, which we then used to judge the applications. The applications were tested both on an emulator as well as on a Windows Phone 7 device.&lt;/p&gt;  &lt;p&gt;Today I’m pleased to announce that off the 131 teams that submitted their applications, a Windows Phone 7 “Rockstar” has been crowned.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://imaginecup.com/MyStuff/MyTeam.aspx?TeamId=23695"&gt;Beastware&lt;/a&gt;&lt;/b&gt; – This team of 2 from the Advanced Technology Academy in the United States have built a game using the XNA framework called “Droid”.&amp;#160; This game leveraged the use of the accelerometer on the device unlike any other app we’ve seen. The Beastware team is our “Rockstar”. The team members are invited to Poland where the team will be awarded USD8000 and each team member will receive a Windows Phone. Below, you’ll find a couple of snapshots of the app running on the phone (&lt;em&gt;apologies for the blurriness – these pictures were taken of the app running on an actual device&lt;/em&gt;). We hope to get some video and in depth information about how this team went about building their app as they prepare to head to Poland.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4048.beastware1_5F00_3CF5F084.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="beastware-1" border="0" alt="beastware-1" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6204.beastware1_5F00_thumb_5F00_2D72DEB5.jpg" width="203" height="251" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6644.beastware2_5F00_61A707FB.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="beastware-2" border="0" alt="beastware-2" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7167.beastware2_5F00_thumb_5F00_5223F62C.jpg" width="199" height="250" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4477.beastware3_5F00_586ACCBA.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="beastware-3" border="0" alt="beastware-3" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6471.beastware3_5F00_thumb_5F00_648C46E1.jpg" width="195" height="257" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8547.beastware4_5F00_35C68E3F.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="beastware-4" border="0" alt="beastware-4" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8475.beastware4_5F00_thumb_5F00_4D1192B0.jpg" width="208" height="257" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And our runner up teams…&lt;/p&gt;  &lt;p&gt;1&lt;sup&gt;st&lt;/sup&gt; runner up, &lt;b&gt;&lt;a href="http://imaginecup.com/MyStuff/MyTeam.aspx?TeamId=23722"&gt;Tselina&lt;/a&gt; &lt;/b&gt;– This team of 4 from Indonesia built a very slick looking comic book reader in Silverlight. The rich graphics and navigation built into this app made this app very appealing. The Tselina team will be awarded USD4000 and each team member will receive a Windows Phone.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4784.clip_5F00_image002_5F00_333D5C81.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8831.clip_5F00_image002_5F00_thumb_5F00_729B1011.jpg" width="167" height="328" /&gt;&lt;/a&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8030.clip_5F00_image004_5F00_63F0642C.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3187.clip_5F00_image004_5F00_thumb_5F00_7F28BD2D.jpg" width="167" height="328" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2&lt;sup&gt;nd&lt;/sup&gt; runner up, &lt;b&gt;&lt;a href="http://imaginecup.com/MyStuff/MyTeam.aspx?TeamId=23723"&gt;Hypo Team&lt;/a&gt;&lt;/b&gt; – This team of 4 from TAR college in Malaysia have built an awesome game in XNA. This game has great graphics and a very clean interface. The Hypo Team will be awarded USD3000 and each team member will receive a Windows Phone.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6663.hypoteam2_5F00_707E1148.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="hypoteam-2" border="0" alt="hypoteam-2" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4048.hypoteam2_5F00_thumb_5F00_7C9F8B6F.jpg" width="182" height="255" /&gt;&lt;/a&gt; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3823.hypoteam3_5F00_7BC72585.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="hypoteam-3" border="0" alt="hypoteam-3" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8540.hypoteam3_5F00_thumb_5F00_39E04037.jpg" width="193" height="253" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;This was a challenging contest for us to judge as there were a lot of apps that blew us away. Here are some other very interesting apps that received very high scores from our judges:&lt;/p&gt;  &lt;p&gt;· Scavenger app    &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0726.clip_5F00_image005_5F00_0B1A8795.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8750.clip_5F00_image005_5F00_thumb_5F00_18809A9B.jpg" width="170" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A simple task manager app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5037.clip_5F00_image006_5F00_42ECCBB8.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3480.clip_5F00_image006_5F00_thumb_5F00_5B7C6908.jpg" width="168" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A PriceCheck app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6471.clip_5F00_image007_5F00_3AF52956.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/4426.clip_5F00_image007_5F00_thumb_5F00_562D8257.jpg" width="168" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A travel trails app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3264.clip_5F00_image008_5F00_797A76FC.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7506.clip_5F00_image008_5F00_thumb_5F00_38D82A8D.jpg" width="170" height="340" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A restaurant/food finder app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6740.clip_5F00_image009_5F00_06082419.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/3716.clip_5F00_image009_5F00_thumb_5F00_4C851421.jpg" width="172" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· An on-the-go project management app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6765.clip_5F00_image010_5F00_76F1453E.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7360.clip_5F00_image010_5F00_thumb_5F00_6B5B87FF.jpg" width="174" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A health/fitness monitoring app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/1680.clip_5F00_image011_5F00_11BD6B4B.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/2514.clip_5F00_image011_5F00_thumb_5F00_2A4D089B.jpg" width="178" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A simple study schedule manager app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0066.clip_5F00_image012_5F00_3BBD6973.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/0871.clip_5F00_image012_5F00_thumb_5F00_1B3629C1.jpg" width="178" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A cool looking weather app   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/7356.clip_5F00_image013_5F00_5374A0D9.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/5127.clip_5F00_image013_5F00_thumb_5F00_32ED6127.jpg" width="178" height="355" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· A Trivia Quiz App   &lt;br /&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/8360.clip_5F00_image014_5F00_523007FA.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-84-metablogapi/6131.clip_5F00_image014_5F00_thumb_5F00_267F3DFE.jpg" width="179" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once again, we’re thrilled by the amount of excitement and innovation these students have exhibited in developing these applications. On behalf of the Windows Phone 7 team, I’d like to congratulate the Rockstar team, Beastware, as well as the runner up teams, Tselina and Hypo Team. We hope to catch up with each of these teams more leading up to the Imagine Cup awards in Poland.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/ai"&gt;@ai&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=542658" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7+Rockstar/default.aspx">Windows Phone 7 Rockstar</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Imagine+Cup+2010/default.aspx">Imagine Cup 2010</category></item><item><title>New Policies for Next Gen Windows Phone Marketplace</title><link>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/07/new-policies-for-next-gen-windows-phone-marketplace.aspx</link><pubDate>Mon, 07 Jun 2010 19:44:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:542635</guid><dc:creator>Brandon Watson</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowsteamblog.com/windows_phone/b/wpdev/rsscomments.aspx?WeblogPostID=542635</wfw:commentRss><comments>http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/06/07/new-policies-for-next-gen-windows-phone-marketplace.aspx#comments</comments><description>&lt;p&gt;Today we&amp;rsquo;re introducing the new set of Windows Phone Marketplace policies that will govern the application submission and certification process as Windows Phone 7 comes to market. We&amp;rsquo;re taking the next step with Marketplace to attract a much wider range of developers, from large software companies down to students and hobbyists. &lt;/p&gt;
&lt;p&gt;We introduced our first Marketplace eight months ago and have already shown that there is demand for an app store that is both customer-centric AND developer friendly. Marketplace is evolving to give people a great selection of beautiful apps for Windows Phone 7 that we will take steps to ensure are high-quality and don&amp;rsquo;t introduce security or reliability issues. At the same time, we&amp;rsquo;re giving developers the respect they deserve in our use of transparent and uniform policies that still give developers the necessary information and flexibility to explore creative sales and marketing models. For Windows Phone 7, we&amp;rsquo;re keeping the basic tenets of our existing Marketplace philosophy and making a few enhancements for developers. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Specifically, the new Windows Phone Marketplace policies offer:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;Annual registration fee of $99&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;No limit to the number of paid apps submitted 5 free apps per registration, $19.99 each afte&lt;/i&gt;r that &lt;/li&gt;
&lt;li&gt;Free registration to DreamSpark students (same unlimited paid and 5 free apps applies)&lt;/li&gt;
&lt;li&gt;A new optional push notification service to help developers stay engaged with customers &lt;/li&gt;
&lt;li&gt;A new optional Trial API - trials mean more customers try your app, and less likelihood that they return it. The length or type of trial is fully controlled by the developer&lt;/li&gt;
&lt;li&gt;The ability to publish to all available Marketplace markets through a new &amp;ldquo;worldwide distribution&amp;rdquo; option, allowing developers to pay once and distribute broadly&lt;/li&gt;
&lt;li&gt;Wider range of business models; free, paid, freemium and ad-funded&lt;/li&gt;
&lt;li&gt;Equally important to many developers is what isn&amp;rsquo;t changing:&lt;/li&gt;
&lt;li&gt;A revenue share of 70/30&lt;/li&gt;
&lt;li&gt;Developers manage their business with Marketplace via the self service portal &lt;a href="http://developer.windowsphone.com"&gt;http://developer.windowsphone.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Payout takes place monthly for developers that have earned more than USD$200 worldwide&lt;/li&gt;
&lt;li&gt;Developers can make ad funded applications&lt;/li&gt;
&lt;li&gt;All applications go through a process of technical and content certification&lt;/li&gt;
&lt;li&gt;Marketplace offers support for credit card commerce, and where available mobile operator billing.&lt;/li&gt;
&lt;li&gt;Microsoft continues its practice of publishing policies, guidelines, and submission process details to developers so they understand exactly how marketplace works.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The full list of Windows Phone Marketplace policies is now available&lt;a href="http://developer.windowsphone.com/Default.aspx"&gt; here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bottom line &amp;ndash; we have listened to developers and responded to changing customer behavior to make Marketplace an even better experience for all. We&amp;rsquo;re adding many of the new features you&amp;rsquo;ve asked for. For those considering developing for Windows Phone for the first time, we hope you see a fresh opportunity to create truly unique and exciting apps and games. For those who have already published apps to the Marketplace, we hope you find this new direction exciting. Be sure to download the &lt;a href="http://developer.windowsphone.com/windows-phone-7-series/"&gt;Windows Phone Developer&lt;/a&gt; Tools preview, check out what Marketplace has to offer and tell us what you think.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re also interested in what Windows Phone 7 means for business, see Paul Bryan&amp;rsquo;s report from TechEd &lt;a href="http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2010/06/07/windows-phone-7-means-business.aspx"&gt;on the Windows Phone Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have app ideas or want to talk Windows Phone development, &lt;a href="http://www.twitter.com/brandonwatson" title="http://www.twitter.com/brandonwatson"&gt;find me on Twitter&lt;/a&gt;.&amp;nbsp; Also, read this if you want to find out about &lt;a href="http://www.manyniches.com/windows-phone/windows-phone-7-devices/" title="http://www.manyniches.com/windows-phone/windows-phone-7-devices/"&gt;Windows Phone developer devices&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=542635" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Marketplace/default.aspx">Marketplace</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Developer/default.aspx">Developer</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+Marketplace/default.aspx">Windows Phone Marketplace</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Apps/default.aspx">Apps</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Applications/default.aspx">Applications</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/DreamSpark/default.aspx">DreamSpark</category><category domain="http://windowsteamblog.com/windows_phone/b/wpdev/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category></item></channel></rss>