<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>justinangel.net Blog Feed.</title><link>http://justinangel.net/</link><description>justinangel.net Blog Feed.. justinangel.net Blog Feed.</description><managingEditor>J@JustinAngel</managingEditor><item><guid isPermaLink="false">32</guid><link>http://justinangel.net/Win81APIs</link><title>Pre-beta Windows 8.1 WinRT Developer APIs</title><description>&lt;p&gt;Hi folks,&lt;/p&gt; &lt;p&gt;In this article we’ll review new developer WinRT features that’ll be released in the upcoming Windows 8 release (dubbed “Windows 8.1” / “Windows Blue”). Microsoft &lt;a href="http://blogs.windows.com/windows/b/bloggingwindows/archive/2013/05/07/julie-larson-green-at-the-wired-business-conference.aspx" target="_blank"&gt;recently announced&lt;/a&gt; that during June 2013’s BUILD conference a developer preview of Windows 8.1 will be released for download. In the meanwhile &lt;a href="http://www.theverge.com/tag/windows-8.1" target="_blank"&gt;many Windows 8.1 “leaked” images&lt;/a&gt; are available online. These “leaked” images allows us to get a sneak preview of the featuresets that’ll be announced in BUILD conference. For the length of this article we’ll go over those features. &lt;/p&gt; &lt;p&gt;&lt;img title="Windows 8.1 fake logo" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows 8.1 fake logo" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_10-34-40_a6289cb4-d540-4a60-9232-0f640ab250ab.png" width="590" height="134"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Methodology: How was this research done? &lt;/h2&gt; &lt;p&gt;Windows 8.1 images contain &lt;em&gt;WinMD&lt;/em&gt; files describing their embedded Windows 8.1 developers APIs. It’s possible to get to Win8.1’s &lt;u&gt;&lt;em&gt;WinMD&lt;/em&gt;&lt;/u&gt; files and then compare them to the existing Windows 8 RTM &lt;em&gt;WinMD&lt;/em&gt; files. This entire article is based upon using Reflection to see those API differences. &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Download the latest Windows 8.1 “leaked” image. This article was based on an image named “&lt;em&gt;9385.0.FBL_PARTNER_OUT17.130415-2049_X86FRE_CLIENT_EN-US-PL-PL-RU-RU.ISO&lt;/em&gt;”.  &lt;li&gt;Create a bootable &lt;a href="http://www.ghacks.net/2011/09/14/how-to-install-windows-8-from-usb-key/" target="_blank"&gt;USB drive from the ISO file&lt;/a&gt; and Install it on a nearby machine.  &lt;li&gt;Win8.1’s &lt;em&gt;WinMD&lt;/em&gt; files can be found under the following directory: &lt;strong&gt;C:\Windows\System32\WinMetadata&lt;/strong&gt;  &lt;li&gt;Using Microsoft’s &lt;a href="http://archive.msdn.microsoft.com/fds" target="_blank"&gt;Framework Design Studio&lt;/a&gt; it’s then possible to compare the &lt;em&gt;WinMD &lt;/em&gt;files from a WIndows 8.1 “leaked” image and Windows 8 RTM.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;img title="Framework Design Studio comparing Win8.1 and Win8 APIs" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Framework Design Studio comparing Win8.1 and Win8 APIs" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_10-14-32_652b937e-e1de-43b1-9970-10e5409d33ac.png" width="597" height="670"&gt;&lt;/p&gt; &lt;p&gt;For your easy reference you can download the aforementioned WinMD folder from here: &lt;a href="http://justinangel.net/storage/windows81/Windows8RTMWinMD.zip" target="_blank"&gt;Windows 8 RTM WinMDs&lt;/a&gt;, &lt;a href="http://justinangel.net/storage/windows81/Windows81WinMD.zip" target="_blank"&gt;Windows 8.1 9385 WinMDs&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;The resulting comparison between Windows 8 and Windows 8.1 API can be downloaded from @ &lt;a href="http://justinangel.net/storage/windows81/WinMDDelta.zip"&gt;http://justinangel.net/storage/windows81/WinMDDelta.zip&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a name="toc"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Table of Contents&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="#Bluetooth4" target="_self"&gt;Bluetooth 4.0 RfComm and GATT support&lt;/a&gt;  &lt;li&gt;&lt;a href="#pointofsale" target="_self"&gt;Point of sale: Barcode scanners and Magnetic card readers&lt;/a&gt;  &lt;li&gt;&lt;a href="#smartcards" target="_self"&gt;Smart Cards&lt;/a&gt;  &lt;li&gt;&lt;a href="#lockscreenimage" target="_self"&gt;Lock screen Image Apps&lt;/a&gt;  &lt;li&gt;&lt;a href="#vpn" target="_self"&gt;VPN support for Metro apps&lt;/a&gt;  &lt;li&gt;&lt;a href="#scanners" target="_self"&gt;Scanner APIs and apps&lt;/a&gt;  &lt;li&gt;&lt;a href="#alldevices" target="_self"&gt;Support for any External / USB device&lt;/a&gt;  &lt;li&gt;&lt;a href="#pdf" target="_self"&gt;Native PDF rendering in apps&lt;/a&gt;  &lt;li&gt;&lt;a href="#projection" target="_self"&gt;Multiple screens projection support in apps&lt;/a&gt;  &lt;li&gt;&lt;a href="#resolution" target="_self"&gt;XAML/WinJS: New resolution scaling support / Super-high resolution tablets&lt;/a&gt;  &lt;li&gt;&lt;a href="#lowlag" target="_self"&gt;Camera: Low-lag cameras / HDR&lt;/a&gt;  &lt;li&gt;&lt;a href="#newapps" target="_self"&gt;New Metro App Types: Appointments, LockScreen, Contacts and GeoLoc&lt;/a&gt;  &lt;li&gt;&lt;a href="#geofenced" target="_self"&gt;New App Type: GeoFenced activation&lt;/a&gt;  &lt;li&gt;&lt;a href="#lockscreencall" target="_self"&gt;New App Type: Lock screen call&lt;/a&gt;  &lt;li&gt;&lt;a href="#appointments" target="_self"&gt;New App Type: Appointments Provider&lt;/a&gt;  &lt;li&gt;&lt;a href="#tts" target="_self"&gt;Text-to-speech&lt;/a&gt;  &lt;li&gt;&lt;a href="#knownfolders" target="_self"&gt;Read-write access to Camera roll, Saved pictures and playlists&lt;/a&gt;  &lt;li&gt;&lt;a href="#searchbox" target="_self"&gt;XAML/WinJS: new SearchBox control&lt;/a&gt;  &lt;li&gt;&lt;a href="#hub" target="_self"&gt;XAML/WinJS: Hubs for SemanticZoom&lt;/a&gt;  &lt;li&gt;&lt;a href="#datetimepicker" target="_self"&gt;XAML: DatePicker and TimePicker&lt;/a&gt;  &lt;li&gt;&lt;a href="#flyouts" target="_self"&gt;XAML: Flyout, MenuFlyout and SettingsMenuFlyout&lt;/a&gt;  &lt;li&gt;&lt;a href="#appbar" target="_self"&gt;XAML: AppBar simplification&lt;/a&gt;  &lt;li&gt;&lt;a href="#databinding" target="_self"&gt;XAML: DataBinding Improvements&lt;/a&gt;  &lt;li&gt;&lt;a href="#globalization" target="_self"&gt;Globalization: Currencies, Numeral systems and Numerical formatters&lt;/a&gt;  &lt;li&gt;&lt;a href="#minor" target="_self"&gt;Other minor but important Win8.1 features&lt;/a&gt;  &lt;li&gt;&lt;a href="#csharp" target="_self"&gt;How to code Win8.1 C# apps before public beta? &lt;/a&gt; &lt;li&gt;&lt;a href="#winjs" target="_self"&gt;How to develop Win8.1 WinJS apps before public beta?&lt;/a&gt;  &lt;li&gt;&lt;a href="#disc" target="_self"&gt;Disclaimer: Please don’t sue me&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="Bluetooth4"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Bluetooth 4.0 RfComm and GATT support&lt;/h2&gt; &lt;p&gt;Windows 8 had no support for developers to interact with external bluetooth-enabled devices. &lt;em&gt;PeerFinder &lt;/em&gt;was there but it wasn’t bluetooth capable. It’s a pleasant surprise to see Windows 8.1 support both &lt;a href="http://en.wikipedia.org/wiki/Bluetooth_protocols#Radio_frequency_communication_.28RFCOMM.29" target="_blank"&gt;RfComm&lt;/a&gt; bluetooth protocol and &lt;a href="http://developer.bluetooth.org/TechnologyOverview/Pages/GATT.aspx" target="_blank"&gt;GATT&lt;/a&gt; bluetooth profile which are the core of Bluetooth 4.0 support. &lt;/p&gt; &lt;p&gt;RfComm is an underlying protocol used for communicating between two bluetooth enabled devices. RfComm is comparable to TCP in that TCP communicates between two WLAN enabled devices and RfComm is communicates between two bluetooth capable devices. RfComm can be used with the majority of bluetooth devices even if those don’t expose their own developer APIs and services. As we can see from these new Windows 8.1 types RfComm is fully supported: &lt;/p&gt; &lt;p&gt;&lt;img title="Windows.Devices.Bluetooth.Rfcomm namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.Bluetooth.Rfcomm namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_10-52-15_5cf34351-d5ce-4e7f-9665-9febb3920bb6.png" width="716" height="348"&gt;&lt;/p&gt; &lt;p&gt;In addition to RfComm Win8.1 will also have comprehensive GATT support. GATT is a core component of supporting the latest generation Bluetooth Low Energy devices. Using GATT Win8.1 can support a &lt;a href="http://developer.bluetooth.org/gatt/Pages/GATT-Specification-Documents.aspx" target="_blank"&gt;multitude&lt;/a&gt; of long-running low-power devices such as: Heart rate monitors, thermometers, glucose readers, pedometers, running speed monitors, proximity sensors and general notification devices. As we can see from the following classes there’s ample support for GATT in Windows 8.1:&lt;/p&gt; &lt;p&gt;&lt;img title="Windows.Devices.Bluetooth.GenericAttributeProfile namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.Bluetooth.GenericAttributeProfile namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_11-02-26_6cffa096-62d7-4644-b728-af9d9de2d74b.png" width="721" height="546"&gt;&lt;/p&gt; &lt;p&gt;With Bluetooth 4.0 support in Windows 8.1 we’ll see a many external bluetooth-enabled devices connect to WinRT. The aforementioned GattCharacteristicUuids class mentions a lot of those supported devices. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="pointofsale"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Point of sale: Barcode scanners and Magnetic card readers&lt;/h2&gt; &lt;p&gt;It was &lt;a href="http://withinwindows.com/within-windows/2013/4/23/blues-clues-enabling-kiosk-mode" target="_blank"&gt;previously revealed&lt;/a&gt; that Windows 8.1 will support Kiosk mode. Windows 8.1 has new APIs for Magnetic card readers and barcode scanners. So it’s pretty clear to say Microsoft is aiming for a new class of WinRT cash register apps (“Point of Sale”). &lt;/p&gt; &lt;p&gt;&lt;img title="Print screen showing Kiosk mode settings in Win8.1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Print screen showing Kiosk mode settings in Win8.1" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_11-07-20_e41127ca-f750-4685-b16d-41e3215fb59e.png" width="832" height="303"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In the following class diagram we can see the new Win8.1 barcode scanner support. It all comes down to the &lt;em&gt;ClaimedBarcodeScanner.DataRecieved&lt;/em&gt; event which will provide a byte[] array with the barcode data. &lt;/p&gt; &lt;p&gt;&lt;img title="Windows.Devices.PointOfService namespace barcode class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.PointOfService namespace barcode class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_11-13-02_9d43c722-f78d-4c34-b736-c6d8ed87c971.png" width="800" height="497"&gt;&lt;/p&gt; &lt;p&gt;There’s also a BarcodeSymbologies class partially shown above that claims the API supports the following barcode systems: &lt;font size="1"&gt;AusPostal, Aztec, Bookland, CanPostal, Cca, Ccb, Ccc, Chinese2of5, Codabar, Code11, Code128, Code128Parsed, Code32, Code39, Code93, CompositeAB, CompositeC, Coupon, CueCode, DataMatrix, Doccap, DutchPostal, Ean128, Ean13S, Ean8S, EanJan13, EanJan8, ExtendedBase, GS1DataBar, GS1DataBarExpanded, GS1DataBarExpandedStacked, GS1DataBarStackedOmnidirectional, Iata2of5, Image, Isbt128, Itf, JapPostal, Korean3of5, Macromicropdf, Macropdf, Matrix2of5, Maxicode, Micropdf, MicroPdf417, MicroQRCode, Msi, Ocra, Ocrb, Pdf417, QRCode, Rss14, Rssexp, Rsslim, Signature, TF, Tlc39, Trioptic39, UkPostal, Unknown, Upca, Upcas, Upcd1, Upcd2, Upcd3, Upcd4, Upcd5, Upce, Upce0, Upce1, Upces, Us4state, US4statefics, UsPlanet, UsPostNet and Webcode.&lt;/font&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;There’s also a new API for magnetic card readers which we can see below. There’s lots of goodies in this API. Starting from generic Magnetic card reader support with direct access to reading Track1-4 data. There’s also Encryption support for Triple DES blocks. And there’s even built-in support to bank cards and AAMVA vehicle driver data. Overall it seems like a great magnetic card reader API that’ll support everything from store cards, bank cards, AAMVA cards and any custom 3rd party magnetic cards. &lt;/p&gt; &lt;p&gt;&lt;img title="Windows.Devices.PointOfService magnetic card reader namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.PointOfService magnetic card reader namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_11-34-02_3b1d8a14-1fe9-4370-ac91-806116cf22ec.png" width="801" height="566"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="smartcards"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Smart Cards &lt;/h2&gt; &lt;p&gt;One of the interesting new security minded features in the Win8.1 APIs is the support for Smart Cards and pin challenges. For those who are unaware “Smart cards” is a generic name for cards with integrated circuits that help uniquely identify cards. Some well known smart cards include credit cards, debit cards, employee cards, public transit payment cards &lt;a href="http://en.wikipedia.org/wiki/Smart_card" target="_blank"&gt;and more&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;img title="integrated circuit on a bank card" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="integrated circuit on a bank card" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_11-58-01_e3fd4f39-8b49-4d12-bbac-ab2bb0e390f2.png" width="395" height="235"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The new Smart Card API in Windows 8.1 allows us to iterate over plugged-in smart cards, challenge the user for pin card authorization, reset challenge pins and even to create or destroy cards. As anyone with a bank card knows challenging users for pin codes is quite useful in real-world scenarios. &lt;/p&gt; &lt;p&gt;&lt;img title="Windows.Security.SmartCards namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Security.SmartCards namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_11-51-56_1f230d59-fc03-4265-a07d-6fb55d82ce17.png" width="681" height="394"&gt;&lt;/p&gt; &lt;p&gt;It’s really interesting to see that the Win81 APIs allow for both day-to-day usage of smart cards and managing smart cards. &lt;/p&gt; &lt;p&gt;&lt;img title="credit card payment terminal issuing a pin challenge for a user." style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="credit card payment terminal issuing a pin challenge for a user. " src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_12-07-26_b3bb2c3b-8b6a-48b1-abfd-8853210c6325.png" width="180" height="289"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="lockscreenimage"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Lock screen Image Apps&lt;/h2&gt; &lt;p&gt;It’s been &lt;a href="http://pureinfotech.com/2013/05/02/windows-8-1-build-9385-leak/" target="_blank"&gt;previously reveled&lt;/a&gt; that Windows 8.1 apps can now set the lockscreen background image.&lt;/p&gt; &lt;p&gt;&lt;img title="2013-05-12_12-14-10" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2013-05-12_12-14-10" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_12-14-10_21986d10-6baf-4c7b-86d2-624d2c6ce1b9.png" width="632" height="500"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Windows 8.1 apps can set the lock screen image to a remote feed. While the format of the remote feed is currently unknown (RSS? Media RSS?) it’s likely to be fairly simple to implement. The beautiful part about setting the lock screen to a remote feed is that changing the picture doesn’t require running the app or any custom code on the client side. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: blue"&gt;namespace &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Windows.System.UserProfile 
{
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static class &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;LockScreen 
    &lt;/span&gt;&lt;span style="background: white; color: black"&gt;{
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;IAsyncOperation RequestSetImageFeedAsync(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;void &lt;/span&gt;&lt;span style="background: white; color: black"&gt;syndicationFeedUri);
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Boolean TryRemoveImageFeed();
    }

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public enum &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;SetImageFeedResult 
    &lt;/span&gt;&lt;span style="background: white; color: black"&gt;{
        Success,
        ChangeDisabled,
        UserCanceled
    }
} &lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="vpn"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;VPN support for Metro apps&lt;/h2&gt;
&lt;p&gt;A &lt;a href="http://social.technet.microsoft.com/Forums/en-US/w8itpronetworking/thread/96a7f1ab-1a24-48af-a6ec-6988c116be91/" target="_blank"&gt;very common complaint&lt;/a&gt; for Windows 8 Metro apps is that they sometimes stop working under most VPN connections. VPNs &lt;a href="http://blog.tuvpn.com/2010/11/vpn-security-mechanisms-%E2%80%93-explanations-in-simple-words/" target="_blank"&gt;are critical&lt;/a&gt; for many people including Iranian employees and remote dissidents (or is it “Iranian dissidents and remote employees”?). &lt;/p&gt;
&lt;p&gt;&lt;img title="picture illustrating what VPN is for dummies" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="picture illustrating what VPN is for dummies" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_17-16-51_35d8a155-cddc-4726-afdf-be8d168d2c0f.png" width="471" height="302"&gt;&lt;/p&gt;
&lt;p&gt;It’s great to see Microsoft adding a whole new &lt;em&gt;Windows.Networking.vpn&lt;/em&gt; namespace to help deal with VPNs in WinRT apps.&amp;nbsp; The new VPN API featureset is fundamentally about sending encrypted packets. It also supports VPN routing (what goes in the VPN connection and what doesn’t), multiple VPN authentication methods (username, password, pin, smart card, credentials and more) and support for VPN namespaces. I &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Networking.vpn namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Networking.vpn namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_17-15-24_0e212800-3bf0-4fc8-9274-759884dd3b4f.png" width="766" height="464"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Despite the plethora of new VPN APIs, an open question remains as to whether WinRT Win8.1 apps will work by default on VPNs. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="scanners"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Scanner APIs and apps&lt;/h2&gt;
&lt;p&gt;Windows 8 introduced a new type of &lt;a href="http://msdn.microsoft.com/en-us/library/windows/hardware/hh833795.aspx" target="_blank"&gt;Metro apps that are associated with printers&lt;/a&gt;. Those apps can be used to define a custom printing configuration within the Windows 8 “devices” charm. However, scanners were conspicuously unsupported and didn’t have that level of support. Scanners weren’t usable in Metro apps and the scanner manufacturers couldn’t hook into the Win8 “devices” charm. Well, that’s going to change in Win8.1.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;img title="Scanner and windows 8 logo" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Scanner and windows 8 logo" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-19_20-23-01_da416114-2392-41c1-b235-cbb7a3be5e36.png" width="283" height="251"&gt;&lt;/p&gt;
&lt;p&gt;Using the new &lt;em&gt;Windows.Devices.Scanners &lt;/em&gt;namespace apps can automate scanning and customizing documents from flatbed &amp;amp; feeder scanners. Developers can see current scanner configuration, set a few properties (auto cropping, color mode, contrast, resolution, etc) and get image files after scanning. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Devices.Scanners namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.Scanners namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_17-23-04_0a5c57ff-941e-455a-a823-b236a50b0a20.png" width="795" height="575"&gt;&lt;/p&gt;
&lt;p&gt;An open question is whether or not Scanner OEM apps written by device manufacturers will be supported in Windows 8.1. Looking at the impressive API above, I’d be surprised if they won’t be supported. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="alldevices"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Support for any IO and USB device&lt;/h2&gt;
&lt;p&gt;One of the big limitations of Win8 WinRT apps is their lack of ability to interact with connected and built-in devices unless previously exposed by WinRT. It seems that’s about to change in Windows 8.1 with the introduction of the new &lt;em&gt;Windows.Devices.Usb &lt;/em&gt;and &lt;em&gt;Windows.Devices.Custom&lt;/em&gt; namespaces.&amp;nbsp; Both of these namespace provide IOutputStream and IInputStream to any USB or IO device. It’s fair to assume it’ll be heavily gated by permissions, but it’s still a great feature that opens up new avenues for Win8.1 apps. &lt;/p&gt;
&lt;p&gt;&lt;img title="Data comes in, data goes out. You can't explain that. " style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Data comes in, data goes out. You can't explain that. " src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-19_20-30-15_79df5be4-0dc9-408a-8999-3adf1608e117.png" width="450" height="366"&gt;&lt;/p&gt;
&lt;p&gt;Below we can see the new &lt;em&gt;Windows.Devices.Custom&lt;/em&gt; namespace with the Input &amp;amp; Output streams highlighted. The code to use this API would be fairly straightforward. First we’d get a DeviceID or Device selector string from existing Win8 APIs, next we’d get a &lt;em&gt;CustomDevice&lt;/em&gt; instance and finally we’ll send over &lt;em&gt;IOControlCodes &lt;/em&gt;the device will recognize. &lt;/p&gt;
&lt;p&gt;&lt;img title=" Windows.Devices.Custom namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt=" Windows.Devices.Custom namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/image_577e28ba-7068-4206-b154-5cf2ab538080.png" width="630" height="419"&gt;&lt;/p&gt;
&lt;p&gt;Another new API that is more USB specific was introduced is the &lt;em&gt;Windows.Devices.Usb &lt;/em&gt;namespace. Below you can see the types of USB devices supported, and where the Output and Input streams can be found.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Devices.Usb namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.Usb namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/image_1c3801c8-6d69-43c0-b8de-57052400faeb.png" width="612" height="536"&gt;&lt;/p&gt;
&lt;p&gt;The new USB namespace is quite verbose so I’ve highlighted only what I felt is the most self explanatory API. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="pdf"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Native PDF rendering in apps &lt;/h2&gt;
&lt;p&gt;Windows 8 developers hoping to author an alternative PDF viewer Metro app were in for quite a shock. They had to develop their own C++ PDF rendering engine. Obviously, that’s a considerable task and despite being a&amp;nbsp; very common one. That’s why it’s great to see Windows 8.1 introduces built-in support for all apps to render PDF documents. Below we can see the majority of top rated PDF viewer in the Win8 store are all in-fact Desktop apps and not WInRT apps: &lt;/p&gt;
&lt;p&gt;&lt;img title="majority of top rated PDF viewer in the Win8 store are all in-fact Desktop apps " style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="majority of top rated PDF viewer in the Win8 store are all in-fact Desktop apps " src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/image_d1742696-d0c7-47c7-9174-a953788d9b09.png" width="642" height="471"&gt;&lt;/p&gt;
&lt;p&gt;The new Win8.1 PDF API starts by loading a PDF file using &lt;em&gt;PdfDocument.LoadFromFileAsync()&lt;/em&gt;, getting the total number of pages and then invoking &lt;em&gt;PdfDocument.GetPage(i).RenderToStreamAsync()&lt;/em&gt;. Once we have the image stream it should be quite simple to add it into any app UI.&lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Data.Pdf namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Data.Pdf namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_17-57-01_ff125a20-75b8-4628-a726-c196efdde0f0.png" width="755" height="476"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="projection"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Multiple screens projection support in apps &lt;/h2&gt;
&lt;p&gt;Imagine watching a video on your Win8 atom-based tablet and plugging it into your TV. The tablet could duplicate the content on the TV, but it can’t choose to show one view for the TV and another view for the tablet screen. That for example is the experience for the Netflix iPad app. In windows 8 Metro apps were spectacularly single screened and only had one single active view. It seems that in Windows 8.1 developers can opt-in to create additional alternate views for projection displays. &lt;/p&gt;
&lt;p&gt;&lt;img title="2013-05-12_18-08-18" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2013-05-12_18-08-18" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_18-08-18_f8ba9aee-9b19-4b4f-8d1f-6be9e74e1114.png" width="199" height="346"&gt;&lt;/p&gt;
&lt;p&gt;Windows 8.1 Introduces a &lt;em&gt;ProjectionManager&lt;/em&gt; class that allows developers to listen to projection display changes and provide multiple displays with their own unique views. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: blue"&gt;namespace &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Windows.UI.ViewManagement
{
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static class &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;ProjectionManager
    &lt;/span&gt;&lt;span style="background: white; color: black"&gt;{
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;IAsyncAction &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StartProjectingAsync(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;int &lt;/span&gt;&lt;span style="background: white; color: black"&gt;projectionViewId, &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;int &lt;/span&gt;&lt;span style="background: white; color: black"&gt;anchorViewId);
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;IAsyncAction &lt;/span&gt;&lt;span style="background: white; color: black"&gt;SwapDisplaysForViewsAsync(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;int &lt;/span&gt;&lt;span style="background: white; color: black"&gt;projectionViewId, &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;int &lt;/span&gt;&lt;span style="background: white; color: black"&gt;anchorViewId);
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;IAsyncAction &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StopProjectingAsync(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;int &lt;/span&gt;&lt;span style="background: white; color: black"&gt;projectionViewId, &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;int &lt;/span&gt;&lt;span style="background: white; color: black"&gt;anchorViewId);
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static bool &lt;/span&gt;&lt;span style="background: white; color: black"&gt;ProjectionDisplayAvailable { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static event &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;EventHandler&lt;/span&gt;&lt;span style="background: white; color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;object&lt;/span&gt;&lt;span style="background: white; color: black"&gt;&amp;gt; ProjectionDisplayAvailableChanged;
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="resolution"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML/WinJS: New resolution scaling support / Super-high resolution tablets&lt;/h2&gt;
&lt;p&gt;It’s possible we’ll see Win8.1 WinRT tablets sporting screens with much higher DPI then Apple’s retina even going all the way up to “4k” resolution. &lt;/p&gt;
&lt;p&gt;Win8 supports loading different media resources in different DPIs. Essentially making it quite easy to change images and videos and create a DPI-Independent apps.&amp;nbsp; This is done by specifying the same resource in multiple “scaling factors”. You can read more about scaling factors on &lt;a href="http://blogs.msdn.com/b/b8/archive/2012/03/21/scaling-to-different-screens.aspx" target="_blank"&gt;Win8’s official blog&lt;/a&gt;.&amp;nbsp; It’s interesting that additional scaling factors have been added to Win8.1 showing Microsoft has an expectation for higher-resolution tablets.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;  &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public enum &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;ResolutionScale
  &lt;/span&gt;&lt;span style="background: white; color: black"&gt;{
    Invalid = 0,
    Scale100Percent = 100,
    Scale140Percent = 140,
&lt;font color="#008000"&gt;    [Version(100859904)] Scale150Percent = 150,
    [Version(100859904)] Scale160Percent = 160,&lt;/font&gt;
    Scale180Percent = 180,
    &lt;font color="#008000"&gt;[Version(100859904)] Scale225Percent = 225,&lt;/font&gt;
  }&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As we can see the highest new scaling factor supported is 225%. That’s 25% higher DPI that Microsoft expects to run on Win8.1 WinRT tablets then on Win8 WinRT tablets. &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465362.aspx" target="_blank"&gt;Current scaling values&lt;/a&gt; correspond to real resolution and DPI as follows assuming a 12.5”-13” display: &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Data.Pdf namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="current ScalePercents explained by MSDN" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-16_21-51-52_d19d1869-9f24-42cf-829f-9d43927d4473.png" width="431" height="72"&gt;&lt;/p&gt;
&lt;p&gt;The existing 180% scaling supports 240DPI in WQHD resolution, so it’s reasonable to assume that 225% scaling would support 300DPI and even higher values. It’s possible we’ll see Win8.1 WinRT tablets sporting screens with much higher DPI then Apple’s retina even going all the way up to “4k” resolution. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="lowlag"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Camera: Low-lag cameras / HDR&lt;/h2&gt;
&lt;p&gt;There are new Win8.1 APIs introduced to support “Low Lag Cameras” which could indicate Microsoft is expecting HDR capable cameras in WinRT Tablets.&lt;/p&gt;
&lt;p&gt;As we can see below Win8.1 introduces a lot of new “Low Lag” media capture APIs: &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Media.Devices naemspace LowLag class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Media.Devices naemspace LowLag class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-18_16-31-06_5c2da35c-3f54-401e-8d24-bf1ec9f8e3ff.png" width="781" height="548"&gt;&lt;/p&gt;
&lt;p&gt;As we can see this API will allow developers to take multiple low lag images in sequence which is a prerequisite to HDR custom stitching algorithms. &lt;/p&gt;
&lt;p&gt;“Low Lag” cameras could mean a few things. Let’s first try to explain what Camera Lag is. In digital cameras users first see a thumbnail preview of the image being taken, they then click the “take picture” button and finally they see the final picture. The final picture is often different from the thumbnail preview as cameras need a few hundred milliseconds to actually take pictures. That time between clicking the “take picture” button and the time the picture is actually taken is called “camera lag”. Most cellphones and tablets have greater lag then other digital cameras as they don’t have a physical camera shutter. &lt;a href="http://www.pcmag.com/article2/0,2817,2366729,00.asp" target="_blank"&gt;PC Magazine&lt;/a&gt; has a expanded explanation on this topic and more statistics. &lt;/p&gt;
&lt;p&gt;&lt;img title="Average Shutter lag in cellphones from PC Magazine" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Average Shutter lag in cellphones from PC Magazine" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-18_16-40-21_26c2a29b-0388-4409-b964-aaa3ecc6fa9c.png" width="332" height="273"&gt;&lt;/p&gt;
&lt;p&gt;So what’s a “Low Lag" Camera good for? First it’ll let users take better pictures due to the reduced lag. Second, it can be used for HDR. HDR is essentially taking multiple nearly identical pictures in different exposure values and stitching them together.&amp;nbsp; For example, a picture with high exposure will provide better visuals for shadows; and a picture with low exposure will have bright objects such as the sun and lamps look better. By stitching the best part of each exposure value we get a much better digital picture. Low lag cameras are essential for HDR as we can’t have too much time between capturing photos or stitching them won’t be feasible. You can read more about HDR &lt;a href="http://photo.tutsplus.com/articles/hardware/are-cameras-with-built-in-hdr-the-future-of-photography/" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;img title="HDR Illustrated" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="HDR Illustrated" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-18_16-44-24_c163cf6f-61e9-4792-8bbc-cdf065473d40.png" width="597" height="299"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="newapps"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;New Metro App Types: Appointments, LockScreen, Contacts and GeoLoc&lt;/h2&gt;
&lt;p&gt;The way Metro apps are launched is often strongly associated&amp;nbsp; with major featuresets in WinRT. Such Win8 featuresets include Search charm integration, Share charm integration, FileOpenPicker/FileOpenPicker integration, app2app file associations, etc. In Win8.1 the list of activation types in WinRT has been expanded to include lock screen calls, appointments provider, contacts provider and geolocation launching. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: blue"&gt;namespace &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Windows.ApplicationModel.Activation
{
  [Version(100794368)]
  &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public enum &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;ActivationKind
  &lt;/span&gt;&lt;span style="background: white; color: black"&gt;{
    Launch,
    Search,
    ShareTarget,
    File,
    Protocol,
    FileOpenPicker,
    FileSavePicker,
    CachedFileUpdater,
    ContactPicker,
    Device,
    PrintTaskSettings,
    CameraSettings,
&lt;font color="#008000"&gt;    [Version(100859904)] RestrictedLaunch,
    [Version(100859904)] AppointmentsProvider,
    [Version(100859904)] Contact,
    [Version(100859904)] ContactsProvider,
    [Version(100859904)] LockScreenCall,
&lt;/font&gt;  }
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="geofenced"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;New App Type: GeoFenced activation&lt;/h2&gt;
&lt;p&gt;With WIn8.1 apps can now register to be launched once the user leaves or enters a specific Geolocation area. There are many usecases this can be useful in, for example : keeping tabs that small children don’t stray too far, launching an app once entering a restaurant, etc.&lt;/p&gt;
&lt;p&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/image_b3334637-4150-47c5-ae88-f1159081d983.png" width="249" height="249"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The API itself is pretty straightforward. Win8.1 apps that want to be launched due to exiting or entering a GeoFence area first need to register a LocaitonTrigger the same way they’d register any other IBackgroundTrigger. Next apps need to register additional instances of the GeoFence class with a center point and a radius around that point. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Devices.Geolocation.Geofencing namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Devices.Geolocation.Geofencing namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_19-55-51_c3bd43f8-e676-441f-9a8c-b25fe9a88685.png" width="764" height="470"&gt;&lt;/p&gt;
&lt;p&gt;There are a few puzzling open questions about this featureset. Can it be used to Geofence media content? For example, can Netflix use this to limit distribution of just some films to U.S. Markets? Another interesting open question is why limit GeoFencing to circular areas and not rectangular areas? This API seems like it’s got some evolution to do prior to be released to the general public.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="lockscreencall"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;New App Type: Lock screen call&lt;/h2&gt;
&lt;p&gt;Win8.1 will include the capability to launch VoIP apps to start/end phone calls while the OS is locked. Essentially if a user gets a skype audio call under lock screen, you we want them to first unlock their tablet and then answer; we want them to just answer audio calls with a single tap. Which is why the new &lt;em&gt;LockScreenCallActivatedEventArgs&lt;/em&gt; makes a lot of sense.&amp;nbsp; Win8.1 apps also be able to set a call title on the lock screen to show up with the default lock screen UI. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.ApplicationModel LockScreenCall  namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.ApplicationModel LockScreenCall  namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_20-10-02_58eab8c5-5929-4535-bd20-608380c0fcdf.png" width="475" height="323"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="appointments"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;New App Type: Appointments Provider&lt;/h2&gt;
&lt;p&gt;Using the new AppointmentsProvider apps can add and manage additional meetings to the shared Win8.1 calendar. Using this functionality developers can integrate 3rd party calendars into the main Win8.1 calendar. The AppointmentsProvider functionality launches the app asking for appointments in a specific time-frame. Appointments may also be sent back to our app to be added, removed, replaced or launched.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.ApplicationModel AppointmentProvider class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.ApplicationModel AppointmentProvider class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_19-13-34_67d76314-f95a-49ce-a489-96db8e5f2338.png" width="798" height="412"&gt;&lt;/p&gt;
&lt;p&gt;With the new AppointmentProvider the ability to show the built-in calendar and individually ask the user to add, replace or launch appointments from it. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.ApplicationModel.Appointments namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.ApplicationModel.Appointments namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-12_19-16-18_0e53bc18-d4ea-44bd-8fd9-e896b4f849d4.png" width="779" height="544"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="tts"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;p&gt;Text-to-speech&lt;/p&gt;&lt;/h2&gt;
&lt;p&gt;Windows 8 apps that integrated text-to-speech capabilities needed to use a web-based TTS service. That had the disadvantage of requiring a network connection and had some lag associated with it. Win8.1 adds text-to-speech support to WinRT apps using Microsoft’s Speech platform.&amp;nbsp; The API itself is straightforward as you can se below.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.Media.SpeechSynthesis namespace class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.Media.SpeechSynthesis namespace class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_20-38-24_c8a0a8ed-6f52-4dca-a7de-1b60d9efe5ed.png" width="438" height="397"&gt;&lt;/p&gt;
&lt;p&gt;As we can see above Win8.1’s text-to-speech API supports iterating over installed voicces, choosing a voice to speak, using either plain text or SSML and getting back a SpeechSynthesisStream. For example the following code snippet would say “Hello world”. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;MediaElement &lt;/span&gt;&lt;span style="background: white; color: red"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="media" /&amp;gt;
&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black"&gt;speech = &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;SpeechSynthesizer&lt;/span&gt;&lt;span style="background: white; color: black"&gt;();
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black"&gt;stream = &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;await &lt;/span&gt;&lt;span style="background: white; color: black"&gt;speech.SynthesizeTextToStreamAsync(&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;"Hello World"&lt;/span&gt;&lt;span style="background: white; color: black"&gt;);
        media.SetSource(stream, &lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;"audio/wav"&lt;/span&gt;&lt;span style="background: white; color: black"&gt;);
        media.Play();&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="knownfolders"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Read-write access to Camera roll, Saved pictures and playlists &lt;/h2&gt;
&lt;p&gt;The KnownFolders class provides WinRT apps access to many windows folders such as music, pictures, documents and others. In Win8.1 The list of accessible folders expanded to contain the playlists folders, saved pictures and camera roll. That indicates that Metro Win8.1 apps can read and write from those folders.&amp;nbsp; &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: blue"&gt;namespace &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Windows.Storage
{
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;  &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static class &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;KnownFolders
  &lt;/span&gt;&lt;span style="background: white; color: black"&gt;{
&lt;strong&gt;    &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder SavedPictures { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;/strong&gt;&lt;span style="background: white; color: black"&gt;&lt;strong&gt;; }&lt;/strong&gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder DocumentsLibrary { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder HomeGroup { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder MediaServerDevices { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder MusicLibrary { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder PicturesLibrary {&lt;/span&gt;&lt;span style="background: white; color: black"&gt; &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder RemovableDevices { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder VideosLibrary { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;span style="background: white; color: black"&gt;; }
&lt;strong&gt;    &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder ApplicationIndexedContent { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder ApplicationSearchContent { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder Playlists { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="background: white; color: black"&gt;; }
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;public static &lt;/span&gt;&lt;span style="background: white; color: black"&gt;StorageFolder CameraRoll { &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;get&lt;/span&gt;&lt;/strong&gt;&lt;span style="background: white; color: black"&gt;&lt;strong&gt;; }&lt;/strong&gt;
  }
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;For example, the following code snippet successfully adds a new playlist to the Xbox Music app on Win8.1. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;            &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black"&gt;file = &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;await &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;KnownFolders&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.Playlists.CreateFileAsync(&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;"myPlaylist.wpl"&lt;/span&gt;&lt;span style="background: white; color: black"&gt;);
            &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;await &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;FileIO&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteTextAsync(file, &lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;@"&amp;lt;?wpl version=""1.0""?&amp;gt;
&amp;lt;smil&amp;gt;
      &amp;lt;head&amp;gt;
        &amp;lt;title&amp;gt;My Playlist&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;seq&amp;gt;
            &amp;lt;media src=""C:\Users\Justin\Music\brobob.mp3""/&amp;gt;
        &amp;lt;/seq&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/smil&amp;gt;"&lt;/span&gt;&lt;span style="background: white; color: black"&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;After we run this code snippet and open Xbox Music Playlists we can see our new playlist:&lt;/p&gt;
&lt;p&gt;&lt;img title="2013-05-14_21-09-24" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2013-05-14_21-09-24" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-09-24_f76584ca-d497-4db9-9b8d-aa8724fc5f59.png" width="800" height="348"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="searchbox"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML/WinJS: new SearchBox control&lt;/h2&gt;
&lt;p&gt;Win8 apps were encouraged to use the Search Charm for any in-app searching. However, many consumers don’t have any idea the search charm even exists. Microsoft seem to have recognized that trend and provided developers with an inline SearchBox control. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml namespace SearchBox class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml namespace SearchBox class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-16-11_7244d12b-920d-4dba-ac80-cf727b5d4589.png" width="803" height="465"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It’s curious that SearchBox API doesn’t offer a way of entering a list of terms to search. Which either means it’s either just a plain-old-box-of-searching or it automatically hooks up to the Search Contract. Either way in-app searching without using the Search Charm will be a big UX boost for most users. &lt;/p&gt;
&lt;p&gt;We can use the SearchBox control either from XAML or HTML. Here’s how to use it in WinJS: &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-control&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="WinJS.UI.SearchBox"  &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-options&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="{ placeholderText  : 'place holder', }"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;And when we run this code snippet we can see how the SearchBox looks like with placeholder text and when it’s focused: &lt;/p&gt;
&lt;p&gt;&lt;img title="2013-05-14_21-27-08" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2013-05-14_21-27-08" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-27-08_e82ddaa8-8ea0-4c10-b681-aa40eb8b8730.png" width="327" height="144"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="hub"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML/WinJS: Hubs for SemanticZoom &lt;/h2&gt;
&lt;p&gt;In Win8 coding a UI to support Semantic Zoom was a fairly painful experience. Win8.1 introduces the Hub and HubSection controls to make it easier. The Hub control is essentially a zoomed out view of a Semantic Zoom list. There’s a great screenshot on &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465319.aspx" target="_blank"&gt;MSDN&lt;/a&gt; that shows the expected difference in UI between zoomed-in state and zoomed-out: &lt;/p&gt;
&lt;p&gt;&lt;img title="print screen from MSDN showing zoomed-in vs. zoomed-out state" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="print screen from MSDN showing zoomed-in vs. zoomed-out state" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-30-17_7ea8fdf9-90fc-4c5b-86ec-74c905e27f1f.png" width="733" height="299"&gt;&lt;/p&gt;
&lt;p&gt;Using the new Hub and HubSection controls we can easily build a UI like the zoomed out UI above. Here’s the WinJS code:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-control&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="WinJS.UI.Hub"&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-control&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="WinJS.UI.HubSection" &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-options&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="{header: 'Today'}"&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;class&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="myItem"&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;class&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="myText"&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black"&gt;32&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-control&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="WinJS.UI.HubSection" &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-options&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="{header: 'Yesterday'}"&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;class&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="myItem"&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;class&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="myText"&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black"&gt;57&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-control&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="WinJS.UI.HubSection" &lt;/span&gt;&lt;span style="background: white; color: red"&gt;data-win-options&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="{header: 'Last Week'}"&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;class&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="myItem"&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div &lt;/span&gt;&lt;span style="background: white; color: red"&gt;class&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="myText"&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black"&gt;99&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;div&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;And when we run this we can see how using the Hub and HubSection controls makes building Semantic Zoom enabled UIs much easier.&lt;/p&gt;
&lt;p&gt;&lt;img title="2013-05-14_21-43-26" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2013-05-14_21-43-26" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-43-26_e3cca6d1-6222-41f6-8a03-9dc9b719eac6.png" width="678" height="390"&gt;&lt;/p&gt;
&lt;p&gt;Here’s the full class diagram for the new Hub and HubSection controls: &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml namespace Hub class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml namespace Hub class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-46-57_7b47a8ad-efb1-4b12-9e1b-945e90084539.png" width="701" height="591"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="datetimepicker"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML: DatePicker and TimePicker&lt;/h2&gt;
&lt;p&gt;Win8 didn’t have any built-in XAML controls for DateTime selection, but did have those for WinJS. Those have been back ported to WinRT XAML API. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml namespace DatePicker and TimePicker class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml namespace DatePicker and TimePicker class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-49-05_f1c30ed5-140e-4be3-bcbc-cf6b6328ef78.png" width="446" height="576"&gt;&lt;/p&gt;
&lt;p&gt;Using these controls will likely render the same UI that’s already available in WinJS for TimePicker and DatePicker controls. &lt;/p&gt;
&lt;p&gt;&lt;img title="WinJS rendered TimePicker and DatePicker" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="WinJS rendered TimePicker and DatePicker" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-14_21-51-18_206b1090-9069-47b5-9eeb-e8639fea6fd3.png" width="361" height="104"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="flyouts"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML: Flyout, MenuFlyout and SettingsMenuFlyout&lt;/h2&gt;
&lt;p&gt;In Win8 XAML apps, it required a lot of coding to add a custom settings screen or a “hover” flyout. WinJS apps had some of that capability out of the box in Win8, but XAML apps didn’t. In Win8.1 we’ll see new XAML controls to help bridge that gap and make building hover flyouts and settings flyouts easier. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml namespace flyout class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml namespace flyout class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-15_21-21-35_7f6965ce-da0c-4d5c-939d-13545f71447f.png" width="853" height="568"&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The core of this API is around creating a “Flyout” (whether it’s a MenuFlyout, SettingsFlyout or a custom Flyout). MenuFlyouts can then receive MenuFlyoutItemBase that’ll allow to easily compose menus using this new APIs. Win8’s &lt;a href="http://timheuer.github.io/callisto/" target="_blank"&gt;Callisto&lt;/a&gt; (a 3rd party project) has a &lt;a href="https://github.com/timheuer/callisto/wiki/Flyout" target="_blank"&gt;similar API&lt;/a&gt; which probably inspired this API. Here’s a print screen from Callisto on how a Flyout could look like: &lt;/p&gt;
&lt;p&gt;&lt;img title="print screen from Callisto for a Flyout." style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="print screen from Callisto for a Flyout." src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-15_21-29-40_126588e1-cef0-48e6-88fa-943619c8d15e.png" width="417" height="243"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="appbar"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML: AppBar simplification &lt;/h2&gt;
&lt;p&gt;When coding AppBar buttons in Win8 developers had to dig through approximately 100 custom styles for &amp;lt;Button /&amp;gt; to style the appbar correctly. That was a pain. WinJS on the other hand had AppBarButton with Icons that made it relatively easy to code for. Win8.1 introduces new AppBar controls that’ll make developing a XAML AppBar much easier. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml.Controls namespace AppBar controls class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml.Controls namespace AppBar controls class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-15_21-47-02_2c2f0606-586b-4a14-8416-d00f143efaa4.png" width="449" height="387"&gt;&lt;/p&gt;
&lt;p&gt;As you can see from the code diagram above the new controls include a dedicated AppBarButton, AppBarToggleButton and an AppBarSeperator. AppBarButton and AppBarToggleButton both support an “Icon” which is an instance of the IconElement class. IconElement can be practically anything: Images, XAML markup paths, built-in symbols or any font glyph. &lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml.Controls namespace AppBar icons class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml.Controls namespace AppBar icons class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-15_21-49-01_21059651-db5b-4cc5-9689-b00ba748f4cc.png" width="803" height="560"&gt;&lt;/p&gt;
&lt;p&gt;Here’s a code sample of how to sue the new XAML AppBar controls: &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;Page.BottomAppBar&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBar &lt;/span&gt;&lt;span style="background: white; color: red"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="bottomAppBar"&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBarButton &lt;/span&gt;&lt;span style="background: white; color: red"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="New Article"&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBarButton.Icon&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;SymbolIcon &lt;/span&gt;&lt;span style="background: white; color: red"&gt;Symbol&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="Add" /&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBarButton.Icon&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBarButton&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBarSeparator &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;/&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;AppBar&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;Page.BottomAppBar&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="databinding"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;XAML: DataBinding Improvements&lt;/h2&gt;
&lt;p&gt;XAML Databindings in WPF, Silverlight 4 and Windows Phone 8 have additional features that didn’t exist for Win8 and have been backported to WIn8.1. The new properties being introduces are &lt;em&gt;FallbackValue, TargetNullValue &lt;/em&gt;and &lt;em&gt;UpdateSourceTrigger&lt;/em&gt;. StringFormat will not be included in Win8.1. You can read more about FallBackValue and TargetNullValue on &lt;a href="http://dontcodetired.com/blog/post/FallbackValue-TargetNullValue-StringFormat-in-Silverlight-4.aspx" target="_blank"&gt;Jason's blog&lt;/a&gt;. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="background: white; color: red"&gt;Text&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;="{&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="background: white; color: red"&gt;Path&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;=myProperty, 
            &lt;/span&gt;&lt;span style="background: white; color: red"&gt;FallbackValue&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;='myFallbackValue', 
            &lt;/span&gt;&lt;span style="background: white; color: red"&gt;TargetNullValue&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;='myNullValue', 
            &lt;/span&gt;&lt;span style="background: white; color: red"&gt;UpdateSourceTrigger&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;=PropertyChanged}" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Win8.1 will also introduce a DataTemplateSelector to support databinding lists to instances of multiple types and rendering different visuals for each type. More on that in &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx" target="_blank"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Windows.UI.Xaml.Data namespace changes class diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows.UI.Xaml.Data namespace changes class diagram" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-15_21-58-40_aaba7a59-bfff-4883-8c37-02fe9703451a.png" width="513" height="344"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="globalization"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Globalization: Currencies, Numeral systems and Numerical formatters&lt;/h2&gt;
&lt;p&gt;Win8 has support to formatting dates, times and numbers based on the user’s culture. Win8.1 expands that list to support currencies, non-latin numerical systems and multiple numerical formatting functions. Each of those formatting options sounds simple before you consider the cross-cultural complexity so it’s great to see Microsoft supporting those out of the box. &lt;/p&gt;
&lt;p&gt;Here’s an example on how Win8.1 can help our app translate to non-latin numerical systems, format currencies and help print out numbers. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// Brazil Dollar, prints out: BZ$12345.60
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;CurrencyFormatter&lt;/span&gt;&lt;span style="background: white; color: black"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;CurrencyIdentifiers&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.BZD).Format(12345.6));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// United Stats Dollar, prints out: $12345.60
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;CurrencyFormatter&lt;/span&gt;&lt;span style="background: white; color: black"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;CurrencyIdentifiers&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.USD).Format(12345.6));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// Iran Rial, prints out: ????12345.60
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;CurrencyFormatter&lt;/span&gt;&lt;span style="background: white; color: black"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;CurrencyIdentifiers&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.IRR).Format(12345.6));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// Arabic numerals, prints out: ??????????
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;NumeralSystemTranslator&lt;/span&gt;&lt;span style="background: white; color: black"&gt;()
                    {
                        NumeralSystem = &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;NumeralSystemIdentifiers&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.Arab
                    }.TranslateNumerals(&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;"1234567890"&lt;/span&gt;&lt;span style="background: white; color: black"&gt;));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// Thai numerals, prints out: ??????????
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;NumeralSystemTranslator&lt;/span&gt;&lt;span style="background: white; color: black"&gt;()
                    {
                        NumeralSystem = &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;NumeralSystemIdentifiers&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.Thai
                    }.TranslateNumerals(&lt;/span&gt;&lt;span style="background: white; color: #a31515"&gt;"1234567890"&lt;/span&gt;&lt;span style="background: white; color: black"&gt;));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// percent formatter, prints out: 1236.789 %
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;PercentFormatter&lt;/span&gt;&lt;span style="background: white; color: black"&gt;().Format(12.36789));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// Permille formatter, prints out: 12367.89 ‰
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;PermilleFormatter&lt;/span&gt;&lt;span style="background: white; color: black"&gt;().Format(12.36789));

    &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// Rounding formatter, prints out: 13
    &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;Debug&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.WriteLine(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;SignificantDigitsNumberRounder&lt;/span&gt;&lt;span style="background: white; color: black"&gt;()
                    {
                        RoundingAlgorithm = &lt;/span&gt;&lt;span style="background: white; color: #2b91af"&gt;RoundingAlgorithm&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.RoundUp,
                        SignificantDigits = 2
                    }.RoundDouble(12.3));&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As we can see each language and formatting algorithm has a certain amount of complexity to it. Currency formatters change base on the currency symbol and the its location; some cultures need to format numbers in non-latin numerals; and formatting percents or rounding is also culturally specific. Having these built-in formatters is going to prove super useful to WinRT developers. Just the &lt;strong&gt;CurrencyFormatter&lt;/strong&gt; alone is sure to be used by any Win8.1 app that has in-app purchase enabled for multiple markets. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="minor"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Other minor but important Win8.1 features&lt;/h2&gt;
&lt;p&gt;There are additional smaller Win8.1 features that developers might find interesting: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;XAML:&amp;nbsp; &lt;/strong&gt;TextBox, PasswordBox and SearchBox now support Watermarks and Headers. 
&lt;li&gt;&lt;strong&gt;XAML: &lt;/strong&gt;A &amp;lt;SwapChainPanel /&amp;gt; control will be introduced to improve XAML-to-DirectX interop. It’s likely that this control will support fully interactive, high-performance DirectX “islands” to be embedded in XAML pages. 
&lt;li&gt;&lt;strong&gt;XAML: &lt;/strong&gt;MediaElement will be get support for MediaStreamSource. MediaStreamSource is the way WPF, Silverlight and Windows Phone support custom media sources. MediaStreamSource was used by many media companies on these platforms. Win8 didn’t support MediaStreamSource instead asking developers to build C++ Media Foundation plugins. Companies with existing MediaStreamSource investments will be able to port them to Win8.1. 
&lt;li&gt;&lt;strong&gt;Media:&lt;/strong&gt; When recording Audio, Video or Pictures developers can now set preferences such as Auto-focus, Capture Scene, Exposure, Flash, Iso speed, white balance and others. 
&lt;li&gt;&lt;strong&gt;Networking&lt;/strong&gt;: Win8.1 PeerWatcher class will supplement PeerFinder to provide notifications when new devices are in range. 
&lt;li&gt;&lt;strong&gt;Networking: &lt;/strong&gt;Win8.1 will provide developers with details about the current connections such as WiFi access point name, 3G data usage, cellular signals bar and more. 
&lt;li&gt;&lt;strong&gt;Netwroking: &lt;/strong&gt;Hardcoded support for standard HTTP Headers, HTTP Verbs and HTTP protocol components have been introduced in Win8.1. That helps remove magic “http strings” from our code and make coding for REST services a lot easier. 
&lt;li&gt;&lt;strong&gt;UI: &lt;/strong&gt;All existing Win8 TileTemplateType&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;values are now marked as obsolete. All templates for Win8.1 app tiles are in one of three sizes: 150x150 pixels, 310x310 pixels and 310x150 pixels. 
&lt;li&gt;Many other features have been introduced that won’t be covered here. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="csharp"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;How to code Win8.1 C# apps before public beta? &lt;/h2&gt;
&lt;p&gt;These instructions are only useful before BUILD 2013 conference (June 22nd 2013). After this date simply installing Win8.1 with the development tools will suffice. &lt;/p&gt;
&lt;p&gt;&lt;img title="Debuggin Win8.1 apps in VS2012" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Debuggin Win8.1 apps in VS2012" src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-18_19-35-16_7fe1b7b9-a280-4e08-b496-86efcdc5643b.png" width="800" height="630"&gt;&lt;/p&gt;
&lt;p&gt;Here are the instructions to develop on Windows 8 with Visual Studio 2012 and deploy &amp;amp; debug on Win8.1: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install WIn8.1. 
&lt;li&gt;Enable Win8 remote debugging like you would for any Win8 machine. Install &lt;a href="http://www.microsoft.com/visualstudio/eng/downloads" target="_blank"&gt;Visual Studio 2012 Remote debugging&lt;/a&gt; tools and &lt;a href="http://msdn.microsoft.com/en-us/library/vstudio/bt727f1t.aspx" target="_blank"&gt;run them&lt;/a&gt;. 
&lt;li&gt;Create a new &lt;em&gt;Windows.WinMD&lt;/em&gt; that matches Win8.1 and could then be copied to a Win8 development machine. On your Win8.1 machine run the following command: &lt;br&gt;&lt;em&gt;mdmerge -i c:\Windows\System32\WinMetadata\ -o c:\temp\windows.winmd /n 1&lt;/em&gt; 
&lt;li&gt;Backup your Win8 &lt;em&gt;Windows.WinMD &lt;/em&gt;file so you could return to Win8.0 development if you choose to. The file is located @&lt;br&gt;&lt;em&gt;"c:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd"&lt;/em&gt; 
&lt;li&gt;Finally replace your Win8 &lt;em&gt;Windows.WinMD&lt;/em&gt; file with the Win8.1’s &lt;em&gt;Windows.WinMD &lt;/em&gt;file. 
&lt;li&gt;Restart VS2012 and you can now code against Win8.1 APIs on Win8, deploy to a Win8.1 machine and debug.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="winjs"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;How to develop Win8.1 WinJS apps before public beta? &lt;/h2&gt;
&lt;p&gt;These instructions are only useful before BUILD 2013 conference (June 22nd 2013). After this date simply installing Win8.1 with the development tools will suffice.&lt;/p&gt;
&lt;p&gt;&lt;img title="Debugging WinJS 2.0 apps in VS2012 " style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Debugging WinJS 2.0 apps in VS2012 " src="http://justinangel.net/BlogFiles/Windows-Live-Writer/Prerelease-Window.1-WinRT-Developer-APIs_12AB8/2013-05-18_19-37-36_d715392a-fc13-431b-ad69-4f8232944a2b.png" width="740" height="612"&gt;&lt;/p&gt;
&lt;p&gt;In order to code, deploy and debug Win8.1 WinJS apps from Win8 and Visual Studio 2012 follow these steps: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Find WinJS 2.0 files from your local&amp;nbsp; &lt;em&gt;C:\Program Files\WindowsApps &lt;/em&gt;folder. You’ll need to do some &lt;a href="http://justinangel.net/ReverseEngineerWin8Apps" target="_blank"&gt;fancy security permission changes&lt;/a&gt; and then you’ll be able to copy “Microsoft.WinJS” folders. &lt;br&gt;Or you can download a copy from @ &lt;a href="http://justinangel.net/storage/windows81/WinJS2.0Preview.zip" target="_blank"&gt;http://justinangel.net/storage/windows81/WinJS2.0Preview.zip&lt;/a&gt; 
&lt;li&gt;Create a new Win8 WinJS project in Visual Studio 2012. 
&lt;li&gt;Add copies of &lt;em&gt;ui.js, base.js and ui-light.css &lt;/em&gt;to your project from the aforementioned folders. 
&lt;li&gt;Replace all references to &lt;em&gt;ui.js, base.js and ui-light.css &lt;/em&gt;with references to your locally embedded files. 
&lt;li&gt;You can now code against WinJS 2.0 APIs on a Win8 machine, and run &amp;amp; debug on Win8.1. &lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="#toc"&gt;Jump back to table of contents&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;a name="disc"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Disclaimer: Please don’t sue me&lt;/h2&gt;
&lt;p&gt;The article is written to share original research on the upcoming WinRT goodness with other developers. I have no insider information what-so-ever on Windows 8.1. &lt;/p&gt;
&lt;p&gt;This article compromises my personal conclusions from “leaked” Windows 8.1 OS Images. No NDAs were harmed in the making of this article. I do not have and never had any pre-release access to WIndows 8.1 provided to me by Microsoft or anyone else. This article was written and researched on my own time and has no affiliation with my employer.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Feedback?&lt;/h2&gt;
&lt;p&gt;Questions? Feedback? Other insights? Sound off in the comments. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sincerely, &lt;br&gt;-- Justin Angel &lt;/p&gt;</description><a10:updated>2013-05-20T00:00:00-07:00</a10:updated></item><item><guid isPermaLink="false">30</guid><link>http://justinangel.net/AllWp7MangoAPIs</link><title>All new Windows Phone 7.5 Mango APIs</title><description>&lt;p&gt;Hi folks,&lt;/p&gt; &lt;p&gt;In this article I’d like to present &lt;strong&gt;all &lt;/strong&gt;the new Windows Phone 7.5 Mango APIs. The goal is to inform developers who aren’t familiar with Mango of what new APIs are available. Since there are&amp;nbsp; “1,500” new APIs we won’t be able to deep-dive into APIs with code samples. We’ll examine the new APIs and their related class diagrams.&amp;nbsp; Most APIs should be fairly straightforward to professional .net developers who should be familiar with Microsoft’s API style. Each section of this article will also contain external links for those wishing to learn more about the APIs, featuresets and their usages.&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="1,500 new Mango APIs as shown in Mix11" border="0" alt="1,500 new Mango APIs as shown in Mix11" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_22.png" width="800" height="438"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name="targetAudience"&gt; &lt;h2&gt;How was this article composed? Who is it meant for? &lt;/h2&gt;&lt;/a&gt; &lt;p&gt;This article is geared towards professional .net developers who want to learn about the WP7.5 Mango release. If you can look at a Microsoft API and figure out what it does, then this article is for you. If can’t look at an API and figure it out, then this article isn’t for you. We won’t have any samples of code usage inline in the article. Though there are external links for most topics. &lt;/p&gt; &lt;p&gt;Using the &lt;a href="http://archive.msdn.microsoft.com/fds" target="_blank"&gt;Framework Design Studio&lt;/a&gt; I compared all the WP7.0 (NoDo) assemblies with the WP7.5 (Mango) assemblies. We’ll review those changes in this article. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;You can download the generated diff reports from @ &lt;/strong&gt;&lt;a title="http://JustinAngel.net/storage/MangoWp7ToWp71Reports.zip" href="http://JustinAngel.net/storage/MangoWp7ToWp71Reports.zip" target="_blank"&gt;&lt;strong&gt;http://JustinAngel.net/storage/MangoWp7ToWp71Reports.zip&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Framework Design Studio Mango printscreen" border="0" alt="Framework Design Studio Mango printscreen" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_3.png" width="799" height="620"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name="toc"&gt; &lt;h2&gt;Table of Contents&lt;/h2&gt;&lt;/a&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="#targetAudience"&gt;How was this article composed? Who is it meant for?&lt;/a&gt;  &lt;li&gt;&lt;a href="#sensorbase"&gt;Sensors API: overview, SensorBase and other supporting classes&lt;/a&gt;  &lt;li&gt;&lt;a href="#gyroscopeCompass"&gt;Sensor API: Gyroscope and Compass&lt;/a&gt;  &lt;li&gt;&lt;a href="#motion"&gt;Sensor APIs: Combined Motion API&lt;/a&gt;  &lt;li&gt;&lt;a href="#accelerometer"&gt;Sensor APIs: changes to the Accelerometer API&lt;/a&gt;  &lt;li&gt;&lt;a href="#camera"&gt;Camera API&lt;/a&gt;  &lt;li&gt;&lt;a href="#backgroundTask"&gt;Background API: overview and BackgroundTask class&lt;/a&gt;  &lt;li&gt;&lt;a href="#backgroundAudio"&gt;Background API: Background Audio and streaming background Audio&lt;/a&gt;  &lt;li&gt;&lt;a href="#backgroundData"&gt;Background API: Data Transfer APIs&lt;/a&gt;  &lt;li&gt;&lt;a href="#scheduling"&gt;Scheduling &amp;amp; Background API: Alarms, Reminders, Periodic Tasks and Resource Intensive Tasks&lt;/a&gt;  &lt;li&gt;&lt;a href="#backgroundToast"&gt;Background API: Programmatic Toast Notifications &lt;/a&gt; &lt;li&gt;&lt;a href="#appointments"&gt;Appointments and Contacts API: Overview&lt;/a&gt;  &lt;li&gt;&lt;a href="#appointmentsExpanded"&gt;Appointments&lt;/a&gt;  &lt;li&gt;&lt;a href="#contacts"&gt;Contacts&lt;/a&gt;  &lt;li&gt;&lt;a href="#newTasks"&gt;New Launchers and Choosers &lt;/a&gt; &lt;li&gt;&lt;a href="#changesTasks"&gt;Changes and additions to existing Launchers and Choosers &lt;/a&gt; &lt;li&gt;&lt;a href="#secondaryTiles"&gt;Secondary Tiles and primary tile improvements&lt;/a&gt;  &lt;li&gt;&lt;a href="#xnaSilverlight"&gt;Mixed XNA and Silverlight apps&lt;/a&gt;  &lt;li&gt;&lt;a href="#linq2sql"&gt;LINQ-to-SQL and Local Database&lt;/a&gt;  &lt;li&gt;&lt;a href="#search"&gt;Search Extensibility&lt;/a&gt;  &lt;li&gt;&lt;a href="#socketAddresses"&gt;Sockets: IP and DNS Addresses&lt;/a&gt;  &lt;li&gt;&lt;a href="#socketsDns"&gt;Sockets: DNS Resolution&lt;/a&gt;  &lt;li&gt;&lt;a href="#socket"&gt;Sockets: Socket class and SocketAsyncEventArgs&lt;/a&gt;  &lt;li&gt;&lt;a href="#socketUdp"&gt;Sockets: UDP&lt;/a&gt;  &lt;li&gt;&lt;a href="#shellUi"&gt;Shell UI: New ProgressIndicator, and changes to ApplicationBar &amp;amp; SystemTray&lt;/a&gt;  &lt;li&gt;&lt;a href="#bingmaps"&gt;Bing Maps changes: Random XAML elements positioning&lt;/a&gt;  &lt;li&gt;&lt;a href="#backstack"&gt;Removing Pages from the backstack frame journal&lt;/a&gt;  &lt;li&gt;&lt;a href="#deviceInfo"&gt;Device Information and Network Information &lt;/a&gt; &lt;li&gt;&lt;a href="#webBrowser"&gt;WebBrowser control changes: HTML5 GeoLocation and NavigationFailed event&lt;/a&gt;  &lt;li&gt;&lt;a href="#networkPreference"&gt;Network Request Preference and Requirements &lt;/a&gt; &lt;li&gt;&lt;a href="#xboxavatar"&gt;Xbox Live: Render Xbox Live Avatars in XNA &lt;/a&gt; &lt;li&gt;&lt;a href="#xboxAssets"&gt;Xbox Live: Avatar Assets &lt;/a&gt; &lt;li&gt;&lt;a href="#linqProviders"&gt;Custom Linq Providers&lt;/a&gt;  &lt;li&gt;&lt;a href="#dynamicExpression"&gt;Dynamically compiled Lambda Expressions and Reflection.Emit&lt;/a&gt;  &lt;li&gt;&lt;a href="#simd"&gt;mscorib.Extensions: SIMD/ARM-NEON XNA support&lt;/a&gt;  &lt;li&gt;&lt;a href="#mutex"&gt;mscorlib.Extensions: Mutex&lt;/a&gt;  &lt;li&gt;&lt;a href="#inpcing"&gt;mscorlib.Extensions: INotifyPropertyChanging&lt;/a&gt;  &lt;li&gt;&lt;a href="#rsa"&gt;mscorlib.Extensions: RSA Cryptography &lt;/a&gt; &lt;li&gt;&lt;a href="#sl4bcl"&gt;Silverlight 4: Base-Class Library changes in mscorlib assembly&lt;/a&gt;  &lt;li&gt;&lt;a href="#sl4sw"&gt;Silverlight 4: System.Windows Silverlight changes&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name="sensorbase"&gt; &lt;h2&gt;Sensors API: overview, SensorBase and other supporting classes&lt;/h2&gt;&lt;/a&gt; &lt;p&gt;A new overall class hierarchy has been added to support Sensor readings from various sensors. In WP7.1 we only had Acceleromators. In WP7.5 the API has also been expanded to support the Compasses, Gyroscope and combined “Motion” APIs.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft.Device.Sensors class diagram" border="0" alt="Microsoft.Device.Sensors class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_4.png" width="768" height="499"&gt;&lt;/p&gt; &lt;p&gt;As you can see the new SensorBase&amp;lt;TSensorReading&amp;gt; class is the base class&amp;nbsp; for all the new sensor classes. This architecture is a very elegant solution to making Sensor APIs consistent across multiple devices. &lt;/p&gt; &lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SensorBase&lt;/font&gt;&lt;/span&gt;&amp;lt;TSensorReading&amp;gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;where&lt;/font&gt;&lt;/span&gt; TSensorReading : ISensorReading&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;SensorReadingEventArgs&amp;lt;TSensorReading&amp;gt;&amp;gt; CurrentValueChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; TSensorReading CurrentValue { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsDataValid { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; TimeBetweenUpdates { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Start();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Stop();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#0000ff"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ISensorReading&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; Timestamp { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#0000ff"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SensorReadingEventArgs&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;where&lt;/font&gt;&lt;/span&gt; T : ISensorReading&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; T SensorReading { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="gyroscopeCompass"&gt; 
&lt;h2&gt;Sensor API: Gyroscope and Compass &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;Two new Sensors now supported in WP7.5 are the Gyroscope and Compass APIs. They follow the pattern we just saw above of inheriting from SensorBase&amp;lt;ISensorReading&amp;gt; and implementing their own sensor reading event arguments. &lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Compass and Gyroscope class diagram" border="0" alt="Compass and Gyroscope class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_5.png" width="376" height="379"&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Compass&lt;/font&gt;&lt;/span&gt; : SensorBase&amp;lt;CompassReading&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Compass();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;CalibrationEventArgs&amp;gt; Calibrate;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&amp;nbsp;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;struct&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;CompassReading&lt;/font&gt;&lt;/span&gt; : ISensorReading&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; Timestamp { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; HeadingAccuracy { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; TrueHeading { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Vector3 MagnetometerReading { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; MagneticHeading { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Gyroscope&lt;/font&gt;&lt;/span&gt; : SensorBase&amp;lt;GyroscopeReading&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Gyroscope();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;struct&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;GyroscopeReading&lt;/font&gt;&lt;/span&gt; : ISensorReading&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; Timestamp { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Vector3 RotationRate { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="motion"&gt; 
&lt;h2&gt;Sensor APIs: Combined Motion API&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;An additional new type of Sensor readings is the new “Motion” API which takes input from all other available sensors and provides sensor-independent motion information. It’s recommended developers use this API whenever applicable to allow apps to work on as many devices as possible regardless of low-level supported sensors. &lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Motion API class diagram" border="0" alt="Motion API class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_6.png" width="413" height="375"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Motion&lt;/font&gt;&lt;/span&gt; : SensorBase&amp;lt;MotionReading&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Motion();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;CalibrationEventArgs&amp;gt; Calibrate;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;struct&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;MotionReading&lt;/font&gt;&lt;/span&gt; : ISensorReading&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; Timestamp { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AttitudeReading Attitude { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Vector3 DeviceAcceleration { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Vector3 Gravity { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Vector3 DeviceRotationRate { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;struct&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AttitudeReading&lt;/font&gt;&lt;/span&gt; : ISensorReading&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; Timestamp { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;float&lt;/font&gt;&lt;/span&gt; Yaw { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;float&lt;/font&gt;&lt;/span&gt; Pitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;float&lt;/font&gt;&lt;/span&gt; Roll { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Quaternion Quaternion { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Matrix RotationMatrix { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="accelerometer"&gt; 
&lt;h2&gt;Sensor APIs: changes to the Accelerometer API&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;The original API for WP7 Accelerometer was written back when there was only one Sensor API to support. As you’ve seen there is a new Sensor architectureand some elements of the Accelerometer API are now obsolete in favour of the new Sensor API conventions. &lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Accelerometer class diagram" border="0" alt="Accelerometer class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_7.png" width="235" height="354"&gt;&lt;/p&gt;&lt;pre style="font-family: ; background: white"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Accelerometer&lt;/font&gt;&lt;/span&gt; : SensorBase&amp;lt;AccelerometerReading&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;font color="#666666"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt; SensorState State { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Obsolete&lt;/font&gt;&lt;/span&gt;(&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;"use CurrentValueChanged"&lt;/font&gt;&lt;/span&gt;)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;AccelerometerReadingEventArgs&amp;gt; ReadingChanged;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;struct&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AccelerometerReading&lt;/font&gt;&lt;/span&gt; : ISensorReading&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#666666"&gt; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;DateTimeOffset&lt;/span&gt; Timestamp { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;internal&lt;/span&gt; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Vector3 Acceleration { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more reading on the Sensor APIs and how to use them see &lt;strong&gt;MSDN’s section on &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh202971(VS.92).aspx" target="_blank"&gt;&lt;strong&gt;Sensors for Windows Phone&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="camera"&gt; 
&lt;h2&gt;Camera API&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;Managed camera access for non-OEM apps has been added as part of the Mango release. You can read more about how to use this API on MSDN @ &lt;a href="http://msdn.microsoft.com/en-us/library/ff402553(VS.92).aspx" target="_blank"&gt;Camera and Photos for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Camera class diagram" border="0" alt="Camera class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_8.png" width="728" height="493"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_9.png" width="378" height="321"&gt;&lt;/p&gt;
&lt;p&gt;It’s easy to see that the core of this new API is the newly exposed &lt;strong&gt;Camera&lt;/strong&gt; class and its inheriting class &lt;strong&gt;PhotoCamera &lt;/strong&gt;that’s used for still shots.&amp;nbsp; &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Camera&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsCameraTypeSupported(CameraType type);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; CameraType CameraType { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Size&amp;gt; AvailableResolutions { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Size Resolution { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Size PreviewResolution { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; Orientation { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;CameraOperationCompletedEventArgs&amp;gt; Initialized;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Dispose();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;PhotoCamera&lt;/font&gt;&lt;/span&gt; : Camera&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PhotoCamera(CameraType type);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PhotoCamera();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Focus();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; FocusAtPoint(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; x, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; y);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CancelFocus();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; GetPreviewBufferArgb32(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;[] pixelData);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; GetPreviewBufferY(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[] pixelData);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; GetPreviewBufferYCbCr(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[] pixelData);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsFlashModeSupported(FlashMode mode);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CaptureImage();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsFocusSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsFocusAtPointSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; YCbCrPixelLayout YCbCrPixelLayout { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; FlashMode FlashMode { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;CameraOperationCompletedEventArgs&amp;gt; AutoFocusCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; CaptureStarted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;ContentReadyEventArgs&amp;gt; CaptureThumbnailAvailable;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;ContentReadyEventArgs&amp;gt; CaptureImageAvailable;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;CameraOperationCompletedEventArgs&amp;gt; CaptureCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;There are a few new event handlers and Enums used in PhotoCamera and Camera classes. &lt;/p&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;CameraType&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Primary,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        FrontFacing,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;FlashMode&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        On = 1,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Off = 2,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Auto = 3,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        RedEyeReduction = 4,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;CameraOperationCompletedEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; CameraOperationCompletedEventArgs(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; succeeded, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; exception);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; Exception { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; Succeeded { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ContentReadyEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; ImageStream { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Video cameras as enabled as an extension method on VideoBrush through&lt;strong&gt; CameraVideoBrushExtensions&lt;/strong&gt;. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;CameraVideoBrushExtensions&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetSource(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; VideoBrush brush, Camera camera);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;CameraButtons expose static events related to the shutter button. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;CameraButtons&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; ShutterKeyPressed;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; ShutterKeyHalfPressed;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; ShutterKeyReleased;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A preview of the current image in the camera is available via the PhotoCamera.GetPreviewBufferYCbCr() method. The information describing the contents of that preview is available through the&amp;nbsp; YCbCrPixelFormat class.&amp;nbsp; &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;YCbCrPixelLayout&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; RequiredBufferSize { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; YPitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; YXPitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; YOffset { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CbPitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CbXPitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CbOffset { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CrPitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CrXPitch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CrOffset { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MediaLibrary changes class diagram" border="0" alt="MediaLibrary changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_10.png" width="310" height="149"&gt;&lt;/p&gt;
&lt;p&gt;The last API for the Camera Mango featureset is the addition of the MediaLibrary.SavePictureToCameraRoll() method. With it developers can create custom camera apps that save to the same location as the WP7 built-in camera app. &lt;/p&gt;&lt;pre style="font-family: courier new; background: white; color: black; font-size: 16px"&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;MediaLibrary&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;font color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; MediaLibrary();&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; MediaLibrary(&lt;span style="color: "&gt;MediaSource&lt;/span&gt; mediaSource);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Dispose();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Picture&lt;/font&gt;&lt;/span&gt; SavePictureToCameraRoll(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[] imageBuffer);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Picture&lt;/font&gt;&lt;/span&gt; SavePictureToCameraRoll(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;Picture&lt;/span&gt; SavePicture(&lt;span style="color: "&gt;string&lt;/span&gt; name, &lt;span style="color: "&gt;byte&lt;/span&gt;[] imageBuffer);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;Picture&lt;/span&gt; SavePicture(&lt;span style="color: "&gt;string&lt;/span&gt; name, &lt;span style="color: "&gt;Stream&lt;/span&gt; source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;Picture&lt;/span&gt; GetPictureFromToken(&lt;span style="color: "&gt;string&lt;/span&gt; token);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;AlbumCollection&lt;/span&gt; Albums { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;ArtistCollection&lt;/span&gt; Artists { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;GenreCollection&lt;/span&gt; Genres { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; IsDisposed { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;MediaSource&lt;/span&gt; MediaSource { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;PictureCollection&lt;/span&gt; Pictures { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;PlaylistCollection&lt;/span&gt; Playlists { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;PictureAlbum&lt;/span&gt; RootPictureAlbum { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;PictureCollection&lt;/span&gt; SavedPictures { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;SongCollection&lt;/span&gt; Songs { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="backgroundTask"&gt; 
&lt;h2&gt;Background API: overview and BackgroundTask class&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="BackgroundAgent class diagram" border="0" alt="BackgroundAgent class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_11.png" width="602" height="304"&gt;&lt;/p&gt;
&lt;p&gt;There are new background processing related featuresets in mango: Audio, scheduled tasks, background transfers and toasts. As you can see from the diagram above there’s a common base class &lt;strong&gt;BackgroundAgent&lt;/strong&gt; used by the 2 music streaming background agents and the 1 scheduled task background agent. Note that background transfers doesn’t have it’s own publicly exposed background agent. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BackgroundAgent&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; BackgroundAgent();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; NotifyComplete();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Abort();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnCancel();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;As with the rest of the featuresets we’ll be discussing in this article, we won’t review how to create a background agent. Read more on background agents on MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202961(VS.92).aspx" target="_blank"&gt;Background Agents for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="backgroundAudio"&gt; 
&lt;h2&gt;Background API: Background Audio and streaming background Audio&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Audio background agents class diagram" border="0" alt="Audio background agents class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_12.png" width="427" height="431"&gt;&lt;/p&gt;
&lt;p&gt;As part of the new Mango featureset to support audio playback while apps are in the background there are 2 new background agents we can inherit from and implement. First is the &lt;strong&gt;AudioPlayerAgent&lt;/strong&gt; that can be used for any media type Windows Phone can directly play from a Uri. The second background agent is &lt;strong&gt;AudioStreamingAgent&lt;/strong&gt; for otherwise unsupported streaming media formats that need some pre-processing (such as shoutcast, icecast and RTSP) using a custom Silverlight MediaStreamSource.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AudioPlayerAgent&lt;/font&gt;&lt;/span&gt; : BackgroundAgent&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnUserAction(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BackgroundAudioPlayer player, AudioTrack track, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            UserAction action, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; param);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnPlayStateChanged(BackgroundAudioPlayer player, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            AudioTrack track, PlayState playState);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnError(BackgroundAudioPlayer player, AudioTrack track, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; error, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; isFatal);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AudioStreamingAgent&lt;/font&gt;&lt;/span&gt; : BackgroundAgent&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnBeginStreaming(AudioTrack track, AudioStreamer streamer);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnCancel();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft.Phone.BackgroundAudio class diagram" border="0" alt="Microsoft.Phone.BackgroundAudio class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_13.png" width="767" height="539"&gt;&lt;/p&gt;
&lt;p&gt;As we can see both of these are based on having an &lt;strong&gt;AudioTrack&lt;/strong&gt; instance that contains information on the currently playing audio.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AudioTrack&lt;/font&gt;&lt;/span&gt; : IEditableObject&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AudioTrack();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AudioTrack(Uri source, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; title, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; artist, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; album, Uri albumArt);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AudioTrack(&lt;/font&gt;&lt;font style="font-size: 12pt"&gt;Uri source, &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; title, &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; artist, &lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; album, &lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            Uri albumArt, &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; tag, &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;EnabledPlayerControls enabledControls);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; BeginEdit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CancelEdit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; EndEdit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri Source { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Artist { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Album { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Tag { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri AlbumArt { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; EnabledPlayerControls PlayerControls { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; Duration { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Flags&lt;/font&gt;&lt;/span&gt;]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EnabledPlayerControls&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None = 0,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SkipNext = 1,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SkipPrevious = 2,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FastForward = 4,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rewind = 8,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause = 16,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All = Pause | Rewind | FastForward | SkipPrevious | SkipNext,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;AudioPlayerAgent &lt;/strong&gt;receives notifications whenever a user action happens (in the top media bar) and the playback status has changed. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;PlayState&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unknown,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stopped,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Paused,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Playing,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferingStarted,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferingStopped,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TrackReady,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TrackEnded,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rewinding,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FastForwarding,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shutdown,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;UserAction&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stop = 1,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause = 2,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Play = 3,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SkipNext = 4,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SkipPrevious = 5,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FastForward = 6,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rewind = 7,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Seek = 8,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Whenever the playstate changes or a user action has occurred, the background agent can respond interacting directly with audio playback through the &lt;strong&gt;BackgroundAudioPlayer&lt;/strong&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BackgroundAudioPlayer&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Play();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Pause();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Stop();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; FastForward();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Rewind();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SkipNext();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SkipPrevious();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Close();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; BackgroundAudioPlayer Instance { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PlayState PlayerState { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AudioTrack Track { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; Position { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; BufferingProgress { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; CanPause { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; CanSeek { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; Volume { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; Error { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; PlayStateChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We previously mentioned there are two background audio agents. The first used for straight up Uri playback, and the other for custom MediaStreamSource playback. For the latter you’ll have to use an &lt;strong&gt;AudioStreamer &lt;/strong&gt;in order to provide the MediaStreamSource. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;AudioStreamer&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetSource(MediaStreamSource source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more information on how to implement mango background audio playback see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394039(VS.92).aspx" target="_blank"&gt;Background Audio Overview for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="backgroundData"&gt; 
&lt;h2&gt;Background API: Data Transfer APIs&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft.Phone.BackgroundTransfer class diagram" border="0" alt="Microsoft.Phone.BackgroundTransfer class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_14.png" width="472" height="460"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As part of the mango featureset that allows apps to download and upload files while the app is in the background, developers can add new &lt;strong&gt;BackgroundTrasnferRequest&lt;/strong&gt;s to the &lt;strong&gt;BackgroundTransferService&lt;/strong&gt;. The BackgroundTransferService will then schedule the download/upload transfers based on the overall transfer queue and network requirements.&amp;nbsp; &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BackgroundTransferService&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; BackgroundTransferRequest Find(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; requestId);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Add(BackgroundTransferRequest request);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Remove(BackgroundTransferRequest request);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;BackgroundTransferRequest&amp;gt; Requests { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BackgroundTransferRequest&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; BackgroundTransferRequest(Uri requestUri);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; BackgroundTransferRequest(Uri requestUri, Uri downloadLocation);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Dispose();&lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; RequestId { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri RequestUri { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Tag {&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri DownloadLocation &lt;font style="font-size: 12pt"&gt;{&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri UploadLocation &lt;font style="font-size: 12pt"&gt;{&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IDictionary&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt; Headers { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Method &lt;font style="font-size: 12pt"&gt;{&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; TransferPreferences TransferPreferences &lt;font style="font-size: 12pt"&gt;{&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; TransferStatus TransferStatus &lt;font style="font-size: 12pt"&gt;{ &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; TransferError &lt;font style="font-size: 12pt"&gt;{ &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; TotalBytesToReceive &lt;font style="font-size: 12pt"&gt;{ &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; TotalBytesToSend &lt;font style="font-size: 12pt"&gt;{ &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; BytesReceived &lt;font style="font-size: 12pt"&gt;{ &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; BytesSent &lt;font style="font-size: 12pt"&gt;{ &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; StatusCode { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;BackgroundTransferEventArgs&amp;gt; TransferStatusChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;BackgroundTransferEventArgs&amp;gt; TransferProgressChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;TransferPreferences&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AllowCellular,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AllowBattery,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AllowCellularAndBattery,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft.Phone.BackgroundTransfer class diagram" border="0" alt="Microsoft.Phone.BackgroundTransfer class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_15.png" width="419" height="513"&gt;&lt;/p&gt;
&lt;p&gt;By signing up to events on the BackgroundTransferRequest events it’s possible to receive notifications whenever the download/upload status changes and their respective status. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BackgroundTransferEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; BackgroundTransferEventArgs(BackgroundTransferRequest request);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; BackgroundTransferRequest Request { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;TransferStatus&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transferring,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Waiting,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WaitingForWiFi,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WaitingForExternalPower,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WaitingForExternalPowerDueToBatterySaverMode,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WaitingForNonVoiceBlockingNetwork,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Paused,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Completed,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unknown,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;BackgroundTransferInternalException&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;SystemException&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt; &lt;a name="scheduling"&gt;
&lt;h2&gt;Scheduling &amp;amp; Background API: Alarms, Reminders, Periodic Tasks and Resource Intensive Tasks &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Scheduled Action class diagram" border="0" alt="Scheduled Action class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_16.png" width="739" height="636"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft.Phone.Scheduler namespace diagram " border="0" alt="Microsoft.Phone.Scheduler namespace diagram " src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_17.png" width="551" height="323"&gt;&lt;/p&gt;
&lt;p&gt;Using the new scheduling API it’s possible to add scheduled reminder, alarms and tasks. Using the &lt;strong&gt;ScheduledActionService &lt;/strong&gt;we can add, retrieve and test any of the aforementioned tasks.&amp;nbsp; &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ScheduledActionService&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Add(ScheduledAction action);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; ScheduledAction Find(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt; GetActions&amp;lt;T&amp;gt;() &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;where&lt;/font&gt;&lt;/span&gt; T : ScheduledAction;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Remove(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Replace(ScheduledAction action);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; LaunchForTest(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; delay);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SchedulerServiceException&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;SystemException&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;}&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;To add Alarms or Reminders simply instantiate those classes and add them to the &lt;strong&gt;ScheduleActionService&lt;/strong&gt;. For more on this topic see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202946(VS.92).aspx" target="_blank"&gt;Alarms and Reminders Overview for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ScheduledNotification&lt;/font&gt;&lt;/span&gt; : ScheduledAction&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Content { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; RecurrenceInterval RecurrenceType { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;RecurrenceInterval&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Daily,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Weekly,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Monthly,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndOfMonth,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yearly,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Alarm&lt;/font&gt;&lt;/span&gt; : ScheduledNotification&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Alarm(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri Sound { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Reminder&lt;/font&gt;&lt;/span&gt; : ScheduledNotification&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Reminder(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri NavigationUri { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It’s also possible to create scheduled tasks where we can execute arbitrary code in a &lt;strong&gt;ScheduleTaskAgent&lt;/strong&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ScheduledTaskAgent&lt;/font&gt;&lt;/span&gt; : BackgroundAgent&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnInvoke(ScheduledTask task);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [EditorBrowsable(EditorBrowsableState.Never)]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnCancel();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To schedule running a &lt;strong&gt;ScheduleTaskAgent&lt;/strong&gt; use either a &lt;strong&gt;PeriodicTask&lt;/strong&gt; or for more resource intensive tasks (execution time, WiFi-only, device lock, etc) use the &lt;strong&gt;ResourceIntensiveTask&lt;/strong&gt;. Both inherit from &lt;strong&gt;ScheduledTask&lt;/strong&gt;. For more on this topic and the distinction between resource intensive and non-resource intensive tasks see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202942(VS.92).aspx" target="_blank"&gt;Background Agents Overview for Windows Phone&lt;/a&gt;.&lt;/p&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ScheduledTask&lt;/font&gt;&lt;/span&gt; : ScheduledAction&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; BeginTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; ExpirationTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Description { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; LastScheduledTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AgentExitReason LastExitReason { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;AgentExitReason&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Completed,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Aborted,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemoryQuotaExceeded,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExecutionTimeExceeded,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UnhandledException,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Terminated,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Other,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;PeriodicTask&lt;/font&gt;&lt;/span&gt; : ScheduledTask&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PeriodicTask(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ResourceIntensiveTask&lt;/font&gt;&lt;/span&gt; : ScheduledTask&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; ResourceIntensiveTask(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="backgroundToast"&gt; 
&lt;h2&gt;Background API: Programmatic Toast Notifications &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ShellToast class diagram" border="0" alt="ShellToast class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_18.png" width="166" height="227"&gt;&lt;/p&gt;
&lt;p&gt;Using the new ShellToast class it is possible for background agents to show a toast notification that’ll act as a deep link back to the application. It’s important to mention that this API will not work for in-app notifications, and will only show toast notifications when invoked from a background agent. For more on that see Den Delimarsky’s &lt;a href="http://dotnet.dzone.com/articles/shell-notifications-windows" target="_blank"&gt;ShellToast on Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ShellToast&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Content { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri NavigationUri { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="appointments"&gt; 
&lt;h2&gt;Appointments and Contacts API: Overview&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="PhoneDataSharingContext class diagram" border="0" alt="PhoneDataSharingContext class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_19.png" width="475" height="697"&gt;&lt;/p&gt;
&lt;p&gt;Using the new &lt;strong&gt;PhoneDataSharingContext &lt;/strong&gt;classes it’s possible to search for Appointments and Contacts on the phone, register for a search completed events and check the EventsArgs for the results. We can see the parallels between Appointments and Contacts from the class diagram above. Even though they are both independent they both share the same search-driven architecture. The resulting Contact and Appointment classes are very informative so we’ll address each in its own section in this article. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;PhoneDataSharingContext&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; PhoneDataSharingContext(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; baseUri);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt; ExecuteRequest&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; query);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; BaseUri { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Both Appointments and Contacts’ search allow to filter based on user accounts with the relevant classes shown here: &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Account&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Name { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; StorageKind Kind { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;StorageKind&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Phone,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WindowsLive,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Outlook,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Facebook,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Other,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more on how to access Appointments and Contacts see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202972(VS.92).aspx" target="_blank"&gt;Contacts and Calendar for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="appointmentsExpanded"&gt; 
&lt;h2&gt;Appointments &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Appointments class diagram" border="0" alt="Appointments class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_20.png" width="649" height="444"&gt;&lt;/p&gt;
&lt;p&gt;As we’ve previously mentioned access to Appointments starts of with searching for appointments, registering for the async results events and iterating over the EventArgs results. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Appointments&lt;/font&gt;&lt;/span&gt; : PhoneDataSharingContext&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;const&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; DefaultMaximumItems = 100;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SearchAsync(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; startTimeInclusive, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; endTimeInclusive, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; state);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SearchAsync(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; startTimeInclusive, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; endTimeInclusive, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; maximumItems, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; state);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SearchAsync(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; startTimeInclusive, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; endTimeInclusive, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           Account account, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; state);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SearchAsync(&lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; startTimeInclusive, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; endTimeInclusive, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; maximumItems, Account account, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; state);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;AppointmentsSearchEventArgs&amp;gt; SearchCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AppointmentsSearchEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; StartTimeInclusive { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; EndTimeInclusive { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Appointment&amp;gt; Results { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; State { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The appointments themselves can be accessed after the search is complete. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Appointment&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Subject { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Location { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; StartTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt; EndTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsAllDayEvent { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AppointmentStatus Status { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Details { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Attendee Organizer { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Attendee&amp;gt; Attendees { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsPrivate { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Account Account { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;AppointmentStatus&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Free,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tentative,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Busy,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutOfOffice,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Attendee&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DisplayName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; EmailAddress { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="contacts"&gt; 
&lt;h2&gt;Contacts&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Contacts class diagram" border="0" alt="Contacts class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image_21.png" width="787" height="571"&gt;&lt;/p&gt;
&lt;p&gt;Contacts use the same async search pattern used for appointments. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Contacts&lt;/font&gt;&lt;/span&gt; : PhoneDataSharingContext&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SearchAsync(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; filter, FilterKind filterKind, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; state);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;ContactsSearchEventArgs&amp;gt; SearchCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ContactsSearchEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; FilterKind FilterKind { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Filter { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Contact&amp;gt; Results { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; State { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;When searching for contacts it’s possible to filter the search based on name, phone number, email address&amp;nbsp; and whether the contact tile is pinned to the phone home screen. &lt;/p&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;&lt;font style="font-size: 12pt"&gt;FilterKind&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        PinnedToStart,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        EmailAddress,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        PhoneNumber,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        DisplayName,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;The results of a search for contacts is the &lt;strong&gt;Contact &lt;/strong&gt;class which references many additional supporting classes&lt;strong&gt;. &lt;/strong&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Contact&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; GetPicture();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DisplayName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; CompleteName CompleteName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;ContactPhoneNumber&amp;gt; PhoneNumbers { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;ContactEmailAddress&amp;gt; EmailAddresses { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;ContactAddress&amp;gt; Addresses { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;ContactCompanyInformation&amp;gt; Companies { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt; Websites { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt; SignificantOthers { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt; Children { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt; Notes { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;/span&gt;&amp;gt; Birthdays { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsPinnedToStart { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;CompleteName&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; FirstName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; YomiFirstName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; LastName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; YomiLastName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; MiddleName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Nickname { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Suffix { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ContactPhoneNumber&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; PhoneNumber { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PhoneNumberKind Kind { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;PhoneNumberKind&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mobile,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Home,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Work,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Company,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pager,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HomeFax,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WorkFax,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;br&gt;&amp;nbsp;&lt;/pre&gt;&lt;/font&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ContactEmailAddress&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; EmailAddress { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; EmailAddressKind Kind { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EmailAddressKind&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Personal,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Work,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Other,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ContactAddress&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; CivicAddress PhysicalAddress { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AddressKind Kind { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ContactCompanyInformation&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; CompanyName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; YomiCompanyName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; OfficeLocation { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; JobTitle { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;Account&amp;gt; Accounts { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="newTasks"&gt; 
&lt;h2&gt;New Launchers and Choosers &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;There are 8 new Launchers &amp;amp; Choosers in Mango and we’ll review all of them in this section. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Share Tasks class diagram" border="0" alt="Share Tasks class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image2_thumb.png" width="404" height="415"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;ShareStatusTask and ShareLinkTask&lt;/strong&gt; share content on social media accounts the user has previously linked to (facebook, twitter, windows live, etc). For more on how to use the sharing tasks see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394027(VS.92).aspx" target="_blank"&gt;How to: Use the Share Status Task for Windows Phone&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/hh394009(VS.92).aspx" target="_blank"&gt;How to: Use the Share Link Task for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ShareTaskBase&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ShareStatusTask&lt;/font&gt;&lt;/span&gt; : ShareTaskBase&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Status { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ShareLinkTask&lt;/font&gt;&lt;/span&gt; : ShareTaskBase&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri LinkUri { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Message { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ConnectionSettingsTask class diagram" border="0" alt="ConnectionSettingsTask class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image5_thumb.png" width="434" height="187"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;ConnectionSettingsTask &lt;/strong&gt;allows apps to launch into 4 settings screen on the phone: Airplane Mode, WiFi Settings, Bluetooth Settings and Cellular &amp;amp; Data settings. For a sample on how to use this task see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394011(VS.92).aspx" target="_blank"&gt;How to: Use the Connection Settings Task for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ConnectionSettingsTask&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; ConnectionSettingsType ConnectionSettingsType { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ConnectionSettingsType&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        WiFi,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Bluetooth,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Cellular,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        AirplaneMode,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="BingMapsTasks class diagram" border="0" alt="BingMapsTasks class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image9_thumb.png" width="453" height="393"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;BingMapsTask &lt;/strong&gt;launches the map application with a specific latitude and longitude combination or just a search term. For instructions on how to use this task see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394026(VS.92).aspx" target="_blank"&gt;How to: Use the Bing Maps Task for Windows Phone&lt;/a&gt;. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BingMapsTask&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GeoCoordinate Center { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; SearchTerm { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; ZoomLevel { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;BingMapsDirectionsTask &lt;/strong&gt;launches the maps app with driving directions between two latitude and longitude coordinates. For instructions on how to use this task see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394024(VS.92).aspx" target="_blank"&gt;How to: Use the Bing Maps Directions Task for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BingMapsDirectionsTask&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; LabeledMapLocation Start { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; LabeledMapLocation End { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;LabeledMapLocation&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; LabeledMapLocation();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; LabeledMapLocation(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; label, GeoCoordinate location);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Label { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GeoCoordinate Location { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="GameInviteTask class diagram" border="0" alt="GameInviteTask class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image12_thumb.png" width="239" height="199"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;GameInviteTask &lt;/strong&gt;is an API that can only be used by previously approved Xbox Live titles (currently there are less than 100 of those) to start multiplayer gaming sessions. For more on this task see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394002(VS.92).aspx" target="_blank"&gt;How to: Use the Game Invite Task for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;GameInviteTask&lt;/font&gt;&lt;/span&gt; : ChooserBase&amp;lt;TaskEventArgs&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; SessionId { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image15.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SaveRingtoneTask class diagram" border="0" alt="SaveRingtoneTask class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image15_thumb.png" width="209" height="234"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;SaveRingtoneTask &lt;/strong&gt;launches a save dialog for a new phone ringtone based on a Uri. Note that even though the Uri can point to any file Uri there are very specific requirements for the audio file that you’ll want to make sure your ringtone meets. For more information on this task and the aforementioned requirements see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394008(VS.92).aspx" target="_blank"&gt;How to: Use the Save Ringtone Task for Windows Phone&lt;/a&gt;. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SaveRingtoneTask&lt;/font&gt;&lt;/span&gt; : ChooserBase&amp;lt;TaskEventArgs&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri Source { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DisplayName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsShareable { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="AddressChooserTask class diagram" border="0" alt="AddressChooserTask class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image18_thumb.png" width="431" height="196"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The AddressChooserTask allows the user to select an address from their contacts list. For more information on how to use this task see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394029(VS.92).aspx" target="_blank"&gt;How to: Use the Address Chooser Task for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AddressChooserTask&lt;/font&gt;&lt;/span&gt; : ChooserBase&amp;lt;AddressResult&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AddressResult&lt;/font&gt;&lt;/span&gt; : TaskEventArgs&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AddressResult();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AddressResult(TaskResult taskResult);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Address { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DisplayName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image21.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SaveContactTask class diagram" border="0" alt="SaveContactTask class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image21_thumb.png" width="427" height="660"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;SaveContactTask&lt;/strong&gt; shows the user a pre-populated new contact dialogue and will return if the user actually created a new contact or not. For more on how to use this task see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh394013(VS.92).aspx" target="_blank"&gt;How to: Use the Save Contact Task for Windows Phone&lt;/a&gt;. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SaveContactTask&lt;/font&gt;&lt;/span&gt; : ChooserBase&amp;lt;SaveContactResult&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; FirstName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; LastName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; MiddleName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Nickname { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Suffix { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Company { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; MobilePhone { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; HomePhone { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkPhone { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; PersonalEmail { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkEmail { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; OtherEmail { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; HomeAddressStreet { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; HomeAddressCity { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; HomeAddressState { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; HomeAddressZipCode { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; HomeAddressCountry { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkAddressStreet { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkAddressCity { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkAddressState { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkAddressZipCode { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; WorkAddressCountry { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Website { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Notes { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; JobTitle { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SaveContactResult&lt;/font&gt;&lt;/span&gt; : TaskEventArgs&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; SaveContactResult();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; SaveContactResult(TaskResult taskResult);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="changesTasks"&gt; &lt;/p&gt;
&lt;h2&gt;Changes and additions to existing Launchers and Choosers &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;With Mango a few of the existing Launchers and Choosers have received new features. We’ll review these changes in this section. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image24.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MediaPlayerLauncher changes class diagram" border="0" alt="MediaPlayerLauncher changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image24_thumb.png" width="430" height="122"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;MediaPlayerLauncher&lt;/strong&gt; task can now specify the &lt;strong&gt;Orientation &lt;/strong&gt;of the video player. When trying to playback videos recorded on mobile devices the new portrait setting would be extremely useful. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;MediaPlayerLauncher&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; Uri Media { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; MediaPlaybackControls Controls { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; MediaLocationType Location { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; MediaPlayerOrientation Orientation { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;MediaPlayerOrientation&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Landscape,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Portrait,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image27.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="EmailComposeTask changes class diagram" border="0" alt="EmailComposeTask changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image27_thumb.png" width="182" height="137"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;EmailComposeTask&lt;/strong&gt; now allows develoepers to specify suggested BCC emails and the CodePage to be used in globalization scenarios. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EmailComposeTask&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Show();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; Body { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Bcc { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; Cc { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;? CodePage { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; Subject { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; To { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image30.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image30" border="0" alt="image30" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image30_thumb.png" width="411" height="139"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;EmailResult&lt;/strong&gt; class which is returned from the EmailAddressChooserTask now also contains a DisplayName and in addition to the email address chosen by the user. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EmailResult&lt;/font&gt;&lt;/span&gt; : TaskEventArgs&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; EmailResult();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; EmailResult(TaskResult taskResult);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; Email { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;internal&lt;/span&gt; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DisplayName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;internal&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image33.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="WebBrowserTask changes class diagram" border="0" alt="WebBrowserTask changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image33_thumb.png" width="159" height="140"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;WebBrowserTask &lt;/strong&gt;now uses a strongly-typed Uri type property instead of a loosely typed String Url property. For any apps upgraded to Mango that use WebBrowserTask there should be a build warning asking you to switch to the new task. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;WebBrowserTask&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;  &lt;font color="#666666"&gt;      &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Show();&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Obsolete&lt;/font&gt;&lt;/span&gt;(&lt;span style="color: "&gt;&lt;font color="#a31515"&gt;"Please use Uri property"&lt;/font&gt;&lt;/span&gt;)]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;      &lt;font color="#666666"&gt;  &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; URL { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri Uri { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="secondaryTiles"&gt; &lt;/p&gt;
&lt;h2&gt;Secondary Tiles and primary tile improvements&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image39.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ShellTile class diagram" border="0" alt="ShellTile class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image39_thumb.png" width="756" height="395"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using the new &lt;strong&gt;StandardTileData &lt;/strong&gt;and adding those the &lt;strong&gt;ShellTile.Create()&lt;/strong&gt; static method it is possible to add secondary tiles that deep link into application. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ShellTileData&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Title { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;StandardTileData&lt;/font&gt;&lt;/span&gt; : ShellTileData&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;? Count { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri BackgroundImage { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; BackContent { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; BackTitle { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri BackBackgroundImage { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ShellTile&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Create(Uri navigationUri, ShellTileData initialData);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Update(ShellTileData data);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Delete();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; ConvertToXMLFormat(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; str);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri NavigationUri { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;ShellTile&amp;gt; ActiveTiles { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;An interesting hidden feature of this API is that it allows to also &lt;strong&gt;modify the primary tile &lt;/strong&gt;pinned to the phone home page. So if the application itself is pinned to the homepage it’ll be in the &lt;strong&gt;ShellTile.ActiveTiles&lt;/strong&gt;. That’s extremely useful if you want to add a background image and text to the primary tile. More on that is available on Pavel Yosifovich’s blog post &lt;a href="http://blogs.microsoft.co.il/blogs/pavely/archive/2011/09/30/dynamic-live-tiles-in-windows-phone-7.aspx" target="_blank"&gt;Dynamic Live Tiles in Windows Phone 7&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Another change introduced in Mango is adding an overload for ShellTileSchedule so it can work with secondary tiles. Using this new API it is possible to set an interval in which the secondary tile images are updated from a remote server. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ShellTileSchedule&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; ShellTileSchedule();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; ShellTileSchedule(ShellTile tileId);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Start();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Stop();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; UpdateRecurrence Recurrence { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;int&lt;/span&gt; MaxUpdateCount { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;DateTime&lt;/span&gt; StartTime { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font color="#666666"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; UpdateInterval Interval { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; Uri RemoteImageUri { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more on secondary tiles see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202960(VS.92).aspx" target="_blank"&gt;Tiles for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="xnaSilverlight"&gt; 
&lt;h2&gt;Mixed XNA and Silverlight apps&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image42.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft.Xna.Framework class diagram" border="0" alt="Microsoft.Xna.Framework class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image42_thumb.png" width="691" height="644"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With Mango we can now have apps that run both Silverlight content and XNA content. There are two core usecases for this API we need to think about: (1) Adding Silverlight Content (e.g. a menu system) to an XNA game (2) Adding XNA content (e.g. a 3d image) to a Silverlight app. Thinking about these 2 usecases makes it easier to understand the new API introduced for this featureset. &lt;/p&gt;
&lt;p&gt;The first step in creating a mixed XNA and Silverlight app is to make sure that &lt;strong&gt;SharingMode&lt;/strong&gt;=True&lt;strong&gt; &lt;/strong&gt;whenever we have mixed content rendering on the screen. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;GraphicsDeviceExtensions&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetSharingMode(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; GraphicsDevice device, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; enabled);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Use the &lt;strong&gt;UIElementRenderer &lt;/strong&gt;to setup Silverlight elements to render in mixed mode. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElementRenderer&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;     &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; UIElementRenderer(UIElement rootElement, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; textureWidth, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; textureHeight);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Render();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Dispose(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; disposing);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Dispose();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; UIElement Element { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Texture2D Texture { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We would also have to invoke the &lt;strong&gt;UIElementRenderer.Render() &lt;/strong&gt;within our game loop. Use the new &lt;strong&gt;GamerTimer &lt;/strong&gt;timer for your game loop in mixed mode apps. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;GameTimer&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SuppressFrame();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; ResetElapsedTime();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Start();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Stop();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Dispose();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; DrawOrder { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; FrameActionOrder { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; UpdateInterval { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; UpdateOrder { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;GameTimerEventArgs&amp;gt; Draw;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&amp;gt; FrameAction;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;GameTimerEventArgs&amp;gt; Update;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;GameTimerEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GameTimerEventArgs();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GameTimerEventArgs(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; totalTime, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; elapsedTime);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; ElapsedTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; TotalTime { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For XNA apps that use GraphicsDeviceManager they’ll need to switch over and use the new &lt;strong&gt;SharedGraphicsDeviceManager &lt;/strong&gt;class.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SharedGraphicsDeviceManager&lt;/font&gt;&lt;/span&gt; : IGraphicsDeviceService,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;                                               &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;                                               IApplicationService,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;                                               IApplicationLifetimeAware&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; DefaultBackBufferHeight;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; DefaultBackBufferWidth;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; ApplyChanges();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;.Dispose();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; IApplicationService.StartService(ApplicationServiceContext context);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; IApplicationService.StopService();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; IApplicationLifetimeAware.Starting();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; IApplicationLifetimeAware.Started();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; IApplicationLifetimeAware.Exiting();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; IApplicationLifetimeAware.Exited();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; SharedGraphicsDeviceManager Current { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GraphicsDevice GraphicsDevice { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GraphicsProfile GraphicsProfile { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; MultiSampleCount { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; SurfaceFormat PreferredBackBufferFormat { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; PreferredBackBufferHeight { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; PreferredBackBufferWidth { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; DepthFormat PreferredDepthStencilFormat { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PresentInterval PresentationInterval { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; RenderTargetUsage RenderTargetUsage { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; SynchronizeWithVerticalRetrace { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&amp;gt; DeviceCreated;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&amp;gt; DeviceDisposing;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&amp;gt; DeviceReset;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&amp;gt; DeviceResetting;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&amp;gt; Disposed;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more information on how to setup mixed XNA and Silverlight apps see AppHub’s &lt;a href="http://create.msdn.com/en-US/education/catalog/article/migration_guide_moving_to_silverlight_xna" target="_blank"&gt;guide for XNA devs using mixed mode apps&lt;/a&gt;, Peter Kuhn’s &lt;a href="http://www.silverlightshow.net/items/XNA-for-Silverlight-developers-Part-12-Mango-1.aspx" target="_blank"&gt;guide for Silverlight devs using mixed mode apps&lt;/a&gt; and AppHub’s sample &lt;a href="http://create.msdn.com/en-US/education/catalog/sample/paddle_battle" target="_blank"&gt;Paddle Battle&lt;/a&gt; game. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="linq2sql"&gt; 
&lt;h2&gt;LINQ-to-SQL and Local Database&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;As part of Mango Linq-to-SQL running on SQL CE is now supported. Linq2SQL is huge and contains &lt;strong&gt;a lot &lt;/strong&gt;of classes that are new to WP7. We can’t possibly cover all the API for those classes in this article so we’ll just see a huge class diagram and move on. For more information on the core Linq-to-SQL API see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202865(VS.92).aspx" target="_blank"&gt;Local Database for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image48.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Data.Linq class diagram" border="0" alt="System.Data.Linq class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image48_thumb.png" width="667" height="1146"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are however a few Linq-to-SQL APIs that are WP7 specific and we’ll cover those in a bit more depth. All these Linq2SQL WP7 specific APIs are part of the new &lt;strong&gt;Microsoft.Phone.Data.Linq&lt;/strong&gt; and &lt;strong&gt;Microsoft.Phone.Data.Linq.Mapping&lt;/strong&gt; namespaces. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image51.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DatabaseSchemaUpdater class diagram" border="0" alt="DatabaseSchemaUpdater class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image51_thumb.png" width="470" height="252"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;DatabaseSchemaUpdater&lt;/strong&gt; is used to make sure that different versions of the application could upgrade the previously installed databases from older versions. When a database is first created it gets the DatabaseSchemaVersion of 0 or any other value you’d like to give it. It is then possible to use that version number to programmatically add database objects (tables, columns, etc) and update the schema version. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DatabaseSchemaUpdater&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; AddTable&amp;lt;T&amp;gt;();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; AddColumn&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; columnPropertyName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; AddIndex&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; indexName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; AddAssociation&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; associationPropertyName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Execute();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; DataContext Context { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; DatabaseSchemaVersion { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Extensions&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; DatabaseSchemaUpdater CreateDatabaseSchemaUpdater(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; DataContext dataContext);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The next part of WP7 specific Linq-to-SQL API is adding support for database Indexes which doesn’t exist in the desktop version of Linq-to-SQL. This is an important feature since there is no other way to execute DDL (i.e. “create index” statements) on the WP7 SQL CE database. If you expect a high volume of data in a SQL CE Table it’s best to optimize for query scenarios and index the “where” SQL SELECT query columns. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image54.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IndexAttribute class diagram" border="0" alt="IndexAttribute class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image54_thumb.png" width="526" height="314"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AttributeUsage&lt;/font&gt;&lt;/span&gt;(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AttributeTargets&lt;/font&gt;&lt;/span&gt;.Class, AllowMultiple = &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;, Inherited = &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;/span&gt;)]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IndexAttribute&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Attribute&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Name { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsUnique { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Columns { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;MetaIndex&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; IndexName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ReadOnlyCollection&lt;/font&gt;&lt;/span&gt;&amp;lt;MetaIndexedColumn&amp;gt; Columns { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsUnique { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; MetaType DeclaringType { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;MetaIndexedColumn&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; MetaDataMember Column { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; SortOrder SortOrder { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;SortOrder&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Ascending,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Descending,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="search"&gt; &lt;/p&gt;
&lt;h2&gt;Search Extensibility&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;If your app has dynamic server data it’s a great idea to expose a few bing consumable XML files on the server that would deep link into your app from the WP7 search. There’s very little new API for the Mango feature that lets WP7 search deep link into apps. The client side changes involve adding the appropriate &amp;lt;Extension&amp;gt; tags to the WmAppManifest and &amp;lt;ExtensionInfo&amp;gt; tags to the Extras file. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image57.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Search Extensiblity changes in WmAppManfiest" border="0" alt="Search Extensiblity changes in WmAppManfiest" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image57_thumb.png" width="581" height="176"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image60.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Search Extensiblity changes in Extra.xml" border="0" alt="Search Extensiblity changes in Extra.xml" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image60_thumb.png" width="490" height="365"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most of the work for this feature would have to happen on the server-side to expose XML files with the appropriate search data and deep links. &lt;/p&gt;
&lt;p&gt;For more on this feature see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/hh202969(VS.92).aspx" target="_blank"&gt;Search Extensibility for Windows Phone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="socketAddresses"&gt; &lt;/p&gt;
&lt;h2&gt;Sockets: IP and DNS Addresses&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;Sockets are a pretty large API and most devs will only work with frameworks based on this API. For these reasons we’ll skip the C# definitions for classes in this namespace and instead focus on overall featuresets and class diagrams. &lt;/p&gt;
&lt;p&gt;As Sockets are all about direct communication between WP7 and a remote machine DNS and IP addresses classes have been introduced to Mango. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image63.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="EndPoint class diagram" border="0" alt="EndPoint class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image63_thumb.png" width="715" height="587"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="socketsDns"&gt; &lt;/p&gt;
&lt;h2&gt;Sockets: DNS Resolution&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;The DNS resolution API is WP7-specific and is used to convert from a DnsEndPoint (host name and port) to a more specific IPEndPoint that is used by Sockets. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image66.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Dns Resolution class diagram" border="0" alt="Dns Resolution class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image66_thumb.png" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="socket"&gt; 
&lt;h2&gt;Sockets: Socket class and SocketAsyncEventArgs&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;The Socket class is used to connect to an IPEndPoint and then send &amp;amp; receive SocketAsyncEventArgs from that Socket. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image72.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Socket class diagram" border="0" alt="Socket class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image72_thumb.png" width="733" height="525"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="socketUdp"&gt; &lt;/p&gt;
&lt;h2&gt;Sockets: UDP&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;As part of Silverlight 4 UDP support for single-source and multi-source communication has been added to WP7. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image75.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="UDP class diagram" border="0" alt="UDP class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image75_thumb.png" width="556" height="443"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="shellUi"&gt; 
&lt;h2&gt;Shell UI: New ProgressIndicator, and changes to ApplicationBar &amp;amp; SystemTray&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;There are parts of the application UI that are actually part of the OS shell. The top “SystemTray” and the bottom “ApplicationBar” are two such UI elements. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image81.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ApplicationBar class diagram" border="0" alt="ApplicationBar class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image81_thumb.png" width="541" height="185"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;ApplicationBar &lt;/strong&gt;class has added support to show the ApplicationBar as collapsed (similar to how it’s shown in the Music &amp;amp; Video hub) and specify the height used for both the default and minimal mode. &lt;/p&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ApplicationBar&lt;/font&gt;&lt;/span&gt; : IApplicationBar&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;    {
&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; ApplicationBar();&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; IsVisible { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;double&lt;/span&gt; Opacity { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; IsMenuEnabled { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; Color BackgroundColor { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; Color ForegroundColor { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;         &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; ApplicationBarMode Mode { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;         &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; DefaultSize { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;         &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; MiniSize { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }
 
&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;IList&lt;/span&gt; Buttons { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;IList&lt;/span&gt; MenuItems { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;&lt;font color="#666666"&gt;         &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;ApplicationBarStateChangedEventArgs&amp;gt; StateChanged;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="font-family: ; background: white; color: "&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IApplicationBar&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;bool&lt;/span&gt; IsVisible { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;double&lt;/span&gt; Opacity { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;bool&lt;/span&gt; IsMenuEnabled { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        Color BackgroundColor { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        Color ForegroundColor { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        ApplicationBarMode Mode { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; DefaultSize { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; MiniSize { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;IList&lt;/span&gt; Buttons { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;IList&lt;/span&gt; MenuItems { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;ApplicationBarStateChangedEventArgs&amp;gt; StateChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ApplicationBarMode&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Default,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Minimized,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image84.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ProgressIndicator &amp;amp; SystemTray class diagram" border="0" alt="ProgressIndicator &amp;amp; SystemTray class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image84_thumb.png" width="542" height="405"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;SystemTray&lt;/strong&gt; previously only had an IsVisible property to hide the top bar. The main reason why app developers hid the top bar in apps was due to a theme colour clash. So with Mango you can use your brand colours on the SystemTray by setting the new attached dependency properties. As a reminder a pattern of a static GetFoo, SetFoo and FooProperty members is an attached dependency property pattern. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SystemTray&lt;/font&gt;&lt;/span&gt; : DependencyObject&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty IsVisibleProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty OpacityProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty ForegroundColorProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty BackgroundColorProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty ProgressIndicatorProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; SystemTray();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; SetIsVisible(DependencyObject element, &lt;span style="color: "&gt;bool&lt;/span&gt; isVisible);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; GetIsVisible(DependencyObject element);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetOpacity(DependencyObject element, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; opacity);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; GetOpacity(DependencyObject element);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetForegroundColor(DependencyObject element, Color color);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; Color GetForegroundColor(DependencyObject element);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetBackgroundColor(DependencyObject element, Color color);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; Color GetBackgroundColor(DependencyObject element);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetProgressIndicator(DependencyObject element, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           ProgressIndicator progressIndicator);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; ProgressIndicator GetProgressIndicator(DependencyObject element);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;font color="#666666"&gt;&lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; IsVisible { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; Opacity { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; Color ForegroundColor { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; Color BackgroundColor { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; ProgressIndicator ProgressIndicator { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A &lt;strong&gt;SystemTray.ProgressBar &lt;/strong&gt;can be set to show a unified WP7 UI for any in-app process progress taking place (e.g. web requests). An example of how to do so can be found on MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.progressindicator(VS.92).aspx" target="_blank"&gt;ProgressIndicator Class&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ProgressIndicator&lt;/font&gt;&lt;/span&gt; : DependencyObject&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty IsVisibleProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty IsIndeterminateProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty TextProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty ValueProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; ProgressIndicator();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsVisible { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsIndeterminate { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; Text { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt; Value { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;a name="bingmaps"&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="bingmaps"&gt; &lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;Bing Maps changes: Random XAML elements positioning&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image87.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Bing Maps changes class diagram" border="0" alt="Bing Maps changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image87_thumb.png" width="261" height="385"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With Mango the Bing Maps SDK has had only 1 change in it. Attached Dependency properties have been added to the MapPlayer class that allow to position random XAML elements in a latitude and longitude coordinate or relative to the rest of the map. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;MapLayer&lt;/font&gt;&lt;/span&gt; : MapLayerBase, IProjectable&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty PositionProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty PositionRectangleProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty PositionOriginProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty PositionOffsetProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; MapLayer();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;override&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; AddChild(UIElement element, GeoCoordinate location);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;override&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; AddChild(UIElement element, GeoCoordinate location, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;           Point offset);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;override&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; AddChild(UIElement element, GeoCoordinate location, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;           PositionOrigin origin);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;override&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; AddChild(UIElement element, LocationRect locationRect);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; GeoCoordinate GetPosition(DependencyObject dependencyObject);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetPosition(DependencyObject dependencyObject, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           GeoCoordinate position);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; LocationRect GetPositionRectangle(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           DependencyObject dependencyObject);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetPositionRectangle(DependencyObject dependencyObject, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           LocationRect rect);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; PositionOrigin GetPositionOrigin(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           DependencyObject dependencyObject);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetPositionOrigin(DependencyObject dependencyObject, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           PositionOrigin origin);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; Point GetPositionOffset(DependencyObject dependencyObject);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetPositionOffset(DependencyObject dependencyObject, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;           Point point);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; ProjectionUpdated(ProjectionUpdateLevel updateLevel);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; MapBase ParentMap { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="backstack"&gt; &lt;/p&gt;
&lt;h2&gt;Removing Pages from the backstack frame journal &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;A common requirement in NoDo was to block the automatic frame navigation from navigating back into certain pages (e.g. splash page, registration page, etc). There are a few tricks in NoDo that allowed for a decent UX in the absence of any API for directly controlling the backstack. With Mango it is now possible to remove the last page from the back stack.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image90.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Removing backstack page changes class diagram" border="0" alt="Removing backstack page changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image90_thumb.png" width="675" height="382"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;NavigationService&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; Navigate(Uri source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; GoForward();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; GoBack();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; StopLoading();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; JournalEntry RemoveBackEntry();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; Uri Source { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; Uri CurrentSource { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;internal&lt;/span&gt; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; CanGoForward { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; CanGoBack { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;JournalEntry&amp;gt; BackStack { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; NavigationFailedEventHandler NavigationFailed;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; NavigatingCancelEventHandler Navigating;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; NavigatedEventHandler Navigated;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; NavigationStoppedEventHandler NavigationStopped;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; FragmentNavigationEventHandler FragmentNavigation;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;JournalEntryRemovedEventArgs&amp;gt; JournalEntryRemoved;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;JournalEntry&lt;/font&gt;&lt;/span&gt; : DependencyObject&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Uri Source { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;JournalEntryRemovedEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; JournalEntry Entry { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;PhoneApplicationFrame&lt;/font&gt;&lt;/span&gt; : Frame&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty OrientationProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; PhoneApplicationFrame();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; JournalEntry RemoveBackEntry();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; PageOrientation Orientation { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;internal&lt;/span&gt; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;JournalEntry&amp;gt; BackStack { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;font color="#666666"&gt;       &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;OrientationChangedEventArgs&amp;gt; OrientationChanged;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;ObscuredEventArgs&amp;gt; Obscured;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt; Unobscured;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;CancelEventArgs&amp;gt; BackKeyPress;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;JournalEntryRemovedEventArgs&amp;gt; JournalEntryRemoved;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pages can respond to being removed from the back stack by overriding the new &lt;strong&gt;OnRemovedFromJournal&lt;/strong&gt; method. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;PhoneApplicationPage&lt;/font&gt;&lt;/span&gt; : Page&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty SupportedOrientationsProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty OrientationProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty ApplicationBarProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; PhoneApplicationPage();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;protected&lt;/span&gt; &lt;span style="color: "&gt;virtual&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; OnOrientationChanged(OrientationChangedEventArgs e);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;protected&lt;/span&gt; &lt;span style="color: "&gt;virtual&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; OnBackKeyPress(CancelEventArgs e);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnRemovedFromJournal(JournalEntryRemovedEventArgs e);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; SupportedPageOrientation SupportedOrientations { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font color="#666666"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; PageOrientation Orientation { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; IApplicationBar ApplicationBar { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;string&lt;/span&gt;, &lt;span style="color: "&gt;object&lt;/span&gt;&amp;gt; State { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;OrientationChangedEventArgs&amp;gt; BeginLayoutChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;OrientationChangedEventArgs&amp;gt; OrientationChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;CancelEventArgs&amp;gt; BackKeyPress;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="deviceInfo"&gt; &lt;/p&gt;
&lt;h2&gt;Device Information and Network Information &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image96.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DeviceInformation class diagram" border="0" alt="DeviceInformation class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image96_thumb.png" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The new &lt;strong&gt;DeviceStatus &lt;/strong&gt;class has strongly-typed properties that can be used to replace the older &lt;strong&gt;DeviceExtendedProperties &lt;/strong&gt;and it also has previously unavailable device information properties. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DeviceStatus&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsKeyboardDeployed { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsKeyboardPresent { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; PowerSource PowerSource { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; ApplicationCurrentMemoryUsage { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; ApplicationPeakMemoryUsage { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; ApplicationMemoryUsageLimit { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt; DeviceTotalMemory { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DeviceName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DeviceFirmwareVersion { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DeviceHardwareVersion { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; DeviceManufacturer { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; KeyboardDeployedChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; PowerSourceChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;PowerSource&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Battery,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        External,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The new &lt;strong&gt;DeviceNetworkInformation &lt;/strong&gt;class exposes information about the network status of the mobile device. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DeviceNetworkInformation&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; ResolveHostNameAsync(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            DnsEndPoint endPoint, NetworkInterfaceInfo networkInterface, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            NameResolutionCallback callback, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; context);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; ResolveHostNameAsync(DnsEndPoint endPoint, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            NameResolutionCallback callback, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; context);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsCellularDataRoamingEnabled { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsWiFiEnabled { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsCellularDataEnabled { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; CellularMobileOperator { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsNetworkAvailable { &lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt;&amp;lt;NetworkNotificationEventArgs&amp;gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;                                                 NetworkAvailabilityChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;NetworkNotificationEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; NetworkNotificationType NotificationType { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; NetworkInterfaceInfo NetworkInterface { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The new &lt;strong&gt;MediaCapabilities &lt;/strong&gt;exposes information on whether or not smooth adaptive video streaming is supported on the current device or not. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;MediaCapabilities&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsMultiResolutionVideoSupported { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="webBrowser"&gt; &lt;/p&gt;
&lt;h2&gt;WebBrowser control changes: HTML5 GeoLocation and NavigationFailed event&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image99.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="WebBrowser changes class diagram" border="0" alt="WebBrowser changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image99_thumb.png" width="244" height="222"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The WebBrowser control in Mango supports HTML5 GeoLocation after setting &lt;strong&gt;IsGeolocationEnabled&lt;/strong&gt;=True. It also has a new &lt;strong&gt;NavigationFailed&lt;/strong&gt; event. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;WebBrowser&lt;/font&gt;&lt;/span&gt; : Control&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty SourceProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty BaseProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;static&lt;/span&gt; &lt;span style="color: "&gt;readonly&lt;/span&gt; DependencyProperty IsScriptEnabledProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; DependencyProperty IsGeolocationEnabledProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; WebBrowser();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;override&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; OnApplyTemplate();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Navigate(Uri uri);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; Navigate(Uri uri, &lt;span style="color: "&gt;byte&lt;/span&gt;[] postData, &lt;span style="color: "&gt;string&lt;/span&gt; additionalHeaders);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;void&lt;/span&gt; NavigateToString(&lt;span style="color: "&gt;string&lt;/span&gt; html);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;object&lt;/span&gt; InvokeScript(&lt;span style="color: "&gt;string&lt;/span&gt; scriptName, &lt;span style="color: "&gt;params&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt;[] args);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;object&lt;/span&gt; InvokeScript(&lt;span style="color: "&gt;string&lt;/span&gt; scriptName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; SaveToString();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; Uri Source { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;string&lt;/span&gt; Base { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;bool&lt;/span&gt; IsScriptEnabled { &lt;span style="color: "&gt;get&lt;/span&gt;; &lt;span style="color: "&gt;set&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; IsGeolocationEnabled { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;NavigatingEventArgs&amp;gt; Navigating;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;NavigationEventArgs&amp;gt; Navigated;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; LoadCompletedEventHandler LoadCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; NavigationFailedEventHandler NavigationFailed;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#666666"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;event&lt;/span&gt; &lt;span style="color: "&gt;EventHandler&lt;/span&gt;&amp;lt;NotifyEventArgs&amp;gt; ScriptNotify;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="networkPreference"&gt; &lt;/p&gt;
&lt;h2&gt;Network Request Preference and Requirements &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image102.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SocketExtensions and WebRequestExtensions class diagram" border="0" alt="SocketExtensions and WebRequestExtensions class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image102_thumb.png" width="482" height="180"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The new &lt;strong&gt;WebRequestExtensions&lt;/strong&gt; and &lt;strong&gt;SocketExtensions&lt;/strong&gt; classes define extension methods that can be used to associate a specific network interface (e.g. 3G vs. WiFi) with specific network requests. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;WebRequestExtensions&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetNetworkPreference(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; WebRequest request, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            NetworkSelectionCharacteristics preference);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetNetworkRequirement(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; WebRequest request, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            NetworkSelectionCharacteristics requirement);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; NetworkInterfaceInfo GetCurrentNetworkInterface(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; WebRequest request);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;SocketExtensions&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetNetworkPreference(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; Socket socket, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;             NetworkSelectionCharacteristics preference);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetNetworkRequirement(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; Socket socket, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;             NetworkSelectionCharacteristics requirement);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; NetworkInterfaceInfo GetCurrentNetworkInterface(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;             &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; Socket socket);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; AssociateToNetworkInterface(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; Socket socket, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;             NetworkInterfaceInfo networkInterface);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="xboxavatar"&gt; &lt;/p&gt;
&lt;h2&gt;Xbox Live: Render Xbox Live Avatars in XNA &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;With the introduction of &lt;strong&gt;Microsoft.Xna.Framework.Avatar &lt;/strong&gt;assembly it is now possible for &lt;strong&gt;Xbox Live Titles &lt;/strong&gt;to render Xbox Live Avatars using the new AvatarRenderer class. Note, only Xbox Live Titles can use this functionality. Because of that limited subset of apps that have access to this functionality and because of the sheer size of the new assembly we’ll only briefly glance at a class diagram and move on. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image12_thumb_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image12_thumb" border="0" alt="image12_thumb" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image12_thumb_thumb.png" width="755" height="552"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image15_thumb_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image15_thumb" border="0" alt="image15_thumb" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image15_thumb_thumb.png" width="769" height="56"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="xboxAssets"&gt; &lt;/p&gt;
&lt;h2&gt;Xbox Live: Avatar Assets &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image105.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image105" border="0" alt="image105" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image105_thumb.png" width="215" height="173"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Xbox Live-titles (and only xbox live titles) can now take advantage of the new &lt;strong&gt;SignedInGamerExtensions&lt;/strong&gt; and award assets to Xbox Live Avatars. Again, this feature is only available for Xbox-Live titles. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;SignedInGamerExtensions&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IAsyncResult&lt;/font&gt;&lt;/span&gt; BeginAwardAvatarAssets(&lt;/font&gt;&lt;font style="font-size: 12pt"&gt;&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; SignedInGamer gamer, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;[] assetKeys, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AsyncCallback&lt;/font&gt;&lt;/span&gt; callback, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; state);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; EndAwardAvatarAssets(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; SignedInGamer gamer, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IAsyncResult&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; AwardAvatarAssets(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt; SignedInGamer gamer, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;[] assetKeys);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="linqProviders"&gt; &lt;/p&gt;
&lt;h2&gt;Custom Linq Providers &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image111.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Custom LINQ providers class diagram" border="0" alt="Custom LINQ providers class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image111_thumb.png" width="523" height="900"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A core piece of LINQ that has been missing from NoDo was the ability to create custom Linq Providers. With Mango the IQueryProvider and IQueryable interfaces have been added. With the new support for custom LINQ providers it is now possible to use one of the many open source LINQ providers. for more on implementing a custom LINQ provider and the importance of &lt;strong&gt;IQueryProvider&lt;/strong&gt; see Matt Warren’s &lt;a href="http://blogs.msdn.com/b/mattwar/archive/2007/07/30/linq-building-an-iqueryable-provider-part-i.aspx" target="_blank"&gt;LINQ: Building an IQueryable Provider&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IQueryProvider&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        IQueryable CreateQuery(Expression expression);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        IQueryable&amp;lt;TElement&amp;gt; CreateQuery&amp;lt;TElement&amp;gt;(Expression expression);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; Execute(Expression expression);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        TResult Execute&amp;lt;TResult&amp;gt;(Expression expression);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IQueryable&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Expression Expression { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Type&lt;/font&gt;&lt;/span&gt; ElementType { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        IQueryProvider Provider { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The additional classes of EnurableQuery, EnurableQuery&amp;lt;T&amp;gt;, EnurableExecutor, EnumrableExecutor&amp;lt;T&amp;gt; and Queryable are all helper classes used when implementing a custom LINQ provider. We won’t expend on them further in this blog post. &lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="dynamicExpression"&gt; &lt;/p&gt;
&lt;h2&gt;Dynamically compiled Lambda Expressions and Reflection.Emit&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image114.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Expression.Compile() and Reflection.Emit class diagram" border="0" alt="Expression.Compile() and Reflection.Emit class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image114_thumb.png" width="750" height="513"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A small chunk of Refleciton.Emit has been added to Mango in order to enable the &lt;strong&gt;Expression.Compile()&lt;/strong&gt; method. Using Expression.Compile() it is possible to build at runtime an expression tree, compile it and then execute it. All at runtime. We’ll only examine the change to LambdaExpression in greater detail. For more information on this topic see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/bb345362.aspx" target="_blank"&gt;Expression(TDelegate).Compile Method&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;LambdaExpression&lt;/font&gt;&lt;/span&gt; : Expression&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Delegate&lt;/font&gt;&lt;/span&gt; Compile();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#a5a5a5"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; Expression Body { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#a5a5a5"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt" color="#a5a5a5"&gt;        &lt;span style="color: "&gt;public&lt;/span&gt; &lt;span style="color: "&gt;ReadOnlyCollection&lt;/span&gt;&amp;lt;ParameterExpression&amp;gt; Parameters { &lt;span style="color: "&gt;get&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="simd"&gt; &lt;/p&gt;
&lt;h2&gt;mscorib.Extensions: SIMD/ARM-NEON XNA support &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image117.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CodeGenerationAttribute class diagram" border="0" alt="CodeGenerationAttribute class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image117_thumb.png" width="243" height="278"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mango allows to accelerate calculation operations on SIMD/ARM-NEON capable devices. Which means that XNA calculations on Vector, Matrix and other types would be somewhat faster. To take advantage of this new feature apply the attribute wit he SIMD flag on the relevant assemblies. For more on this see &lt;a href="http://konaju.com/?p=34" target="_blank"&gt;Enable SIMD support in Mango&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AttributeUsage&lt;/font&gt;&lt;/span&gt;(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AttributeTargets&lt;/font&gt;&lt;/span&gt;.Assembly)]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;CodeGenerationAttribute&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Attribute&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; CodeGenerationAttribute(CodeGenerationFlags flags);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; CodeGenerationFlags { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Flags&lt;/font&gt;&lt;/span&gt;]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;CodeGenerationFlags&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        EnableFPIntrinsicsUsingSIMD = 1,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="mutex"&gt; &lt;/p&gt;
&lt;h2&gt;mscorlib.Extensions: Mutex&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image120.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Mutex class diagram" border="0" alt="Mutex class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image120_thumb.png" width="234" height="170"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A trimmed down version of Mutex wait handle class has been added to Mango. &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Mutex&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;WaitHandle&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Mutex(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; initiallyOwned, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; name);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; ReleaseMutex();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; WaitOne();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; WaitOne(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; millisecondsTimeout);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="inpcing"&gt; &lt;/p&gt;
&lt;h2&gt;mscorlib.Extensions: INotifyPropertyChanging&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image1231.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="INotifyPropertyChanging class diagram" border="0" alt="INotifyPropertyChanging class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image1231_thumb.png" width="245" height="387"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The INotifyProperyChanging interface has been added as part of Mango. This API is the counterpart for the existing INotifyPropertyChanged interface. Currently the only feature using this new interface is Linq-to-SQL, but we could definitely take advantage of it for other 3rd party usages. For more on that see Claus Konrad’s &lt;a href="http://blog.clauskonrad.net/2011/05/wp771-where-is-inotifiypropertychanging.html" target="_blank"&gt;WP7/7.1: Where is INotifiyPropertyChanging defined?&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;INotifyPropertyChanging&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; PropertyChangingEventHandler PropertyChanging;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;delegate&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; PropertyChangingEventHandler(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; sender, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;         PropertyChangingEventArgs e);&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;PropertyChangingEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; PropertyChangingEventArgs(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; propertyName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; PropertyName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="rsa"&gt; &lt;/p&gt;
&lt;h2&gt;mscorlib.Extensions: RSA Cryptography &lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image126.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="RsaCryptoServiceProvider class diagram" border="0" alt="RsaCryptoServiceProvider class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image126_thumb.png" width="801" height="511"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With Mango the &lt;strong&gt;RsaCryptoServiceProvider &lt;/strong&gt;has been added to enable asymmetric encryption and decryption. For more information on how to use RsaCryptoServiceProvider with a custom server backend see Dustin Horne’s &lt;a href="http://www.dustinhorne.com/post/Asymmetric-Encryption-and-Signing-with-RSA-in-Silverlight.aspx" target="_blank"&gt;Asymmetric Encryption and Signing with RSA in Silverlight&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="sl4bcl"&gt; 
&lt;h2&gt;Silverlight 4: Base-Class Library changes in mscorlib assembly&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;WP7 NoDo was based on Silverlight 3. With the release&amp;nbsp; Mango all the changes done in Silverlight 4 were migrated back to WP7. Most of the changes are in the System.Windows assembly (Silverlight) and the majority of other changes are in the &lt;strong&gt;mscorlib&lt;/strong&gt; BCL (base class library) assembly. All the changes made in Silverlight 4 to the BCL were additions of new members to existing classes. The one exception to that is the removal of the TaiwanCalender class from Mango. The class diagram and code snippets below contain &lt;strong&gt;only &lt;/strong&gt;the new members added to the BCL in Mango. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Silverlight4 BCL changes class diagram" border="0" alt="Silverlight4 BCL changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image3_thumb.png" width="787" height="814"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;AppDomain&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Assembly&lt;/font&gt;&lt;/span&gt;[] GetAssemblies();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BitConverter&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int64&lt;/font&gt;&lt;/span&gt; DoubleToInt64Bits(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Double&lt;/font&gt;&lt;/span&gt; value);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Double&lt;/font&gt;&lt;/span&gt; Int64BitsToDouble(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int64&lt;/font&gt;&lt;/span&gt; value);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;GC&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int32&lt;/font&gt;&lt;/span&gt; MaxGeneration { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; Parse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; ParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; Concat(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;&amp;gt; values);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; Concat&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt; values);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; IsNullOrWhiteSpace(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; value);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; Join(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; separator, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;&amp;gt; values);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; Join&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; separator, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt; values);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; Join(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; separator, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;params&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt;[] values);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; ToString(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; ToString(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; Parse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; ParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;[] formats, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; ParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; ParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpanStyles&lt;/font&gt;&lt;/span&gt; styles);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; ParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;[] formats, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpanStyles&lt;/font&gt;&lt;/span&gt; styles);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;[] formats, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; format, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpanStyles&lt;/font&gt;&lt;/span&gt; styles, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParseExact(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;[] formats, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IFormatProvider&lt;/font&gt;&lt;/span&gt; formatProvider, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpanStyles&lt;/font&gt;&lt;/span&gt; styles, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Type&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; IsNested { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Version&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Version&lt;/font&gt;&lt;/span&gt; Parse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryParse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; input, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Version&lt;/font&gt;&lt;/span&gt; result);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ISymbolDocumentWriter&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetCheckSum(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; algorithmId, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Byte&lt;/font&gt;&lt;/span&gt;[] checkSum);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetSource(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Byte&lt;/font&gt;&lt;/span&gt;[] source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;FlagsAttribute&lt;/font&gt;&lt;/span&gt;]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;TimeSpanStyles&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        AssumeNegative&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;FileStream&lt;/font&gt;&lt;/span&gt; : &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt;, &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Flush(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; flushToDisk);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CopyTo(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; destination);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CopyTo(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; destination, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int32&lt;/font&gt;&lt;/span&gt; bufferSize);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IsolatedStorageFile&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CopyFile(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; sourceFileName, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; destinationFileName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CopyFile(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; sourceFileName, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; destinationFileName, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; overwrite);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; GetCreationTime(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; path);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; GetLastAccessTime(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; path);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DateTimeOffset&lt;/font&gt;&lt;/span&gt; GetLastWriteTime(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; path);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; MoveDirectory(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; sourceDirectoryName, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;             &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; destinationDirectoryName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; MoveFile(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; sourceFileName, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; destinationFileName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IsolatedStorageFileStream&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;FileStream&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Flush(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; flushToDisk);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;StringBuilder&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;StringBuilder&lt;/font&gt;&lt;/span&gt; Clear();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Interlocked&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; CompareExchange(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;ref&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; location1, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; value, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; comparand);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Monitor&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Enter(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; obj, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;ref&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; lockTaken);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; TryEnter(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; obj, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;ref&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; lockTaken);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; TryEnter(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; obj, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt; timeout, &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;ref&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; lockTaken);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; TryEnter(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; obj, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int32&lt;/font&gt;&lt;/span&gt; millisecondsTimeout, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;ref&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; lockTaken);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="sl4sw"&gt; 
&lt;h2&gt;Silverlight 4: System.Windows Silverlight changes&lt;/h2&gt;&lt;/a&gt;
&lt;p&gt;Silverlight 4 is it’s own product release and quite an extensive one at that. We’ll briefly cover the new API added to the &lt;strong&gt;System.Windows&lt;/strong&gt; assembly as part of the Mango upgrade to Silverlight 4. For those of you interested in more details on Silverlight 4 changes from Silverlight 3 see Tim Heuer’s &lt;a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx" target="_blank"&gt;Silverlight 4 Beta – A guide to the new features&lt;/a&gt;. Please note, the API we’ll see in this section is the API that was added in Mango and not all the API in these classes. &lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;System.Collections.ObjectModel &lt;/strong&gt;namespace we’ve got new constructors for the ObservableCollection class that allow to easy convert a standard List&amp;lt;T&amp;gt; to an ObservableCollection&amp;lt;T&amp;gt;. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ObservableCollection changes class diagram" border="0" alt="ObservableCollection changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image6_thumb.png" width="283" height="155"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ObservableCollection&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ObservableCollection&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt;(List list);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ObservableCollection&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt;(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt; collection);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;System.ComponentModel&lt;/strong&gt; namespace we’ve got a few new APIs for databinding and some additions to design-time. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image9_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.ComponentModel changes class diagram" border="0" alt="System.ComponentModel changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image9_thumb_3.png" width="763" height="551"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;AlternateContentPropertyAttribute&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Attribute&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; AlternateContentPropertyAttribute();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DataErrorsChangedEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; DataErrorsChangedEventArgs(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; propertyName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; PropertyName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DesignerProperties&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; RefreshOnlyXmlnsDefinitionsOnAssemblyReplace&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ICollectionViewFactory&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;       &lt;font color="#000000"&gt; &lt;span style="color: "&gt;ICollectionView&lt;/span&gt;&lt;/font&gt; CreateView();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IDataErrorInfo&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; Error { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt;[&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; columnName] { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;IEditableCollectionView&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; CanAddNew { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; CanCancelEdit { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; CanRemove { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; IsAddingNew { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; IsEditingItem { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;NewItemPlaceholderPosition&lt;/font&gt;&lt;/span&gt; NewItemPlaceholderPosition { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; CurrentAddItem { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; CurrentEditItem { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; AddNew();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CancelEdit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CancelNew();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CommitEdit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CommitNew();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; EditItem(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; item);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Remove(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; item);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; RemoveAt(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int32&lt;/font&gt;&lt;/span&gt; index);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;INotifyDataErrorInfo&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; HasErrors { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt; GetErrors(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; propertyName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; ErrorsChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;interface&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ISupportInitialize&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; BeginInit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; EndInit();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;NewItemPlaceholderPosition&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        None,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        AtEnd&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;There are quite a bit of peer automation related changes in the &lt;strong&gt;System.Windows.Automation.*&lt;/strong&gt; namespaces, but since Automation Peers are not supported on WP7 there’s no point in going over those in any great detail.&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;System.Windows namespace&lt;/strong&gt; we have a few changes: Support for the new Tap &amp;amp; Hold &amp;amp; DoubleTap events, programmatic control of the Clipboard, Right-To-Left support and a few others. There are also a few “junk” changes to support features that aren’t supported in Mango and we won’t review those here. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image12_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Windows namespace changes class diagram" border="0" alt="System.Windows namespace changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image12_thumb_4.png" width="632" height="496"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Clipboard&lt;/font&gt;&lt;/span&gt; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; ContainsText();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; GetText();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetText(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; text);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObjectCollection&lt;/font&gt;&lt;/span&gt;&amp;lt;T&amp;gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int32&lt;/font&gt;&lt;/span&gt; IndexOf(T item);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Insert(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Int32&lt;/font&gt;&lt;/span&gt; index, T item);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;NotifyCollectionChangedEventHandler&lt;/font&gt;&lt;/span&gt; CollectionChanged;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;FlowDirection&lt;/font&gt;&lt;/span&gt; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        LeftToRight,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        RightToLeft&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;FrameworkElement&lt;/font&gt;&lt;/span&gt; : &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt; {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;FlowDirection&lt;/font&gt;&lt;/span&gt; FlowDirection { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; FlowDirectionProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; DoubleTap;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; Hold;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; Tap;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextCompositionEventHandler&lt;/font&gt;&lt;/span&gt; TextInput;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextCompositionEventHandler&lt;/font&gt;&lt;/span&gt; TextInputStart;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextCompositionEventHandler&lt;/font&gt;&lt;/span&gt; TextInputUpdate;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; AllowDropProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;RoutedEvent&lt;/font&gt;&lt;/span&gt; DoubleTapEvent;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;RoutedEvent&lt;/font&gt;&lt;/span&gt; HoldEvent;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;RoutedEvent&lt;/font&gt;&lt;/span&gt; TapEvent;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;RoutedEvent&lt;/font&gt;&lt;/span&gt; TextInputEvent;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;RoutedEvent&lt;/font&gt;&lt;/span&gt; TextInputStartEvent;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;RoutedEvent&lt;/font&gt;&lt;/span&gt; TextInputUpdateEvent;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;VisualStateGroup&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;VisualState&lt;/font&gt;&lt;/span&gt; CurrentState { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;System.Windows.Controls &lt;/strong&gt;and &lt;strong&gt;System.Windows.Controls.Primitives &lt;/strong&gt;namespace has a few changes in it: The new ViewBox control, addition of ellipsis (“…”) text trimming to TextBlock, MVVM Button Commanding support, Video playback MediaElement timed markers and a few other features. The really interesting changes here is the introduction of a WP7 API for ScrollViewer.ManipulationMode for fine-tuned scrolling support on the phone. The ScrollViewer additions are exclusive to WP7 Mango. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image15_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Windows.Controls changes class diagram" border="0" alt="System.Windows.Controls changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image15_thumb_4.png" width="787" height="595"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ListBox&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SelectAll();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;MediaElement&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;FrameworkElement&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimelineMarkerCollection&lt;/font&gt;&lt;/span&gt; Markers { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TimelineMarkerRoutedEventHandler&lt;/font&gt;&lt;/span&gt; MarkerReached;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;PasswordBox&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Control&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Double&lt;/font&gt;&lt;/span&gt; BaselineOffset { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ScrollViewer&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ContentControl&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ManipulationMode&lt;/font&gt;&lt;/span&gt; ManipulationMode { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ManipulationMode&lt;/font&gt;&lt;/span&gt; GetManipulationMode(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt; element);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetManipulationMode(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt; element, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ManipulationMode&lt;/font&gt;&lt;/span&gt; manipulationMode);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; ManipulationModeProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ManipulationMode&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Control,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        System&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextBlock&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Double&lt;/font&gt;&lt;/span&gt; BaselineOffset { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextTrimming&lt;/font&gt;&lt;/span&gt; TextTrimming { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; TextTrimmingProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;TextBox&lt;/font&gt;&lt;/span&gt; : &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Control&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Double&lt;/font&gt;&lt;/span&gt; BaselineOffset { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Viewbox&lt;/font&gt;&lt;/span&gt; : &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;FrameworkElement&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; Viewbox();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stretch&lt;/font&gt;&lt;/span&gt; Stretch { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;StretchDirection&lt;/font&gt;&lt;/span&gt; StretchDirection { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt; Child { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; StretchDirectionProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; StretchProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;StretchDirection&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        UpOnly,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        DownOnly,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Both&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In &lt;strong&gt;System.Windows.Documents&lt;/strong&gt; a new RichTextBox control and many supporting classes have been added. We won’t review this control and it’s associated classes in-depth. For more information on this control see MSDN’s &lt;a href="http://msdn.microsoft.com/en-us/library/ee681613(VS.95).aspx" target="_blank"&gt;RichTextBox Overview&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image21_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Windows.Documents RichTextBox class diagram" border="0" alt="System.Windows.Documents RichTextBox class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image21_thumb_3.png" width="737" height="519"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In &lt;strong&gt;System.Windows.Data namespace&lt;/strong&gt; there’s really one thing we care about: The addition of 5 new properties to the {Binding} syntax. There’s also a few other “junk” changes that aren’t applicable for WP7. which we won’t review here.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image27_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Windows.Data Databinding changes class diagram" border="0" alt="System.Windows.Data Databinding changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image27_thumb_3.png" width="252" height="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Binding&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BindingBase&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; ValidatesOnDataErrors { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; ValidatesOnNotifyDataErrors { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;abstract&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;BindingBase&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; FallbackValue { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Object&lt;/font&gt;&lt;/span&gt; TargetNullValue { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; StringFormat { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A big part of the changes done in &lt;strong&gt;System.Windows.Media namespace&lt;/strong&gt; is around the introduction of &lt;strong&gt;VideoSink&lt;/strong&gt; and &lt;strong&gt;AudioSink. &lt;/strong&gt;In WP7 these provide access to the Microphone and Camera which are available through more phone specific APIs so it’s best to avoid these if possible. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image30_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="VideoSink and AudioSink class diagram" border="0" alt="VideoSink and AudioSink class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image30_thumb_3.png" width="671" height="370"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are few interesting changes in the &lt;strong&gt;System.Windows.Media&lt;/strong&gt; namespace: support for Playready DRM &lt;strong&gt;DomainAcquirer&lt;/strong&gt;, support for &lt;strong&gt;RichTextBox&lt;/strong&gt; support for all fonts, The &lt;strong&gt;VideoBrush&lt;/strong&gt; and a &lt;strong&gt;VisualTreeHelper.GetOpenPopups()&lt;/strong&gt; method. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image33_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Windows.Media changes class diagram" border="0" alt="System.Windows.Media changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image33_thumb_3.png" width="651" height="473"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DomainAcquirer&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; DomainAcquirer();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; ChallengeCustomData { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        [&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;SecuritySafeCriticalAttribute&lt;/font&gt;&lt;/span&gt;]&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; CancelAsync();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; JoinDomainAsync(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; serviceId, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; accountId, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt; domainServerUrl, &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; friendlyName);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; LeaveDomainAsync(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; serviceId, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; accountId, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt; domainServerUrl);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; JoinDomainCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;event&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;EventHandler&lt;/font&gt;&lt;/span&gt; LeaveDomainCompleted;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnCancel();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnJoinDomain(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; joinChallenge, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt; domainServerUri);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;virtual&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; OnLeaveDomain(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; leaveChallenge, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt; domainServerUri);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetJoinDomainResponse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; domainResponse);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetLeaveDomainResponse(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;&lt;/span&gt; domainResponse);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DomainOperationCompletedEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;AsyncCompletedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; AccountId { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Guid&lt;/font&gt;&lt;/span&gt; ServiceId { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; ResponseCustomData { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Fonts&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ICollection&lt;/font&gt;&lt;/span&gt; SystemTypefaces { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;Typeface&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; TryGetGlyphTypeface(&lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;GlyphTypeface&lt;/font&gt;&lt;/span&gt; glyphTypeface);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;GlyphTypeface&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Double&lt;/font&gt;&lt;/span&gt; Version { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; FontFileName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;VideoBrush&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;TileBrush&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; VideoBrush();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt; SourceName { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetSource(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;CaptureSource&lt;/font&gt;&lt;/span&gt; source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetSource(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;MediaElement&lt;/font&gt;&lt;/span&gt; source);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;readonly&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyProperty&lt;/font&gt;&lt;/span&gt; SourceNameProperty;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;VisualTreeHelper&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt; GetOpenPopups();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;System.Windows.Input&lt;/strong&gt; namespace has a few interesting additions as-well: 2 new input scopes have been added, fine-grained control of IME (use of Latin keyboards for Asian languages input) and a few other changes. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image36.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="System.Windows.Input changes class diagram" border="0" alt="System.Windows.Input changes class diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/All-new-Windows-Phone-7.5-Mango-API_DF46/image36_thumb.png" width="714" height="488"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="font-family: ; background: white; color: "&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;GestureEventArgs&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;RoutedEventArgs&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; GestureEventArgs();&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Boolean&lt;/font&gt;&lt;/span&gt; Handled { &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;; }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;Point&lt;/font&gt;&lt;/span&gt; GetPosition(&lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;UIElement&lt;/font&gt;&lt;/span&gt; relativeTo);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;ImeConversionModeValues&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Alphanumeric,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Native,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Katakana,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        FullShape,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Roman,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        CharCode,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        NoConversion,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Eudc,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Symbol,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Fixed,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        DoNotCare&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;sealed&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;InputMethod&lt;/font&gt;&lt;/span&gt; : &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ImeConversionModeValues&lt;/font&gt;&lt;/span&gt; GetPreferredImeConversionMode(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt; target);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;InputMethodState&lt;/font&gt;&lt;/span&gt; GetPreferredImeState(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt; target);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetPreferredImeConversionMode(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt; target, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;ImeConversionModeValues&lt;/font&gt;&lt;/span&gt; value);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; SetPreferredImeState(&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;            &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;DependencyObject&lt;/font&gt;&lt;/span&gt; target, &lt;span style="color: "&gt;&lt;font color="#2b91af"&gt;InputMethodState&lt;/font&gt;&lt;/span&gt; value);&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;InputMethodState&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Off,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        On,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        DoNotCare&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt; &lt;span style="color: "&gt;&lt;font color="#0000ff"&gt;enum&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;&lt;span style="color: "&gt;&lt;font style="font-size: 12pt" color="#2b91af"&gt;InputScopeNameValue&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    {&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        NumericPassword,&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;        Formula&lt;/font&gt;&lt;/pre&gt;&lt;pre style="margin: 0px"&gt;&lt;font style="font-size: 12pt"&gt;    }&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href="#toc"&gt;Back to the table of contents&lt;/a&gt;&lt;/i&gt;&lt;a name="sl4sw"&gt; &lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Feedback? Leave a comment! &lt;/h2&gt;
&lt;p&gt;Feedback? Thoughts? Suggestions? Sound off in the comments! &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sincerely, &lt;/p&gt;
&lt;p&gt;-- Justin Angel, &lt;em&gt;Principal Engineer @ Nokia WP7&lt;/em&gt;&lt;/p&gt;</description><a10:updated>2012-02-13T00:00:00-08:00</a10:updated></item><item><guid isPermaLink="false">29</guid><link>http://justinangel.net/Windows8MetroBlog</link><title>MetroBlog: Windows8 Metro Styled Blog</title><description>&lt;p&gt;Hi folks,&lt;/p&gt;  &lt;p&gt;As you might have noticed my blog has undergone a metamorphosis and is now Windows 8 Metro style inspired. It’s also no longer in Silverlight. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Metro Blog Logo" border="0" alt="Metro Blog Logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/MetroBlogLogoBig.png" width="500" height="280" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;What are the top 2 features of this blog? &lt;/h2&gt;  &lt;p&gt;One of the top two features I’m quite excited about is a &lt;strong&gt;home page with flipping tiles&lt;/strong&gt;. If you haven’t seen it yet head on over to &lt;a href="http://JustinAngel.net"&gt;http://JustinAngel.net&lt;/a&gt; and have a look. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Home Page" border="0" alt="Home Page" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image.png" width="835" height="676" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another feature I’m quite enamored with are the interactive sidebar charms: &lt;/p&gt;  &lt;p&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="Side bar Charms description" border="0" alt="Side bar Charms description" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/SidebarDescription.png" width="800" height="481" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What’s the complete featurelist? &lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Posting from &lt;strong&gt;Windows Live Writer&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Tiles Home Page&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Flipping animation&lt;/li&gt;      &lt;li&gt;TwitPic Tiles&lt;/li&gt;      &lt;li&gt;Twitter tile&lt;/li&gt;      &lt;li&gt;Article Tile with Topsy Counter&lt;/li&gt;      &lt;li&gt;Category Tiles&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Sliding Charms Sidebar&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Sliding animation&lt;/li&gt;      &lt;li&gt;Social Networks Sharing&lt;/li&gt;      &lt;li&gt;Interactive Search&lt;/li&gt;      &lt;li&gt;Inline Feeds&lt;/li&gt;      &lt;li&gt;Contact details&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Metro Inspired UI pages&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Home Page&lt;/li&gt;      &lt;li&gt;Category List&lt;/li&gt;      &lt;li&gt;Articles&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Hierarchal article comments&lt;/li&gt;    &lt;li&gt;Back office Management &lt;/li&gt;    &lt;li&gt;RSS 2.0 and Atom 1.0 Feeds&lt;/li&gt;    &lt;li&gt;User Friendly URLs&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SEO:&lt;/strong&gt; Site Map and Robots.txt&lt;/li&gt;    &lt;li&gt;Google Analytics&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Full Source code &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;What technologies were used? &lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;ASP.Net MVC3 Razor View Engine&lt;/strong&gt;: User interface front end.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ASP.Net Dynamic Data&lt;/strong&gt;: The back office management portal. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HeadJS:&lt;/strong&gt; Used to load Javascript files in parallel and add HTML5 cross-browser support with some poly-fills. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;jQuery: &lt;/strong&gt;Javascript minimum bar. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;jQuery.Templates: &lt;/strong&gt;Used to render hierarchical comments at the client side. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;jQuery.Validate&lt;/strong&gt;: Used to validate comments at the client side. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;jQuery.QuickFlip:&lt;/strong&gt; Used to create the flipping home page tiles. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;jQuery.highlightText: &lt;/strong&gt;Used to highlight text during searches. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL Server 2008:&amp;#160; &lt;/strong&gt;Database. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Entity Framework: &lt;/strong&gt;Database OR/M.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MSTest:&lt;/strong&gt; Unit testing framework. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RhinoMocks:&lt;/strong&gt; Unit Test mocking. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Unity:&lt;/strong&gt; Inversion of control framework. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WCF Syndication Services: &lt;/strong&gt;RSS 2.0 and Atom 1.0 feeds.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Starbucks: &lt;/strong&gt;Supplier of caffeine. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;What happened to your Silverlight blog? &lt;/h2&gt;  &lt;p&gt;I consider my online presence to be a playground I can use to experiment with. It’s all about trying new things and figuring out what works and what doesn’t. I consider my &lt;a href="http://justinangel.net/SilverlightWeblogFeaturesOverview" target="_blank"&gt;Silverlight blog&lt;/a&gt; to be a huge success, it worked for 2 years and with the exception of some minor justifiable UX complaints I really liked it. &lt;/p&gt;  &lt;p&gt;You shouldn’t read anything into my personal technology choices. I rewrote this blog because I felt like it.&lt;/p&gt;  &lt;p&gt;Feel free download the Silverlight Weblog @ &lt;a href="http://silverlightweblog.codeplex.com/"&gt;http://silverlightweblog.codeplex.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&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="Silverlight weblog logo" border="0" alt="Silverlight weblog logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_3.png" width="445" height="128" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Is MetroBlog open source? &lt;/h2&gt;  &lt;p&gt;Yes it is. The source code is open source under MS-PL and can be downloaded from codeplex @ &lt;a href="http://MetroBlog.codeplex.com"&gt;http://MetroBlog.codeplex.com&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&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="Codeplex logo" border="0" alt="Codeplex logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_4.png" width="283" height="83" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Tell me more about your home page tiles… &lt;/h2&gt;  &lt;p&gt;The home page actually displays data from multiple data sources (Blog posts, Twitter, TwitPic and Topsy). And by using flipping tiles I’m able to convey more data in the same screen real-estate.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Over here you can see where the &lt;strong&gt;latest blog posts &lt;/strong&gt;come from: &lt;/p&gt;  &lt;p&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://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_5.png" width="835" height="631" /&gt;&lt;/p&gt;  &lt;p&gt;And the Twitter counter &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 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://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_6.png" width="49" height="24" /&gt; comes from &lt;a href="http://topsy.com"&gt;http://topsy.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next we’ve got the &lt;strong&gt;Category tiles for the home page: &lt;/strong&gt;&lt;/p&gt;  &lt;p&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://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_7.png" width="835" height="627" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another data source is &lt;strong&gt;TwitPic&lt;/strong&gt; showing the latest &lt;strong&gt;TwitPics&lt;/strong&gt; on my account: &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 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://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_8.png" width="835" height="623" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And finally there’s a tile with my &lt;strong&gt;latest tweet&lt;/strong&gt;: &lt;/p&gt;  &lt;p&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://justinangel.net/BlogFiles/WindowsLiveWriter/MetroBlog-Windows8-Metro-Styled-Blog_A6FD/image_9.png" width="835" height="625" /&gt;&lt;/p&gt;  &lt;p&gt;The combination of that rich data in a cohesive UX is something that I’m quite happy about. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;Thank You! &lt;/h2&gt;  &lt;p&gt;I’d like to thank the &lt;strong&gt;beta testers&lt;/strong&gt; who helped make this blog significantly better. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://twitter.com/#!/ChrisWalshie" target="_blank"&gt;Chris Walsh (@ChrisWalshie)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/#!/Hades32" target="_blank"&gt;Martin Rauscher (@Hades32)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/#!/amazedsaint" target="_blank"&gt;Anoop Madhusudanan (@amazedsaint)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/#!/Arktronic" target="_blank"&gt;Aleksandr Sasha K. (@Arktronic)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/#!/rodrigue_" target="_blank"&gt;Rodrigue Hajjar (@rodrigue_)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/#!/matthidinger" target="_blank"&gt;Matt Hidinger (@matthidinger)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/#!/choudeshell" target="_blank"&gt;@choudeshell&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’d also like to thank every single open source developer who contributed to the frameworks I’m using. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;Comments? Thoughts? Feedback? Something sucks? &lt;/h2&gt;  &lt;p&gt;Sound off in the comments! Please, I really could use your feedback. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sincerely,&lt;/p&gt;  &lt;p&gt;-- Justin Angel &lt;/p&gt;</description><a10:updated>2011-11-03T00:00:00-07:00</a10:updated></item><item><guid isPermaLink="false">28</guid><link>http://justinangel.net/ReverseEngineerWin8Apps</link><title>Reverse Engineering and Modifying Windows 8 apps</title><description>&lt;p&gt;Hi folks,&lt;/p&gt;  &lt;p&gt;In this article I’ll share the results of ad-hoc security vulnerabilities research I’ve done on windows 8 apps deployment. Specifically, we’ll discuss fundamental design flaws that allow to Reverse Engineer Win8 apps, modification of installed apps and the negative implications on Intellectual Property rights protection, Licensing models and overall PC security. Finally we’ll discuss some creative ideas on how to mitigate these security issues.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Meet the mother-load: C:\Program Files\Applications&lt;/h2&gt;  &lt;p&gt;All Windows 8 applications in the developer preview are installed under the clandestine &lt;em&gt;C:\Program Files\Applications&lt;/em&gt; location. I will hazard a guess and say that once the Windows App Store goes online it will install all apps under that folder. Currently the folder is an invisible one and cannot be accessed from Windows Explorer user interface on a new Win8 developer preview install. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here’s an example of some of the 29 apps Win8 apps installed on the Win8 developer preview: &lt;/p&gt;  &lt;p&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="Print screen of Windows 8 apps start screen" border="0" alt="Print screen of Windows 8 apps start screen" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image.png" width="776" height="519" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And here’s the hidden folder backing it up: &lt;/p&gt;  &lt;p&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="C:\Program Files\applications folder" border="0" alt="C:\Program Files\applications folder" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_3.png" width="822" height="618" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Gaining Access to C:\Program Files\Applications&lt;/h2&gt;  &lt;p&gt;In essence you’ll need to navigate to that folder, hit “Security Tab” and set yourself up as the owner. Let me walk you through that process step-by-step. &lt;/p&gt;        &lt;p&gt;1. Type in “C:\Program Files\Applications” in the Windows Explorer address bar and hit enter. &lt;/p&gt;  &lt;p&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="Typing in C:\Program Files\applications to the address bar" border="0" alt="Typing in C:\Program Files\applications to the address bar" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_4.png" width="278" height="45" /&gt;&lt;/p&gt;  &lt;p&gt;2. Observe in shock and dismay the system dialogue saying you don’t own a folder on your own machine. Hit “Continue”. &lt;/p&gt;  &lt;p&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="You don&amp;#39;t have permission to access this folder dialogue" border="0" alt="You don&amp;#39;t have permission to access this folder dialogue" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions.png" width="427" height="238" /&gt;&lt;/p&gt;  &lt;p&gt;3. After hitting “Continue”, you’ll be confronted by the following dialogue: &lt;/p&gt;  &lt;p&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="you have been denied permission to access this folder dialogue" border="0" alt="you have been denied permission to access this folder dialogue" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions2.png" width="407" height="233" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Do not &lt;/strong&gt;hit “close”, instead click the “security tab” link. &lt;/p&gt;  &lt;p&gt;4. In the following system dialogue click “advanced”. &lt;/p&gt;  &lt;p&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="Security tab for C:\Program Files\Applications" border="0" alt="Security tab for C:\Program Files\Applications" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions3.png" width="388" height="507" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. Click the “change” link in the owner security field. &lt;/p&gt;  &lt;p&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="Advanced Security tab for C:\Program Files\Applications" border="0" alt="Advanced Security tab for C:\Program Files\Applications" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions4.png" width="525" height="275" /&gt;&lt;/p&gt;          &lt;p&gt;6. Add in your live ID or windows 8 user name to the “select user or group” system dialogue. &lt;/p&gt;  &lt;p&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="Select user or group for C:\Program Files\Applications owner" border="0" alt="Select user or group for C:\Program Files\Applications owner" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions5.png" width="497" height="282" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;7. Click “OK”, Click “OK”, Click “Ok”. &lt;/p&gt;  &lt;p&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="j owner of C:\Program Files\Applications" border="0" alt="j owner of C:\Program Files\Applications" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions63.png" width="786" height="536" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;8. Type in “C:\Program Files\Applications” in the Windows Explorer address bar and hit enter. You now have access to the Applications folder. &lt;/p&gt;  &lt;p&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="C:\Program Files\Applications in Windows Explorer" border="0" alt="C:\Program Files\Applications in Windows Explorer" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/AddPermissions7.png" width="822" height="618" /&gt;&lt;/p&gt;        &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What type of apps ship with Windows 8? &lt;/h2&gt;  &lt;p&gt;Looking at this folder it’s fairly easy to determine what type of apps ship with Windows 8 developer preview. &lt;/p&gt;  &lt;p&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="Windows 8 developer preview apps: 29 total, 5 C# XAML, 22 HTML, 2 C++" border="0" alt="Windows 8 developer preview apps: 29 total, 5 C# XAML, 22 HTML, 2 C++" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_5.png" width="572" height="512" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What’s in C:\Program Files\Applications? &lt;/h2&gt;    &lt;p&gt;For HTML apps the folder contains all of their source code and it can modified. &lt;/p&gt;  &lt;p&gt;For C# apps the folder contains the XAML source code and a compiled reverse-engineerable and modifiable version of the C# code. &lt;/p&gt;  &lt;p&gt;For C++ directX apps the folder contains compiled binaries.&amp;#160; Honestly, C++ isn’t my specialty so I’ll avoid discussing it at any great length. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Reverse Engineering HTML &amp;amp; Javscript &amp;amp; CSS Win8 apps&lt;/h2&gt;  &lt;p&gt;There’s a fundamental design flaw in the concept of HTML apps. HTML, Javascript and CSS are all interpreted languages, and not compiled languages. Meaning you have to ship the source code for your app instead of shipping compiled binaries. That puts the Intellectual Property of anyone choosing to write any HTML &amp;amp; JS &amp;amp; CSS only app for any platform under risk. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For example, here’s the HTML source code for the Tweet@rama Win8 app code: &lt;/p&gt;  &lt;p&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="Tweet@rama app folder with page source code in notepad" border="0" alt="Tweet@rama app folder with page source code in notepad" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_6.png" width="892" height="597" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And here’s the tweet@rama Javascript code that does the actual posting to Twitter:&lt;/p&gt;  &lt;p&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="Tweet@rama app folder with page javascript source code in notepad" border="0" alt="Tweet@rama app folder with page javascript source code in notepad" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_7.png" width="885" height="592" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h2&gt;Modifying HTML &amp;amp; Javscript &amp;amp; CSS Win8 apps&lt;/h2&gt;  &lt;p&gt;Part of the problem with interpreted languages is that they don’t compile until the very instance they are executed. Which allows evil-doers to edit the code prior to execution.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For example, here’s a print screen of the tweet@rama default app;&lt;/p&gt;  &lt;p&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="Tweet@rama default visuals pre-modification" border="0" alt="Tweet@rama default visuals pre-modification" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_8.png" width="800" height="547" /&gt;&lt;/p&gt;  &lt;p&gt;Let’s modify the HTML, Javascript and CSS for this application: (for the sake of brevity we’ll only walkthrough a simple HTML change)&lt;/p&gt;  &lt;p&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="Tweet@rama default.html with &amp;quot;Tweet@rama&amp;quot; title" border="0" alt="Tweet@rama default.html with &amp;quot;Tweet@rama&amp;quot; title" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_9.png" width="524" height="157" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&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="Tweet@rama default.html with &amp;quot;Tweet@rama, Justin Angel Edition&amp;quot; title" border="0" alt="Tweet@rama default.html with &amp;quot;Tweet@rama, Justin Angel Edition&amp;quot; title" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_10.png" width="555" height="158" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;By modifying the HTML &amp;amp; CSS &amp;amp; Javascript source code we can change the visual design to something a bit more visually pleasing: &lt;/p&gt;  &lt;p&gt;&amp;#160;&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="Tweet@rama Justinified visuals post-modification" border="0" alt="Tweet@rama Justinified visuals post-modification" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_11.png" width="800" height="601" /&gt;&lt;/p&gt;  &lt;p&gt;Notice that we’ve changed both the design and &lt;strong&gt;behaviour &lt;/strong&gt;of the app by modifying the source code. The new design has a different title, and the new behaviour is using the picture of the logged in user as the background. We have the power to completely change both the visual design and the executing source code of HTML &amp;amp; CSS &amp;amp; JS win8 apps. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;    &lt;h2&gt;New breed of viruses? &lt;/h2&gt;  &lt;p&gt;Any unauthorized malware that gains access to &lt;em&gt;C:\Program Files\Applications &lt;/em&gt;could potentially modify source code to execute in malicious ways. Since this is the direction Win8 apps are taking writing this type of viruses is likely to become a growth industry. &lt;/p&gt;  &lt;p&gt;For example we could look at the tweet@rama app once again. The most valuable asset that app has is our twitter oauth credentials. A virus would be able to modify the tweet@rama source code so once it executes it retrieves those credentials and sends those to a malicious remote endpoint. The following code interjected into the Javascript code of tweet@rama would do just that:&lt;/p&gt;  &lt;p&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="source code to get Tweet@rama&amp;#39;s oatu credentials sent to a remote server" border="0" alt="source code to get Tweet@rama&amp;#39;s oatu credentials sent to a remote server" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_12.png" width="824" height="186" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;New breed of cracks?&lt;/h2&gt;  &lt;p&gt;Any unauthorized executable that gains access to &lt;em&gt;C:\Program Files\Applications &lt;/em&gt;could potentially modify source code to workaround Windows Store app purchasing and licensing logic. The whole concept of Trials and feature purchases are based on Javascript, C# or C++ code invoking Windows 8 RuntimeTime APIs for the Windows Store. Any change to that code could potentially change the purchasing and licensing logic for that app.&lt;/p&gt;  &lt;p&gt;For example, In &lt;a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/APP-123T" target="_blank"&gt;BUILD conference Microsoft’s Arik Cohen demonstrated&lt;/a&gt; (35:25) the following code that performs a Javascript check for isTrial. &lt;/p&gt;  &lt;p&gt;&amp;#160;&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://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_13.png" width="806" height="269" /&gt;&lt;/p&gt;  &lt;p&gt;It would be a trivial endavour to manually edit this Javascript file and remove the “licenseInformation.isTrial” check. And by doing so removing Trial restrictions from this sample Win8 app.    &lt;br /&gt;If this set of problems are not mitigated, app piracy through app modification for Windows Store apps will likely become quite prevalent. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Reverse Engineering C# + XAML Win8 apps&lt;/h2&gt;  &lt;p&gt;C# code is shipped in compiled EXE &amp;amp; DLL binaries. XAML is shipped as plain text source code. That makes both forms of code extremely susceptible to reverse engineering. &lt;/p&gt;  &lt;p&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="C# memories app folder" border="0" alt="C# memories app folder" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_14.png" width="628" height="314" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For example, we could open up the “Memories” (C# WinRT XAML app) MainPage.xaml in &lt;a href="http://kaxaml.com/" target="_blank"&gt;KaXaml&lt;/a&gt; and see the XAML source code: &lt;/p&gt;  &lt;p&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="Memories MainPage.xaml source code" border="0" alt="Memories MainPage.xaml source code" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_15.png" width="601" height="289" /&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Using &lt;a href="http://www.jetbrains.com/decompiler/" target="_blank"&gt;JetBrains dotPeek&lt;/a&gt; it would be possible to see the C# source code for the Memories app: &lt;/p&gt;  &lt;p&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="dotPeek reverse engineering MainViewModel for Memories app" border="0" alt="dotPeek reverse engineering MainViewModel for Memories app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_16.png" width="801" height="649" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Modifying C# + XAML Win8 apps&lt;/h2&gt;  &lt;p&gt;The XAML for Win8 apps is stored in plain-text and can be edited from any text editing tool. The .net binaries are unsigned and thus can be edit using the MSIL Weaving tool &lt;a href="http://reflexil.net/" target="_blank"&gt;Reflexil&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For example, here’s the “Memories” C# XAML app shipping with Windows 8 developer preview: &lt;/p&gt;  &lt;p&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="default visuals for memories app pre-modification" border="0" alt="default visuals for memories app pre-modification" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_17.png" width="941" height="709" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Editing the XAML is fairly trivial since it’s stored as a plain text file:&lt;/p&gt;  &lt;p&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="Default XAML for AlbumsView memories XAML " border="0" alt="Default XAML for AlbumsView memories XAML " src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_18.png" width="540" height="189" /&gt;&lt;/p&gt;  &lt;p&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="Modified AlbumsView.xaml file" border="0" alt="Modified AlbumsView.xaml file" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_19.png" width="545" height="189" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Editing C# can be done using Reflector’s Reflxil MSIL Editor:&lt;/p&gt;  &lt;p&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="Editing Memories MSIL with Reflxil" border="0" alt="Editing Memories MSIL with Reflxil" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_20.png" width="793" height="466" /&gt;&lt;/p&gt;  &lt;p&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="Editing hardcoded text in C#" border="0" alt="Editing hardcoded text in C#" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_21.png" width="558" height="191" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With some light modifications to the XAML and C# code we can change the display and behaviour of the app: &lt;/p&gt;  &lt;p&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="Memories app with XAML and C# modifications" border="0" alt="Memories app with XAML and C# modifications" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_22.png" width="934" height="709" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;              &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Reverse Engineering C++ Win8 apps&lt;/h2&gt;  &lt;p&gt;I’ll confess to not being a strong C++ developer (gasp!) so I’ll keep this brief by showing C++ apps are also susceptible to reverse engineering. It appears that Microsoft’s Store app is written in C++. The most important asset that app would have are the endpoints for the Microsoft store. Opening the &lt;em&gt;C:\Windows\System32\WinStore\WinStoreUI.dll &lt;/em&gt;in notepad and searching for “https” addresses reveals the following URL: &lt;/p&gt;  &lt;p&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="WinStoreUI.dll opened up in Notepad with a URL highlighted" border="0" alt="WinStoreUI.dll opened up in Notepad with a URL highlighted" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_23.png" width="809" height="152" /&gt;&lt;/p&gt;  &lt;p&gt; Following the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=195322&amp;amp;clcid=0x409" target="_blank"&gt;http://go.microsoft.com/fwlink/?LinkId=195322&amp;amp;clcid=0x409&lt;/a&gt; URL leads to a currently inactive URL of &lt;a href="https://services.apps.microsoft.com/browse" target="_blank"&gt;https://services.apps.microsoft.com/browse&lt;/a&gt;. I would hazard a guess that this is the URL currently being used to test the Windows App Store. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What have we conclusively proven during this blog post? &lt;/h2&gt;  &lt;p&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="LOLCat in tie and glasses with caption: Your code, I have proven I have it" border="0" alt="LOLCat in tie and glasses with caption: Your code, I have proven I have it" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_24.png" width="499" height="491" /&gt;&lt;/p&gt;  &lt;p&gt;Keeping in mind that Windows 8 is only an alpha developer release, we’ve seen a couple of disturbing things: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It is possible to reverse engineer and modify HTML, JavaScript and CSS code shipped in Win8 apps.&lt;/li&gt;    &lt;li&gt;It is possible to reverse engineer and modify C#/VB.Net source code shipping with Win8 apps.&lt;/li&gt;    &lt;li&gt;It is possible to reverse engineer and modify XAML source code shipping with Win8 apps.&lt;/li&gt;    &lt;li&gt;It is possible to (at some limited level?) reverse engineer C++ Win8 apps. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Can Microsoft completely solve this problem? &lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;No&lt;/strong&gt;. In my opinion, apps shipping as part of all app stores will always be vulnerable at some limited level to reverse engineering and modification. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Can Microsoft mitigate this problem? &lt;/h2&gt;  &lt;p&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="&amp;quot;The rent is too damn hige&amp;quot; person with caption: Win8 apps are too damn easy to modify" border="0" alt="&amp;quot;The rent is too damn hige&amp;quot; person with caption: Win8 apps are too damn easy to modify" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_25.png" width="380" height="435" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;, Microsoft can make apps significantly more temper-proof and pile a lot of hardships on those seeking to reverse engineer and modify Win8 apps. Assuming malicious code and people can’t access &lt;em&gt;C:\Program Files\Applications &lt;/em&gt;seems naïve at best. &lt;/p&gt;  &lt;p&gt;Here are few suggestions for what some of those potential aforementioned hardships might be:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Obfuscate C#/VB.Net projects by default: &lt;/strong&gt;.net projects default to shipping with unobfuscated source code. If Microsoft is serious about introducing a Windows App store obfuscation has to be turned on by default for all .net project, not just a nice-to-have addon like it is right now. The VS2011 team should investigate and integrate an obfuscation solution directly into the product and turn it on for all new .net projects. This would make it harder to reverse engineer .net apps.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Minify HTML, Javascript and CSS projects by default: &lt;/strong&gt;With the joys of desktop deployment web developers will likely forsake Javascript, HTML and CSS minification. Again, a good path forward here is to make sure all HTML, Jacascript and CSS code is minified by default. This step would make it harder to reverse engineer HTML apps.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Strongly sign all .net assemblies by default: &lt;/strong&gt;Strong-signing has been part of the .net framework for 10 years now. Turn it on by default with a unique developer license certificate for all Win8 .net apps. Make sure Win8 AppContainers only run signed apps, don’t even have a hidden registry key to enable unsigned apps (&lt;a href="http://twitpic.com/6josnn" target="_blank"&gt;like WP7 does&lt;/a&gt;). That would make it harder to modify .net apps.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Checksum HTML, Javascript and CSS project before startup&lt;/strong&gt;: Even if it’s unpreventable that modifying Win8 HTML apps would take place, run a checksum on all files before loading the app into memory.&amp;#160; That would make it harder to modify Win8 HTML apps. It sounds like AppBlockMap.xml is supposed to do something similar, but it doesn’t seem to work.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Don’t store App’s executing files as plain-old files on the user’s hard-drive: &lt;/strong&gt;It shouldn’t be possible to even see the files shipping with an app by default using just Windows Explorer. A lossless compressed folder with DRM protection would be a good step forward here.&amp;#160; This should make it harder to reverse engineer Win8 apps. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; If Microsoft doesn’t undertake the aforementioned steps or comparable ones it’s not because it can’t, it’s because it doesn’t want to. If Microsoft chooses to ignore this problem for the remaining one year (?) development lifecycle for Windows&amp;#160; 8 then it’s not because it couldn’t solve these problems. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Visual Studio 2011 App Deployment&lt;/h2&gt;  &lt;p&gt;Apps deployed by Visual Studio 2011 do not get deployed to &lt;em&gt;C:\Program Files\Applications &lt;/em&gt;but rather get deployed to &lt;em&gt;C:\Users\&amp;lt;UserName&amp;gt;\AppxLayouts.&lt;/em&gt;&lt;/p&gt;  &lt;p&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="Print screen of the C:\Users\JustinAngel\AppxLayouts folder" border="0" alt="Print screen of the C:\Users\JustinAngel\AppxLayouts folder" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_26.png" width="553" height="170" /&gt;&lt;/p&gt;  &lt;p&gt;The alternate location for Visual Studio app deployment and all other app deployment are controlled by the registry folder &lt;em&gt;HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 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://justinangel.net/BlogFiles/WindowsLiveWriter/Hacking-Windows-8-apps_947C/image_27.png" width="801" height="237" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Feedback&lt;/h2&gt;  &lt;p&gt;Have questions about the methodologies used in this article?   &lt;br /&gt;Have more interesting workarounds you’ve tried and like to share?     &lt;br /&gt;Have interesting suggestions for the Microsoft folks on how to help mitigate this problem? &lt;/p&gt;  &lt;p&gt;Sound off in the comments! &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-- Justin Angel&lt;/p&gt;  &lt;p&gt;(Disclaimer: this article represents research I undertook on my own and is unsanctioned by any organizations or corporations I might be related with.)&amp;#160; &lt;/p&gt;</description><a10:updated>2011-09-20T00:00:00-07:00</a10:updated></item><item><guid isPermaLink="false">27</guid><link>http://justinangel.net/WindowsPhone7MarketplaceStatistics</link><title>Windows Phone 7 Marketplace Statistics</title><description>&lt;p&gt;Hi folks,&lt;/p&gt;  &lt;p&gt;We’re all on constant voyage to better understand Windows Phone 7 and its delicate Consumer&amp;lt;-&amp;gt;Developer balance. As part of that education I’ve download all Windows Phone 7 marketplace XAPs, performed analysis on them and am now sharing statistics with you. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Downloading the WP7 Marketplace&lt;/h2&gt;  &lt;p&gt;Some of you must be thinking to yourselves “&lt;em&gt;Self, how exactly did Justin download all WP7 XAPs? And is that ‘ethical’?&lt;/em&gt;&amp;quot;. For the last year or so it’s been well known among WP7 developers that the WP7 marketplace API allows to freely download XAPs. By employing basic network profiling on the Zune Desktop client it’s possible to find the endpoints allowing users to download XAPs. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wpcentral.com/windows-phone-marketplace-app-security-cracked-proof-of-concept-video" target="_blank"&gt;WPCentral&lt;/a&gt; did an article on the topic, and so has &lt;a href="http://wmpoweruser.com/your-wp7-app-xap-file-exposed-here-is-the-microsofts-official-response/" target="_blank"&gt;WMPowerUser&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Proof of concept downloading WP7 XAPs" border="0" alt="Proof of concept downloading WP7 XAPs" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_20.01.09.jpg" width="545" height="378" /&gt;&lt;/p&gt;  &lt;p&gt;Using the techniques described by Brandon Watson’s “&lt;a href="http://www.manyniches.com/windows-phone/crawling-the-windows-phone-marketplace/" target="_blank"&gt;Crawling the Windows Phone Marketplace&lt;/a&gt;” blog post and Den Delimarsky’s “&lt;a href="http://dotnet.dzone.com/articles/windows-phone-marketplace-your" target="_blank"&gt;Windows Phone Marketplace (free apps) in your pocket&lt;/a&gt;” blog post I downloaded the entire WP7 marketplace to my local machine for the purpose of producing statistics. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SS-2011-09-04_20.09.05" border="0" alt="SS-2011-09-04_20.09.05" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_20.09.05.jpg" width="400" height="480" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Is the Marketplace API permanently public? &lt;/h2&gt;  &lt;p&gt;No. Starting with Mango all WP7 XAPs downloaded from the Zune Catalogue are going to be DRM encrypted. So, Mid-August was a great time to start downloading the marketplace and perform freeform analytics. In the Mango versions of the Zune Catalogue XAPs are still downloadable, but cannot be explored since they’re DRM protected. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SS-2011-09-04_20.14.25" border="0" alt="SS-2011-09-04_20.14.25" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_20.14.25.jpg" width="449" height="180" /&gt;&lt;/p&gt;  &lt;p&gt;I suspect this blog post is going to be the first and last independent analysis performed by a 3rd party on the Windows Phone 7 marketplace. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Statistic #0: How Many apps in the marketplace?&lt;/h2&gt;  &lt;p&gt;We often here numbers on the quantity of the overall Windows Phone 7 Marketplace. Latest numbers shared on a multitude of websites called out 30,000+ apps in the WP7 marketplace. Unfortunately, I could not locate all these apps through the Zune Catalogue. That means that either everyone has the wrong number, or I did something wrong. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.windowsphoneapplist.com/stats/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Graph from windowsphoneapplist.com showing 30,000+ WP7 apps" border="0" alt="Graph from windowsphoneapplist.com showing 30,000+ WP7 apps" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_20.23.45.jpg" width="577" height="374" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this blog post we will only be analyzing &lt;strong&gt;24,505 applications &lt;/strong&gt;available on August 14th 2011. Those are either all WP7 apps, or these are hopefully a representative sample group of the entire WP7 marketplace. One option is that the WP7 marketplace has 6,000 apps than previously publicized by 3rd parties. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Statistic #1: Obfuscated Apps vs. Not obfuscated apps&lt;/h2&gt;  &lt;p&gt;Since the current WP7 marketplace allows downloading XAPs you might ask yourself “&lt;em&gt;Hey myself, Justin is making me uncomfortable. My apps aren’t obfuscated. Am I alone?”. &lt;/em&gt;Rest assured that you are in-fact not alone and &lt;strike&gt;97%&lt;/strike&gt; 85.5% of Marketplace apps aren’t obfuscated. For those unaware &lt;strong&gt;Obfuscation is &lt;/strong&gt;essentially scrambling source code prior to shipping it with the goal of making it difficult to reverse engineer. Apps that are obfuscated would be significantly harder to reverse engineer. &lt;/p&gt;  &lt;p&gt;The common (and only?) obfuscation tool for WP7 is &lt;a href="http://www.preemptive.com/products/dotfuscator/overview" target="_blank"&gt;DotObfuscator&lt;/a&gt;. &lt;strike&gt;The use of DotObfuscator often leaves files with the “DotObfuscator” brand in the final XAP. As a result we can easily iterate over all XAPs and see which one is obfuscated and which is not. &lt;/strike&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update 10/3/2010:&lt;/strong&gt; Sebastian Holst of PreEmptive has done a similar analysis to mine by downloading the entire WP7 Marketplace and found the real number of obfuscated XAPs to be 14.5% of the entire WP7 marketplace. Instead of looking for&amp;#160; XAPs with “Dotfuscator” files ,&amp;#160; Sebastian looked for the [&lt;em&gt;DotfuscatorAttribute&lt;/em&gt;] in the app binaries.&amp;#160; That’s a significantly better metric to measure the total number of obfuscated apps in the WP7 marketplace. Read more about Sebastian’s analysis on his &lt;a href="http://apps-are-people-too.blogspot.com/2011/09/wp7-marketplace-share-or-how-we-became.html" target="_blank"&gt;great blog post on the topic&lt;/a&gt;. &lt;/p&gt;  &lt;p&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="Graph with WP7 marketplace obfuscation statistics: 3% obfuscated apps, 97% not obfuscated" border="0" alt="Graph with WP7 marketplace obfuscation statistics: 3% obfuscated apps, 97% not obfuscated" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/image_7.png" width="520" height="480" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Statistic #2: Silverlight vs. XNA &lt;/h2&gt;  &lt;p&gt;When discussing the Windows Phone 7 dev ecosystem there’s always the friendly collaboration between XNA devs and Silverlight devs. The way I understand the XNA and Silverlight divide is that XNA is great for games and Silverlight is great for everything else. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Slide explaining Silverlight vs. XNA" border="0" alt="Slide explaining Silverlight vs. XNA" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_20.42.06.jpg" width="637" height="322" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The question then arises, what’s the adoption of both technologies in the Windows Phone 7 Marketplace? &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Silverlight vs. XNA pie chart" border="0" alt="Silverlight vs. XNA pie chart: XNA 10%, Silverlight 90%" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/image.png" width="629" height="561" /&gt;&lt;/p&gt;  &lt;p&gt;Silverlight accounts for 90%~ of the Windows Phone 7 marketplace and XNA accounts for 10%. &lt;/p&gt;  &lt;p&gt;It’s important for me personally to note that this isn’t a victory or something to lord over XNA devs. XNA is an important piece of the WP7 ecosystem and a critical part of the consumer landscape. As a friend of mine anecdotally said “&lt;em&gt;All the great informative apps in the world don’t matter if you don’t have Angry Birds”&lt;/em&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Statistic #3: Programming Language of choice&lt;/h2&gt;  &lt;p&gt;Ever since .net came into existence there has been a healthy tension between C# and VB.Net developers. By looking at which XAPs contain &lt;em&gt;Microsoft.VisualBasic.dll &lt;/em&gt;and &lt;em&gt;FSharp.Core.dll &lt;/em&gt;we can learn what programming language is used by WP7 apps.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Pie chart showing the split between C#, VB.Net and F# Apps:" border="0" alt="Pie chart showing the split between C#, VB.Net and F# Apps: C# 99%, VB.Net 1%, F# 0%" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/image_3.png" width="553" height="433" /&gt;&lt;/p&gt;  &lt;p&gt;With the entire WP7 marketplace only 1% of apps is written in VB.Net. Additionally, amongst Top 2,000 WP7 apps there no apps written in VB.Net or F#. &lt;/p&gt;  &lt;p&gt;One possible explanation to this disparity between C# and VB.Net &amp;amp; F# is that the WP7 V1 tools didn’t officially support VB.Net and F#. While it was technically possible to develop WP7 apps with VB.Net and F#, it wasn’t supported as a project type in the default WP7 V1 developer tools installation. Mango developer tools will be shipping with full WP7 VB.Net support. With that, we’ll likely see am uptake in VB.Net WP7 adoption. I hope. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Statistic #4: Cloned Apps &lt;/h2&gt;  &lt;p&gt;The following issue is a bit more complex to understand. There are a group of apps in the marketplace that are essentially the same app published multiple times with slightly different behaviour or data. In essence each XAP contains DLLs and if 2 XAPs have the same DLLs then they will be functionally quite similar. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="XAP contents for Jutin&amp;#39;s United Nations News app" border="0" alt="XAP contents for Jutin&amp;#39;s United Nations News app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_20.51.02.jpg" width="605" height="486" /&gt;&lt;/p&gt;  &lt;p&gt;By comparing the contents of all Windows Phone 7 XAPs with each other we can determine which apps are “cloned” with some limited certainty. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Bar chart showing cloned app statistics" border="0" alt="Bar chart showing cloned app statistics" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/image_4.png" width="689" height="451" /&gt;&lt;/p&gt;  &lt;p&gt;The WP7 Marketplace has 925 clones apps repeating themselves all in total 6,881 times. Roughly 20%+ of the WP7 marketplace is the same app published many times. For example the top cloned WP7 app repeats itself 570 times, the 2nd top cloned WP7 app repeats itself 553 times and the 3rd top cloned WP7 app repeats itself 408 times. &lt;/p&gt;  &lt;p&gt;By counting each cloned WP7 apps just once, we can reveal that there are only&lt;strong&gt; 18,549 unique apps&lt;/strong&gt; in the WP7 marketplace. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Side-note: Why clone apps? &lt;/h2&gt;  &lt;p&gt;Let’s avoid a witch-hunt right here and now. There are perfectly legitimate reasons to clone apps. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Monty Python and the holy grail, Witch Hunt. She weighs as much as a duck. " border="0" alt="Monty Python and the holy grail, Witch Hunt. She weighs as much as a duck." src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_21.02.16.jpg" width="640" height="351" /&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Books / Magazines: &lt;/strong&gt;All mobiles marketplaces currently do not perform a content catalogue based search for apps. When searching a mobile marketplace for “Ulysess” unless that exact pharse is in the title or description of an App you won’t find the masterpiece written by Lord Alfred Tennyson. App vendors are thus forced to create multiple apps with the same execution paths and slightly different name and data.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DIY apps: &lt;/strong&gt;Many organizations want a simple no-frills WP7 RSS based app. By using the same codebase and slightly different RSS points we’re effectively lowering the barrier of entrance into a mobile marketplace.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lite vs. Full vs. Trial vs. Free apps: &lt;/strong&gt;The WP7 marketplace does a bad job highlighting Trial apps. &lt;a href="http://blogs.silverarcade.com/silverlight-games-101/13/silverlight-writing-a-windows-phone-7-game-have-a-fallback-plan/"&gt;Bill Reiss&lt;/a&gt; eloquently penned that case a few months ago. WP7 App developers are forced to ship multiple versions of the same app for better searchability in the WP7 Marketplace.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Many other valid reasons &lt;/strong&gt;exist to why apps are cloned. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For a good example I point to the “Traffic Cameras” apps that does make sense to highlight their unique localization. The core issue is the lack of support in Mobile Marketplaces for the concept of app&amp;#160; “flavours”. &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Clone Report showing 13 cloned Traffic Cameras apps" border="0" alt="Clone Report showing 13 cloned Traffic Cameras apps" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_21.14.35.jpg" width="402" height="406" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Side Note: “But Justin, What about iPhone? It’s magical!” &lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;p&gt;On June 16th 2011 WWDC conference Apple shared with iOS devs &lt;a href="http://www.ipadjailbreak.com/2011/05/half-million-ios-apps-approved.html" target="_blank"&gt;the following information&lt;/a&gt;: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ipadjailbreak.com/2011/05/half-million-ios-apps-approved.html" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="iOS app categories: Book at 14%" border="0" alt="iOS app categories: Book at 14%" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_21.25.07.jpg" width="533" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note how the “Books” category takes up 14% of the iOS marketplace. That’s approximately 60,000 apps. Anyone thinking there are 60,000 kindle/ibooks competitors on iOS is on crack. These are all cloned apps. &lt;/p&gt;  &lt;p&gt;Based on &lt;a href="http://www.windowsphoneapplist.com/stats/" target="_blank"&gt;http://www.windowsphoneapplist.com/stats/&lt;/a&gt; the WP7 “Books”category has the same 15% share as it has on iOS. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.windowsphoneapplist.com/stats/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="WP7 Marketplace App categories: Books at 15%" border="0" alt="WP7 Marketplace App categories: Books at 15%" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_21.26.48.jpg" width="576" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Statistic #5: Publisher contribution to the overall marketplace&lt;/h2&gt;  &lt;p&gt;When looking at the entire Windows Phone 7 app landscape we get the rare opportunity to ask: &lt;em&gt;Who contributes more? Single app developers or companies publishing 50+ apps? &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Chart showing distribution between publishers" border="0" alt="Chart showing distribution between publishers" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/image_5.png" width="738" height="521" /&gt;&lt;/p&gt;  &lt;p&gt;Well, the answer is surprising in terms of quantity The Micro-publishers and Small Publishers each publishing less than 10 apps account for 60%+ of the WP7 Marketplace size. The larger publishers only contribute 1/3 of the total size of the WP7 marketplace. &lt;/p&gt;  &lt;p&gt;But in terms of quantity what is the relative contribution of each of publishers to the top 2000 apps? (hopefully measuring app quality)&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Chart showing distribution between publishers in top 2k apps" border="0" alt="Chart showing distribution between publishers in top 2k apps" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/image_6.png" width="738" height="521" /&gt;&lt;/p&gt;  &lt;p&gt;Exactly 75% of the top 2,000 “popular” WP7 apps are created by publishers shipping 10 or less apps. Proving once again that focusing in on a few defined objectives leads to better overall quality. &lt;/p&gt;  &lt;p&gt;Both the smaller publishers and the larger publishers are important parts of the WP7 developer ecosystem. Without the smaller publishers we wouldn’t have as many quality titles; and without the larger publishers we would lack the reach to appeal to all consumers. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Statistic #6: Top 55 Windows Phone 3rd party libraries&lt;/h2&gt;  &lt;p&gt;Another interesting developer question that could only be answered from inspecting XAPs is: &lt;strong&gt;&lt;em&gt;&lt;font size="4"&gt;Who Da Man?&lt;/font&gt; &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="The dalai lama saying You Da Man" border="0" alt="The dalai lama saying You Da Man" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_22.24.40.jpg" width="226" height="338" /&gt;&amp;#160;&amp;#160; &lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Jesus saying &amp;#39;You Da Man&amp;#39;" border="0" alt="Jesus saying &amp;#39;You Da Man&amp;#39;" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-04_22.27.04.jpg" width="389" height="338" /&gt;&lt;font size="1"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Many of us work to create 3rd Party frameworks in the WP7 ecosystem to be used by other developers. Some work for commercial companies, and others do so just for passion and joy. By inspecting the content of all WP7 marketplace XAPs we can know how many times each assembly is used. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Phone 7 Top optional assemblies, in descending usage order&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you’re unfamiliar with any of these frameworks, stop being ignorant and click the link.    &lt;br /&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Microsoft’s WP7 Controls SDK&lt;/strong&gt;:&amp;#160; Ships with the WP7 developers tools and must be consumed by all apps using Panoramas and/or Pivots.       &lt;br /&gt;&lt;em&gt;Microsoft.Phone.Controls.dll&lt;/em&gt; is used 14,848 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s WP7&lt;/strong&gt; &lt;a href="http://Silverlight.codeplex.com" target="_blank"&gt;&lt;strong&gt;Silverlight Toolkit&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;Ships with a bunch of useful controls.       &lt;br /&gt;&lt;em&gt;Microsoft.Phone.Controls.Toolkit.dll &lt;/em&gt;is used by 11,169 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Expression Blend Behaviours and Triggers:&lt;/strong&gt;&amp;#160; Great for integrating visual designers and creative developers into WP7 user experience design.       &lt;br /&gt;&lt;em&gt;System.Windows.Interactivity.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 6,010 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.Expression.Interactions.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 4,150 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s &lt;/strong&gt;&lt;a href="http://advertising.microsoft.com/mobile-apps" target="_blank"&gt;&lt;strong&gt;Advertising SDK for WP7&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Microsoft’s own Advertising infrastructure for WP7 PubCenter.       &lt;br /&gt;&lt;em&gt;Microsoft.Advertising.Mobile.UI.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 5,760 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.Advertising.Mobile.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 869 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.Advertising.Mobile.Xna.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 707 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Bing Maps WP7 SDK:&lt;/strong&gt; Fully featured interactive Bing Maps control for WP7 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.Phone.Controls.Maps.dll&lt;/em&gt;&amp;#160;&lt;em&gt;&lt;/em&gt;is used by 2,235 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Peter Torr’s &lt;/strong&gt;&lt;a href="http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx" target="_blank"&gt;&lt;strong&gt;LazyListBox&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;Workaround the terribleness of WP7 and NoDo Scrolling performance by using LazyListBox.       &lt;br /&gt;&lt;em&gt;LazyListBox.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 1,364 apps.       &lt;br /&gt;&lt;em&gt;UIExtensionMethods.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 1,362 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Simon Mourier’s &lt;/strong&gt;&lt;a href="http://htmlagilitypack.codeplex.com/" target="_blank"&gt;&lt;strong&gt;HTML Agility Pack&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;“HTML parser that builds a read/write DOM tree”.       &lt;br /&gt;&lt;em&gt;HtmlAgilityPack.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 1,331 apps.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Laurent Bugnion’s &lt;/strong&gt;&lt;a href="http://mvvmlight.codeplex.com/" target="_blank"&gt;&lt;strong&gt;MVVM Light&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “The MVVM Light Toolkit is a set of components helping people to get started in the Model - View - ViewModel pattern in Silverlight and WPF”. My personal MVVM Toolkit of preference.       &lt;br /&gt;&lt;em&gt;GalaSoft.MvvmLight.WP7.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 1,320 apps.       &lt;br /&gt;&lt;em&gt;GalaSoft.MvvmLight.Extras.WP7.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 1,243 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Flurry’s &lt;/strong&gt;&lt;a href="http://www.flurry.com/product/appcircle/index.html" target="_blank"&gt;&lt;strong&gt;Ads and Analytics SDK&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “Flurry Analytics delivers powerful insight into how consumers interact with your mobile applications in real-time. Performance-based traffic acquisition and monetization network”.       &lt;br /&gt;&lt;em&gt;FlurryWP7SDK.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 1,283 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;James Newton-King’s &lt;/strong&gt;&lt;a href="http://json.codeplex.com/"&gt;&lt;strong&gt;JSON.net&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; The premiere JSON framework used by WP7 developers. It’s awesome. Stop using the built-in stuff.       &lt;br /&gt;&lt;em&gt;Newtonsoft.Json.WindowsPhone.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 1,082 apps.       &lt;br /&gt;&lt;em&gt;Newtonsoft.Json.Silverlight.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 584 apps.       &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;For comparison WP7’s native JSON Framework is nearly completely abandoned by WP7 devs:&amp;#160;&amp;#160; &lt;br /&gt;&lt;em&gt;System.Runtime.Serialization.Json.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 12 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Clint Rutkas's &lt;/strong&gt;&lt;a href="http://coding4fun.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Coding4Fun Tools&lt;/strong&gt;&lt;/a&gt;:&amp;#160; Awesome controls built by the good people at Coding4Fun.       &lt;br /&gt;&lt;em&gt;Coding4Fun.Phone.Controls.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 800 apps.       &lt;br /&gt;&lt;em&gt;Coding4Fun.Phone.Controls.Toolkit.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 305 apps.       &lt;br /&gt;&lt;em&gt;Coding4Fun.Phone.Site.Controls.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 164 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Daniel Crenna’s &lt;/strong&gt;&lt;a href="https://github.com/danielcrenna/hammock" target="_blank"&gt;&lt;strong&gt;Hammock&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; The premiere REST framework used by WP7 developers. “Hammock's philosophy is simple: &lt;em&gt;REST, easy.”&lt;/em&gt;       &lt;br /&gt;&lt;em&gt;Hammock.WindowsPhone.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 741 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;David Anson’s &lt;/strong&gt;&lt;a href="http://blogs.msdn.com/b/delay/archive/2010/09/08/never-do-today-what-you-can-put-off-till-tomorrow-deferredloadlistbox-and-stackpanel-help-windows-phone-7-lists-scroll-smoothly-and-consistently.aspx" target="_blank"&gt;&lt;strong&gt;Phone Performance Helpers&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Shipping with DeferredLoadListBox and LowProfileImageLoader David’s code has been invaluable in many apps creating scrollable lists with Images.       &lt;br /&gt;&lt;em&gt;PhonePerformance.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 705 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s WCF RSS Library&lt;/strong&gt;:&amp;#160; The premiere RSS framework used by WP7 developers.       &lt;br /&gt;&lt;em&gt;System.ServiceModel.Syndication.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 670 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Smooth Streaming Player (SSME): &lt;/strong&gt;WP7 Smooth Streaming video player.       &lt;br /&gt;&lt;em&gt;Microsoft.Web.Media.SmoothStreaming.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 604 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Jim Zimmerman and&lt;/strong&gt; &lt;strong&gt;Microsoft’s Nathan Totten’s &lt;/strong&gt;&lt;a href="http://facebooksdk.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Facebook C# SDK&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “The Facebook C# SDK helps .Net developers build web, desktop, Silverlight, and Windows Phone 7 applications that integrate with Facebook.”       &lt;br /&gt;&lt;em&gt;Facebook.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 603 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Alex Yakhnin &lt;/strong&gt;&lt;a href="http://archive.msdn.microsoft.com/wp7controls" target="_blank"&gt;&lt;strong&gt;Unofficial Windows Phone 7 Controls and Components&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;Custom controls for WP7: List Picker, Scrollable TextBlock, Progress Indicator and Picker Box.       &lt;br /&gt;Phone.Controls.dll &lt;em&gt;&lt;/em&gt;is used by 564 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-phone.aspx" target="_blank"&gt;&lt;strong&gt;Telerik’s WP7 SDK&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “RadControls for Windows Phone are designed to speed up the development of Windows Phone apps and provide an array of controls and capabilities that are not available in the UI Toolbox for Windows Phone 7 and not even in the OS.”       &lt;br /&gt;&lt;em&gt;Telerik.Windows.Core.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 557 apps.       &lt;br /&gt;&lt;em&gt;Telerik.Windows.Controls.Primitives.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 555 apps.       &lt;br /&gt;&lt;em&gt;Telerik.Windows.Controls.Input.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 367 apps.       &lt;br /&gt;&lt;em&gt;Telerik.Windows.Data.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 194 apps.       &lt;br /&gt;&lt;em&gt;Telerik.Windows.Controls.DataVisualization.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 124 apps.       &lt;br /&gt;&lt;em&gt;Telerik.Windows.Controls.Chart.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 27 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Google’s &lt;/strong&gt;&lt;a href="http://googlemobileads.blogspot.com/2011/03/new-beta-admob-windows-phone-7-sdk.html" target="_blank"&gt;&lt;strong&gt;AdMob WP7 SDK&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;WP7 ad provider from Google.       &lt;br /&gt;&lt;em&gt;Google.AdMob.Ads.WindowsPhone7.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 542 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Sebastian Stehle’s &lt;/strong&gt;&lt;a href="http://imagetools.codeplex.com/" target="_blank"&gt;&lt;strong&gt;ImageTools&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “ImageTools for Silverlight is a library, which provides additional functionality for loading, saving and manipulation images from different sources and with different formats.”       &lt;br /&gt;&lt;em&gt;ImageTools.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 490 apps.       &lt;br /&gt;&lt;em&gt;PhoneCodeContractsAssemblies.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 480 apps. (used by ImageTools and exclusively consumed by ImageTools.)       &lt;br /&gt;&lt;em&gt;ImageTools.IO.Png.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 457 apps.       &lt;br /&gt;&lt;em&gt;ImageTools.IO.Gif.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 454 apps.       &lt;br /&gt;&lt;em&gt;ImageTools.Utils.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 454 apps.       &lt;br /&gt;&lt;em&gt;ImageTools.IO.Bmp.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 208 apps.       &lt;br /&gt;&lt;em&gt;ImageTools.IO.Jpeg.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 193 apps.       &lt;br /&gt;&lt;em&gt;ImageTools.Controls.dll&lt;/em&gt;&amp;#160;&lt;em&gt;&lt;/em&gt;is used by 122 apps.       &lt;br /&gt;&lt;em&gt;ImageTools.Filtering.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 42 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Silverlight Desktop Controls SDK: &lt;/strong&gt;The Silverlight Desktop Toolkit and Silverlight Desktop SDK .       &lt;br /&gt;&lt;em&gt;System.Windows.Controls.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 484 apps.&amp;#160; &lt;br /&gt;&lt;em&gt;System.Windows.Controls.Layout.Toolkit.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 191 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SharpDevelop’s &lt;/strong&gt;&lt;a href="http://www.icsharpcode.net/opensource/sharpziplib/" target="_blank"&gt;&lt;strong&gt;#ziplib&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;“Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform.”       &lt;br /&gt;&lt;em&gt;ICSharpCode.SharpZLib.Phone.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 432 apps.       &lt;br /&gt;&lt;em&gt;ICSharpCode.SharpZipLib.WindowsPhone.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 406 apps.       &lt;br /&gt;&lt;em&gt;ICSharpCode.SharpZipLib.Silverlight.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 14 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Expression Blend PathListBox:&lt;/strong&gt; “Contains a list of items that are laid out along one or more paths.”       &lt;br /&gt;&lt;em&gt;Microsoft.Expression.Controls.Fxg.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 395 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s MEF on WP7:&lt;/strong&gt; &lt;a href="http://www.damonpayne.com/post/2010/06/25/MEF-for-Windows-Phone-7.aspx" target="_blank"&gt;Damon Payne&lt;/a&gt; recompiled Microsoft’s Composition framework to WP7.       &lt;br /&gt;&lt;em&gt;System.ComponentModel.Composition.dll&lt;/em&gt; is used by&lt;em&gt; &lt;/em&gt;398 apps.       &lt;br /&gt;&lt;em&gt;System.ComponentModel.Composition.Initialization.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 393 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Michael Scherotter’s &lt;/strong&gt;&lt;a href="http://msaf.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Silverlight Analytics Framework&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “Extensible Web Analytics Framework for Microsoft Silverlight, WPF, and Windows Phone 7 Applications.”       &lt;br /&gt;&lt;em&gt;Microsoft.WebAnalytics.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 373 apps.       &lt;br /&gt;&lt;em&gt;Google.WebAnalytics.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 363 apps. (Google Analytics support)       &lt;br /&gt;&lt;em&gt;Microsoft.WebAnalytics.Behaviors.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 231 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.WebAnalytics.Navigation.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 35 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.WebAnalytics.Controls.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 12 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Matt Lacey’s &lt;/strong&gt;&lt;a href="http://tombstonehelper.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Tombstone Helper&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Super simple UI Tombstoning support. “Adds extension methods to PhoneApplicationPage so you don't have to worry about maintaining the state of a page in your app if it gets tombstoned.”       &lt;br /&gt;&lt;em&gt;TombstoneHelper.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 307 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Jeremy Likness’s&lt;/strong&gt; &lt;a href="http://sterling.codeplex.com" target="_blank"&gt;&lt;strong&gt;Sterling OODB&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Top Local Storage DB for WP7. “Sterling is a lightweight NoSQL object-oriented database for .Net 4.0, Silverlight 4 and 5, and Windows Phone 7 that works with your existing class structures.”       &lt;br /&gt;&lt;em&gt;Wintellect.Sterling.WindowsPhone.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 294 apps.       &lt;br /&gt;&lt;em&gt;Wintellect.Sterling.WindowsPhone.IsolatedStorage.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 40 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft Research’s &lt;a href="http://research.microsoft.com/en-us/projects/contracts/userdoc.pdf" target="_blank"&gt;Code Contracts [PDF]&lt;/a&gt;&lt;/strong&gt;: “Contracts allow you to express preconditions, postconditions and object invariants in your code for runtimechecking, static analysis, and documentation.”       &lt;br /&gt;&lt;em&gt;Microsoft.Contracts.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 292 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s XML Serialization: &lt;/strong&gt;&amp;quot;Contains classes that are used to serialize objects into XML format documents or streams.”       &lt;br /&gt;System.Xml.Serialization.dll &lt;em&gt;&lt;/em&gt;is used by 218 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Alan Mendelevich’s &lt;/strong&gt;&lt;a href="http://www.adduplex.com/" target="_blank"&gt;&lt;strong&gt;AdDuplex SDK&lt;/strong&gt;&lt;/a&gt;: “So, you have a great Windows Phone app or game and you are ready to make a million selling it or showing ads in it. That's great. The key to success is getting people to see your great app. That's where AdDuplex comes in. Promote your app for free by helping fellow developers promote theirs.”       &lt;br /&gt;&lt;em&gt;AdDuplex.AdControl.Silverlight.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 216 apps.       &lt;br /&gt;&lt;em&gt;AdDuplex.Xna.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 50 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Noah Hart’s &lt;/strong&gt;&lt;a href="http://code.google.com/p/csharp-sqlite/" target="_blank"&gt;&lt;strong&gt;C#-SQLite&lt;/strong&gt;&lt;/a&gt;: “C#-SQLite is an independent reimplementation of the SQLite software library. SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.”       &lt;br /&gt;&lt;em&gt;Community.CsharpSqlite.WP.dll&lt;/em&gt;&amp;#160;&lt;em&gt;&lt;/em&gt;is used by 206 apps.       &lt;br /&gt;&lt;em&gt;Community.CsharpSqlite.SqlLiteClient.WP7.dll &lt;/em&gt;&lt;em&gt;&lt;/em&gt;is used by 38 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Davide Zordan, Laurent Bugnion and David Kelley’s &lt;/strong&gt;&lt;a href="http://multitouch.codeplex.com/" target="_blank"&gt;&lt;strong&gt;WP7 MultiTouch Framework&lt;/strong&gt;&lt;/a&gt;: “Silverlight / Windows Phone Behaviors and WPF samples implementing Multi-Touch Manipulation (Gestures) and Inertia.”       &lt;br /&gt;&lt;em&gt;MultiTouch.Behaviors.WP7.dll&lt;/em&gt; &lt;em&gt;&lt;/em&gt;is used by 206 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;José Ángel’s &lt;/strong&gt;&lt;a href="http://widgetlibrary.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Widget Library for WP7&lt;/strong&gt;&lt;/a&gt;: “Create Windows Phone 7 apps using HTML, CSS and Javascript over the WebBroweser control inside the phone.”       &lt;br /&gt;&lt;em&gt;WidgetLibrary.dll&lt;/em&gt; is used by 200 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s &lt;/strong&gt;&lt;a href="http://smf.codeplex.com" target="_blank"&gt;&lt;strong&gt;Media Platform Player Framework for WP7&lt;/strong&gt;&lt;/a&gt;: Great drag &amp;amp; drop fully featured video player for WP7 that supports EVERYTHING (Smooth Streaming, subtitles, audio tracks, 3D and just about anything video related).       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Compatibility.Phone.dll&lt;/em&gt; is used by 189 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Core.Phone.dll &lt;/em&gt;is used by 189 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Plugins.Phone.dll&lt;/em&gt; is used by 189 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Plugins.Progressive.Phone.dll &lt;/em&gt;is used by 189 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Utilities.Phone.dll&lt;/em&gt; is used by 189 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Plugins.SmoothStreaming.Phone.dll &lt;/em&gt;is used by 180 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.SilverlightMediaFramework.Plugins.TimedText.Phone.dll&lt;/em&gt; is used by 170 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Daniel Crenna’s &lt;/strong&gt;&lt;a href="https://github.com/danielcrenna/tweetsharp" target="_blank"&gt;&lt;strong&gt;TweetSharp&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;: &lt;/strong&gt;“TweetSharp is a Twitter API library that greatly simplifies the task of adding Twitter to your desktop, web, and mobile applications.”       &lt;br /&gt;&lt;em&gt;TweetSharp.WindowsPhone.dll&lt;/em&gt; is used 175 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/bb931106" target="_blank"&gt;&lt;strong&gt;WCF Data Services&lt;/strong&gt;&lt;/a&gt;: “… enables the creation and consumption of OData services for the web (formerly known as ADO.NET Data Services).”       &lt;br /&gt;&lt;em&gt;System.Data.Services.Client.dll&lt;/em&gt; is used by 170 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;John Sheehan’s &lt;/strong&gt;&lt;a href="http://restsharp.org/" target="_blank"&gt;&lt;strong&gt;RestSharp&lt;/strong&gt;&lt;/a&gt;: “Simple REST and HTTP API client for .net. RestSharp works best as the foundation for a proxy class for your API.”       &lt;br /&gt;&lt;em&gt;RestSharp.WindowsPhone.dll&lt;/em&gt; is used by 154 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;René Schulte’s &lt;/strong&gt;&lt;a href="http://writeablebitmapex.codeplex.com/" target="_blank"&gt;&lt;strong&gt;WriteableBitmapEx&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “The WriteableBitmapEx library is a collection of extension methods for Silverlight's WriteableBitmap. GDI+ like drawing functionality for the WriteableBitmap. Support for desktop and Windows Phone Silverlight.”       &lt;br /&gt;&lt;em&gt;WriteableBitmapExWinPhone.dll&lt;/em&gt; is used by 141 apps.       &lt;br /&gt;&lt;em&gt;WriteableBitmapEx.dll &lt;/em&gt;is used by 65 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s Rx (Reactive eXtensions) &lt;/strong&gt;&lt;a href="http://blogs.msdn.com/b/rxteam/archive/2010/10/28/rx-for-windows-phone-7.aspx" target="_blank"&gt;&lt;strong&gt;DevLabs&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; release: &lt;/strong&gt;Essentially Linq to events state-machine. It’s important to note that only the DevLabs release is ranked here, not the embedded release.       &lt;br /&gt;&lt;em&gt;System.Reactive.dll&lt;/em&gt; DevLabs release is used by 135 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Manfred Dalmeijer’s &lt;/strong&gt;&lt;a href="http://www.aldarit.com/superads.html" target="_blank"&gt;&lt;strong&gt;aldarIT SuperAds&lt;/strong&gt;&lt;/a&gt;: “A Free Multiple Ad-Network Silverlight Control for Windows Phone 7. Support for: Admob, PubCenter (Microsoft Advertising), Smaato, ZestADZ and MobFox.”       &lt;br /&gt;&lt;em&gt;AldarIT.SuperAds.dll&lt;/em&gt; is used by 118 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Sergey Barskiy’s &lt;/strong&gt;&lt;a href="http://winphone7db.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Windows Phone 7 Database&lt;/strong&gt;&lt;/a&gt;: “This project implements a Isolated Storage (IsolatedStorage) based database for Windows Phone 7. The database consists of table object, each one supporting any number of columns. Use this as persistence engine for Windows Phone 7 Silverlight (and XNA) applications.”       &lt;br /&gt;&lt;em&gt;SilverlightPhoneDatabase.dll &lt;/em&gt;is used by 118 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Rob Eisenberg’s &lt;/strong&gt;&lt;a href="http://caliburnmicro.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Calburn.Micro&lt;/strong&gt;&lt;/a&gt;: “A small, yet powerful framework designed for WPF, Silverlight and WP7. It implements a variety of UI patterns for solving real-world problems. Patterns that are highlighted include MVVM (Presentation Model), MVP and MVC.”       &lt;br /&gt;&lt;em&gt;Caliburn.Micro.dll&lt;/em&gt; is used by 111 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft’s &lt;/strong&gt;&lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/02/22/windows-phone-shake-gestures-library.aspx" target="_blank"&gt;&lt;strong&gt;Windows Phone Shake Gestures Library&lt;/strong&gt;&lt;/a&gt;: “The Shake Gesture Library enables developers to register for ‘shake gesture’ events in their applications. You can configure how strong you want your end user to shake, for how long, and in which direction to generate shake events.”       &lt;br /&gt;&lt;em&gt;ShakeGestures.dll&lt;/em&gt; is used by 111 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Rgelb’s&amp;#160; &lt;/strong&gt;&lt;a href="http://admobwp7.codeplex.com" target="_blank"&gt;&lt;strong&gt;adMob for Windows Phone 7&lt;/strong&gt;&lt;/a&gt;: “This project aims to provide Windows Phone 7 developers an opportunity to monetize their free applications using AdMob.”       &lt;br /&gt;&lt;em&gt;adMob7.dll &lt;/em&gt;is used by 97 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft P&amp;amp;P’s &lt;/strong&gt;&lt;a href="http://compositewpf.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Prism&lt;/strong&gt;&lt;/a&gt;: “Prism provides guidance designed to help you more easily design and build rich, flexible, and easy-to-maintain Windows Presentation Foundation (WPF) desktop applications, Silverlight Rich Internet Applications (RIAs), and Windows Phone 7 applications.”       &lt;br /&gt;&lt;em&gt;Microsoft.Practices.Prism.Interactivity.dll&lt;/em&gt; is used by 94 apps.       &lt;br /&gt;&lt;em&gt;Microsoft.Practices.Prism.dll&lt;/em&gt; is used by 70 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Karl Seguin’s &lt;/strong&gt;&lt;a href="https://github.com/mogade/mogade-windowsphone" target="_blank"&gt;&lt;strong&gt;Mogade Windows Phone&lt;/strong&gt;&lt;/a&gt; : “Mogade is a free service web-based service which allows game developers to quickly enchance their games with auxiliary functionality (such as leaderboards).”       &lt;br /&gt;&lt;em&gt;Mogade.WindowsPhone.Core.dll &lt;/em&gt;is used by 88 apps.       &lt;br /&gt;&lt;em&gt;Mogade.WindowsPhone.dll &lt;/em&gt;is used by 86 apps&lt;em&gt;.        &lt;br /&gt;&lt;/em&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Simon McKenzie’s &lt;/strong&gt;&lt;a href="http://www.codeproject.com/KB/graphics/exiflib.aspx" target="_blank"&gt;&lt;strong&gt;ExifLib&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “ExifLib simply reads Exif tags (i.e., camera model, date picture taken, shutter speed etc.) from JPEG files”       &lt;br /&gt;&lt;em&gt;ExifLib.dll&lt;/em&gt; is used by 86 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Jeff Brand’s &lt;/strong&gt;&lt;a href="http://www.slickthought.net/post/2010/08/30/Managing-Trial-Applications-for-Windows-Phone-7.aspx" target="_blank"&gt;&lt;strong&gt;SlickThought WP7 Trial Manager&lt;/strong&gt;&lt;/a&gt;: “TrialManager is a simple piece of code that you can add to any WP7 project to help manage the behavior of your trial apps. TrialManager will also make it easier to simulate you application running in Trial mode when creating your apps.”       &lt;br /&gt;&lt;em&gt;SlickThought.Phone.dll&lt;/em&gt; is used by 86 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;amCharts&lt;/strong&gt; &lt;a href="http://wpf.amcharts.com/quick" target="_blank"&gt;Quick Charts for Windows Phone 7&lt;/a&gt;: “Quick Charts is an easy to use, fast set of charting controls for WPF, Silverlight and Windows Phone 7. And it's FREE and Open Source (Ms-PL)!”       &lt;br /&gt;&lt;em&gt;AmCharts.Windows.QuickCharts.WP.dll &lt;/em&gt;is used by 85 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Shawn Wildermuth’s &lt;/strong&gt;&lt;a href="http://phoney.codeplex.com/" target="_blank"&gt;&lt;strong&gt;PhoneyTools&lt;/strong&gt;&lt;/a&gt;: “This is a project that contains several classes and controls for use with Windows Phone 7 applications.”       &lt;br /&gt;&lt;em&gt;AgiliTrain.PhoneyTools.dll &lt;/em&gt;is used by 59 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Romeo Dumitrescu’s &lt;/strong&gt;&lt;a href="http://wp7explorer.codeplex.com/team/view" target="_blank"&gt;&lt;strong&gt;Windows Phone 7 Isolated Storage Explorer&lt;/strong&gt;&lt;/a&gt;:&lt;strong&gt; &lt;/strong&gt;“WP7 Isolated Storage Explorer is a tool designed to help developers and testers interact with the isolated storage file for Silverlight Windows Phone 7 applications. The explorer can work both as a desktop application for testers or integrated in Visual Studio for developers.”       &lt;br /&gt;&lt;em&gt;IsolatedStorageExplorer.dll&lt;/em&gt; is used by 57 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Jeff Weber and Ian Qvist’s&amp;#160; &lt;/strong&gt;&lt;a href="http://farseerphysics.codeplex.com/" target="_blank"&gt;&lt;strong&gt;Farseer Physics Engine&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; “Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from simple hobby games to complex simulation systems is possible with Farseer Physics Engine.”       &lt;br /&gt;&lt;em&gt;FarseerPhysicsXNA.dll&lt;/em&gt; is used by 54 apps.       &lt;br /&gt;&lt;em&gt;FarseerPhysics.dll &lt;/em&gt;is used by 29 apps.       &lt;br /&gt;&lt;em&gt;FarseerPhysicsWP7.dll&lt;/em&gt; is used by 12 apps.       &lt;br /&gt;&lt;em&gt;FarseerPhysicsPhone.dll &lt;/em&gt;is used by 4 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mobfox.com/?aid=79" target="_blank"&gt;&lt;strong&gt;MobFox Windows Phone 7 SDK&lt;/strong&gt;&lt;/a&gt;: “MobFox is world's highest-paying mobile advertising network for US &amp;amp; EU Traffic on iPhone, Android, Windows Phone 7 applications and mobile websites. Instead of working with hundreds of different advertisers and networks, we concentrate on placing the most engaging and most paying premium ads on your applications or mobile websites.”       &lt;br /&gt;&lt;em&gt;MobFox.Ads.dll&lt;/em&gt; is used by 47 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Damian Karzon’s &lt;/strong&gt;&lt;a href="https://github.com/dkarzon/DropNet" target="_blank"&gt;&lt;strong&gt;DropNet&lt;/strong&gt;&lt;/a&gt;: “.NET Client library for the Dropbox API.”       &lt;br /&gt;&lt;em&gt;DropNet.WindowsPhone.dll&lt;/em&gt; is used by 44 apps.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Pawel Idzikowski’s &lt;/strong&gt;&lt;a href="http://www.sharpserializer.com/en/index.html" target="_blank"&gt;&lt;strong&gt;sharpSerializer&lt;/strong&gt;&lt;/a&gt;: “sharpSerializer is an open source XML and binary serializer for .NET Framework, .NET Compact Framework and Silverlight.”       &lt;br /&gt;&lt;em&gt;Polenter.SharpSerializer.Silverlight.dll&lt;/em&gt; is used by 40 apps. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update 10/3/2010: &lt;/strong&gt;With the &lt;a href="http://apps-are-people-too.blogspot.com/2011/09/wp7-marketplace-share-or-how-we-became.html" target="_blank"&gt;new numbers&lt;/a&gt; regarding the use of Dotfuscator it appears 14.5% of the marketplace is PreEmpetive’s solutions for obfuscation and 2.6% of the marketplace for instrumentation. Earning Dotfuscator a rightful place as&amp;#160; top framework #4.     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Who Da Man? &lt;/h2&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Top WP7 Framework Devs Twitter list" border="0" alt="Top WP7 Framework Devs Twitter list" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-06_09.36.39.jpg" width="540" height="225" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Top WP7 Framework Devs Twitter list" border="0" alt="Top WP7 Framework Devs Twitter list" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/3dfb3d87e9ff_112FF/SS-2011-09-06_09.38.30.jpg" width="539" height="396" /&gt;&lt;/p&gt;  &lt;p&gt;I’ve created a new Twitter list with all the creators of the top WP7 3rd party libraries. Fellow it at @ &lt;a href="http://twitter.com/#!/JustinAngel/top-wp7-frameworks-devs" target="_blank"&gt;http://twitter.com/#!/JustinAngel/top-wp7-frameworks-devs&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Can I see report breakdowns and the technique used to generate them? &lt;/h2&gt;  &lt;p&gt;Yes. I’ve posted the reports generated for the entire marketplace, the same reports for top 2,000 WP7 apps and the source code used to generate reports.    &lt;br /&gt;&lt;strong&gt;If you’ve got a 3rd party framework &lt;/strong&gt;you can see specific usage numbers in these detailed reports. &lt;/p&gt;  &lt;p&gt;Get the reports and analytics source code @ &lt;a title="http://JustinAngel.net/storage/WP7MarketplaceAnalysis.zip" href="http://JustinAngel.net/storage/WP7MarketplaceAnalysis.zip" target="_blank"&gt;http://JustinAngel.net/storage/WP7MarketplaceAnalysis.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Can you share raw data or how to download the entire marketplace? &lt;/h2&gt;  &lt;p&gt;No. There are security, legal and piracy implications to sharing data of that granularity. &lt;/p&gt;  &lt;p&gt;However, an independent report isn’t meaningful unless it’s potentially corroborated by others. So, If I’m personally acquainted with you (let’s say you’re a Silverlight MVP or someone like that) feel free to ping me and I’ll share all code needed to download the WP7 marketplace and run these reports.&amp;#160; If any such endeavour is ever undertaken up by anyone, I’ll update this blog post. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Can I get a custom statistic? &lt;/h2&gt;  &lt;p&gt;Yes. Sound off in the comments! I can always generate more informative statistics based on your requests. Don’t be shy, if you have questions I’d love to help out. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Any feedback? &lt;/h2&gt;  &lt;p&gt;Thoughts? Feedback? Feel free to sound off in the comments! I’d love to hear from you folks. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-- Justin Angel&lt;/p&gt;</description><a10:updated>2011-09-02T00:00:00-07:00</a10:updated></item><item><guid isPermaLink="false">26</guid><link>http://justinangel.net/WindowsPhone7DevBestPracticesWiki</link><title>Windows Phone 7 Development Best Practices Wiki</title><description>&lt;p&gt;Hi Folks,&lt;/p&gt;  &lt;p&gt;This is a short blog post to share with you my latest project: &lt;strong&gt;&lt;a href="http://wp7dev.wikispaces.com" target="_blank"&gt;Windows Phone 7 Development Best Practices Wiki&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://wp7dev.wikispaces.com" target="_blank"&gt; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="wikiTile" border="0" alt="wikiTile" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7DevelopmentBestPracticesWik_A99A/wikiTile.png" width="200" height="200" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What’s this Wiki about? &lt;/h2&gt;  &lt;blockquote&gt;   &lt;h5&gt;“This document represents &lt;strong&gt;current consensus around development best practices for Windows Phone 7&lt;/strong&gt;.&lt;/h5&gt; These best practices are collaboratively developed and discussed by the WP7 developers community. As such, anyone may contribute.”&lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Who’s the Wiki’s target audience? &lt;/h2&gt;  &lt;blockquote&gt;   &lt;p&gt;“Experienced Silverlight, WPF or WP7 Developers. This is not an introduction level document.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What topics are covered? &lt;/h2&gt;  &lt;p&gt;&lt;a href="http://wp7dev.wikispaces.com/#SilverlightWP7CustomControls" target="_blank"&gt; &lt;img title="customControls.png" alt="customControls.png" src="http://wp7dev.wikispaces.com/file/view/customControls.png/178776213/customControls.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#OpensourceframeworksortoolsthatexplicitlysupportWP7" target="_blank"&gt; &lt;img title="opensource.png" alt="opensource.png" src="http://wp7dev.wikispaces.com/file/view/opensource.png/178776233/opensource.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#Well-knownWP7sampleprojects" target="_blank"&gt; &lt;img title="sampleProjects.png" alt="sampleProjects.png" src="http://wp7dev.wikispaces.com/file/view/sampleProjects.png/178776241/sampleProjects.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#MetroDesignResources" target="_blank"&gt; &lt;img title="designResources.png" alt="designResources.png" src="http://wp7dev.wikispaces.com/file/view/designResources.png/178776217/designResources.png" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://wp7dev.wikispaces.com/#Marketplace" target="_blank"&gt; &lt;img title="marketplaceSubmission.png" alt="marketplaceSubmission.png" src="http://wp7dev.wikispaces.com/file/view/marketplaceSubmission.png/178776221/marketplaceSubmission.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#Performance" target="_blank"&gt; &lt;img title="performance.png" alt="performance.png" src="http://wp7dev.wikispaces.com/file/view/performance.png/178776235/performance.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#Tombstoning" target="_blank"&gt; &lt;img title="tombstoning.png" alt="tombstoning.png" src="http://wp7dev.wikispaces.com/file/view/tombstoning.png/178776247/tombstoning.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#Music And Video" target="_blank"&gt; &lt;img title="musicAndVideos.png" alt="musicAndVideos.png" src="http://wp7dev.wikispaces.com/file/view/musicAndVideos.png/178776225/musicAndVideos.png" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://wp7dev.wikispaces.com/#Photos" target="_blank"&gt; &lt;img title="photos.png" alt="photos.png" src="http://wp7dev.wikispaces.com/file/view/photos.png/178776239/photos.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#MetroAppBarIcons" target="_blank"&gt; &lt;img title="metroAppbarIcons.png" alt="metroAppbarIcons.png" src="http://wp7dev.wikispaces.com/file/view/metroAppbarIcons.png/178776223/metroAppbarIcons.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#ContinuousIntegrationBuildProcess" target="_blank"&gt; &lt;img title="ci.png" alt="ci.png" src="http://wp7dev.wikispaces.com/file/view/ci.png/178776211/ci.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#Themes" target="_blank"&gt; &lt;img title="themes.png" alt="themes.png" src="http://wp7dev.wikispaces.com/file/view/themes.png/178776245/themes.png" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://wp7dev.wikispaces.com/#Navigation" target="_blank"&gt; &lt;img title="navigation.png" alt="navigation.png" src="http://wp7dev.wikispaces.com/file/view/navigation.png/178776229/navigation.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#GlobalizationandLocalization" target="_blank"&gt; &lt;img title="globalization.png" alt="globalization.png" src="http://wp7dev.wikispaces.com/file/view/globalization.png/178776219/globalization.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#Must-readResources" target="_blank"&gt; &lt;img title="mustreadResources.png" alt="mustreadResources.png" src="http://wp7dev.wikispaces.com/file/view/mustreadResources.png/178776227/mustreadResources.png" /&gt;&lt;/a&gt;&lt;a href="http://wp7dev.wikispaces.com/#WikiGuidelines" target="_blank"&gt; &lt;img title="wikiGuidelines.png" alt="wikiGuidelines.png" src="http://wp7dev.wikispaces.com/file/view/wikiGuidelines.png/178988511/wikiGuidelines.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Feedback? Comments? &lt;/h2&gt;  &lt;p&gt;If you have general feedback on the wiki please open up a new discussion on the &lt;a href="https://wp7dev.wikispaces.com/message/list/home" target="_blank"&gt;Discussion page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For anything else, feel free to sound off in the comments for this blog post.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sicnerely,&lt;/p&gt;  &lt;p&gt;-- Justin Angel &lt;/p&gt;</description><a10:updated>2010-11-15T00:00:00-08:00</a10:updated></item><item><guid isPermaLink="false">25</guid><link>http://justinangel.net/WindowsPhone7NeuronsApp</link><title>Windows Phone 7 “Neurons” App</title><description>&lt;p&gt;Hi Folks,&lt;/p&gt;  &lt;p&gt;I’d like to share some general specifics around my latest endeavour: the Windows Phone 7 app “Neurons”. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/iStock_000009981979XSmall.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Neurons Logo" border="0" alt="Neurons Logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/iStock_000009981979XSmall_thumb.png" width="150" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What is “Neurons” all about? What does it actually do? &lt;/h2&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Neurons&amp;quot; streams TED Talks, The RSA (and RSA Animate), FORA.tv and Science Dump to your Windows Phone 7. You can view the latest talks from each of these knowledgeable sources or Search for more talks. Feel free to share talks you liked via Facebook, Twitter or email.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/SS20101107_08.34.54.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Neurons on the Zune Marketplace" border="0" alt="Neurons on the Zune Marketplace" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/SS20101107_08.34.54_thumb.jpg" width="798" height="605" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;I got distracted, show me some pretty pictures!&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Neurons Panorama &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/NeuronsPanorama.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Neurons Panorama " border="0" alt="Neurons Panorama " src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/NeuronsPanorama_thumb.png" width="800" height="447" /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;In-app video player&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/NeuronsTed.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="In-app video player" border="0" alt="In-app video player" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/NeuronsTed_thumb.png" width="800" height="436" /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Search Page and Facebook Share&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/neuronsSearchSmaller.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Search Page and Facebook Share" border="0" alt="Search Page and Facebook Share" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/neuronsSearchSmaller_thumb.png" width="800" height="678" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;OK, Now show me a cool video! &lt;/h2&gt;  &lt;p&gt;Live preview of the “Neurons” &lt;a href="http://www.youtube.com/watch?v=TArH6MKj44I" target="_blank"&gt;Youtube&lt;/a&gt; video: (In Silverlight) &lt;/p&gt;  &lt;p&gt;[SimpleVideo:source=http://justinangel.net/storage/NeuronsVideoProject3.wmv|width=800|height=480]&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;“That’s hot, post the codez? ;)” &lt;/h2&gt;  &lt;p&gt;Announcing here for the first time, I’m open sourcing Neurons under the Ms-PL license.    &lt;br /&gt;Go to &lt;a href="http://Neurons.codeplex.com"&gt;http://Neurons.codeplex.com&lt;/a&gt; and get the latest source code. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/url1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Codeplex logo" border="0" alt="Codeplex logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/url1_thumb.png" width="248" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are some minor differences between the source code that shipped with Neurons V1.0 on the Windows Phone marketplace and the source code on codeplex. Mostly owing to my own wish to avoid violating some terms-of-usage by sharing out my private developer key. More on that on the codeplex website. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_thumb.png" width="541" height="464" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What did you learn from this project? &lt;/h2&gt;  &lt;p&gt;I’ll share technical specifics in a later blog post. I’ve started working on that one and it’s 30+ pages long.&lt;/p&gt;  &lt;p&gt;My most important takeaway is that &lt;strong&gt;it is possible to develop an entire production level app in a single weekend&lt;/strong&gt;. Neurons’ first line of code was written on Friday afternoon and it went out to beta testers on Monday morning. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WP7 gives you maximum ROI. Proactive laziness is paramount." border="0" alt="WP7 gives you maximum ROI. Proactive laziness is paramount." src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_thumb_3.png" width="240" height="441" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Why did you develop this project? &lt;/h2&gt;  &lt;p&gt;My primary mobile device is changing from an iPhone to a WP7 device. That was a tough decision for me to make since I do use my iPhone quite often and use it to it’s fullest extent.&lt;/p&gt;  &lt;p&gt;4 iPhone apps I frequently use were exclusively used to view these type of inspiring and educational videos. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/photo1.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="YouTube iPhone app with theRSAorg search" border="0" alt="YouTube iPhone app with theRSAorg search" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/photo1_thumb.jpg" width="180" height="270" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/photo2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Science Dump iPhone app" border="0" alt="Science Dump iPhone app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/photo2_thumb.jpg" width="180" height="270" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/photo3.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TED iphone app" border="0" alt="TED iphone app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/photo3_thumb.jpg" width="180" height="270" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/images2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="FORA.tv iphone app" border="0" alt="FORA.tv iphone app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/images2_thumb.png" width="180" height="270" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The prospect of leaving these apps behind when migrating to WP7 convinced me to be proactive and assure that this content will be available on WP7.   &lt;br /&gt;I also wanted to provide a consistent meaningful experience instead of the fragmented subpar experience on the iPhone.     &lt;br /&gt;I’m very lucky that WP7 development is simple enough to have been able to achieve both of these goals in a single weekend. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Thank You! &lt;/h2&gt;  &lt;p&gt;First and foremost, I’d like to thank the content providers who unbeknownst to them helped make this app a reality.    &lt;br /&gt;The whole goal of this app is to show content from these great sources of knowledge and learning, and just get out of the way. &lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TED, RSA, Fora.TV and Science Dump logos" border="0" alt="TED, RSA, Fora.TV and Science Dump logos" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_thumb_4.png" width="577" height="334" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’d also like to thank the beta testers who volunteered to test this app and make it to what it is today.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;András Velvárt - &lt;a href="http://twitter.com/vbandi" target="_blank"&gt;@vbandi&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/587090f4a1704dd8b0cf010ea53f06c6_bigger1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="vbandi" border="0" alt="vbandi" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/587090f4a1704dd8b0cf010ea53f06c6_bigger1_thumb.png" width="73" height="73" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Gergely Orosz - &lt;a href="http://twitter.com/GergelyOrosz" target="_blank"&gt;@GergelyOrosz&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/twitterProfilePhoto_bigger1.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="GergelyOrosz" border="0" alt="GergelyOrosz" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/twitterProfilePhoto_bigger1_thumb.jpg" width="73" height="73" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Chris Welsh - &lt;a href="http://twitter.com/ChrisWalshie" target="_blank"&gt;@ChrisWalshie&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/Me_bigger1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ChrisWalshie" border="0" alt="ChrisWalshie" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/Me_bigger1_thumb.png" width="73" height="73" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Indrajit Chakrabarty - &lt;a href="http://twitter.com/indyfromoz" target="_blank"&gt;@indyfromoz&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/dc2334a6814c4113856fce2b37c2cc7a_bigger1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="indyfromoz" border="0" alt="indyfromoz" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/dc2334a6814c4113856fce2b37c2cc7a_bigger1_thumb.png" width="73" height="73" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Martin Plante - &lt;a href="http://twitter.com/MartinPlante" target="_blank"&gt;@MartinPlante&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/Martinwp7_bigger1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MartinPlante" border="0" alt="MartinPlante" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/Martinwp7_bigger1_thumb.png" width="73" height="73" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Daren May - &lt;a href="http://twitter.com/darenmay" target="_blank"&gt;@darenmay&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/twitterProfilePhoto_bigger1_3.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="darenmay" border="0" alt="darenmay" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/twitterProfilePhoto_bigger1_thumb_3.jpg" width="73" height="73" /&gt;&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/keendarkmarvel" target="_blank"&gt;@keendarkmarvel&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/slashxxx" target="_blank"&gt;@slashxxx&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’d also like to thank the creators of the following frameworks that were used in this application.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://smf.codeplex.com/" target="_blank"&gt;Microsoft Silverlight Media Framework&lt;/a&gt; – Video player and media infrastructure.       &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Microsoft Silverlight Media framework logo" border="0" alt="Microsoft Silverlight Media framework logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_thumb_5.png" width="495" height="157" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://mvvmlight.codeplex.com/" target="_blank"&gt;MVVM Light Toolkit&lt;/a&gt; – MVVM framework.       &lt;br /&gt; &lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MVVM Light Toolkit Logo" border="0" alt="MVVM Light Toolkit Logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/image_thumb_6.png" width="269" height="145" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ninject.org/" target="_blank"&gt;Ninject&lt;/a&gt; – IoC framework.       &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/url1_3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Ninject Logo" border="0" alt="Ninject Logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/url1_thumb_3.png" width="300" height="118" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlight.codeplex.com/" target="_blank"&gt;Microsoft Silverlight for Windows Phone Toolkit&lt;/a&gt; – WP7 UI Controls!       &lt;br /&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/FileDownload1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Microsoft Silverlight Toolkit logo" border="0" alt="Microsoft Silverlight Toolkit logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7NeuronsApp_B82F/FileDownload1_thumb.png" width="401" height="94" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Questions? Comments? Leave a comment! &lt;/h2&gt;  &lt;p&gt;I’d love to hear feedback on this project, things that could be improved, or any questions on the process of developing this application. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sincerely,&lt;/p&gt;  &lt;p&gt;-- Justin Angel&lt;/p&gt;</description><a10:updated>2010-11-08T00:00:00-08:00</a10:updated></item><item><guid isPermaLink="false">24</guid><link>http://justinangel.net/WindowsPhone7VBnetAndFSharp</link><title>Windows Phone 7 supports VB.Net and F#</title><description>&lt;p&gt;Hi Folks,&lt;/p&gt;  &lt;p&gt;In this article we’ll review Windows Phone 7 support for the Visual Basic .Net and F# programming languages.    &lt;br /&gt;Our goal is to demonstrate that Windows Phone 7 can indeed support F# and VisualBasic.Net code libraries and user controls. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can get the sample project we’ve build in this article @ &lt;a href="http://JustinAngel.net/storage/WP7.Languages.zip"&gt;http://JustinAngel.net/storage/WP7.Languages.zip&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Why?! Why has Microsoft forsaken us?! &lt;/h2&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Man in agony" border="0" alt="Man in agony" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb.png" width="445" height="440" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Reading about VB.Net &amp;amp; F# Windows Phone 7 support online can be quite misleading. &lt;/p&gt;  &lt;p&gt;On the &lt;strong&gt;official MSDN WP7 forums&lt;/strong&gt; we can find the following quote: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Windows Phone 7 currently is supported only for C#” &lt;/em&gt;- &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/6e154937-4b28-4873-aa5d-636b758da949" target="_blank"&gt;Mark Chamberlain&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;During &lt;strong&gt;Windows Phone 7 jumpstart webcasts&lt;/strong&gt; an audience member asked about VB.Net support and was answered:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“&lt;em&gt;I'm afraid Visual Basic is not supported for WP7 dev&lt;/em&gt;” - &lt;a href="http://borntolearn.mslearn.net/wp7/f/84/t/20507.aspx" target="_blank"&gt;Andy Wigley&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;On the &lt;strong&gt;official Silverlight WP7 forums&lt;/strong&gt; we can find many questions asking about WP7 VB.net support with &lt;a href="http://forums.silverlight.net/forums/p/190834/440152.aspx" target="_blank"&gt;answers like&lt;/a&gt;: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Q: “&lt;em&gt;Can I develop applications with VB.NET for Windows Phone 7?&lt;/em&gt;”&lt;/p&gt;    &lt;p&gt;A: “&lt;em&gt;No, You can't.&lt;/em&gt;”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;TechRepublic&lt;/strong&gt; tech blog is quoted in saying: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“&lt;em&gt;The only language that will work up front is C#; VB.NET developers need not apply.&lt;/em&gt;”&amp;#160; &lt;a href="http://blogs.techrepublic.com.com/programming-and-development/?p=2979" target="_blank"&gt;TechRepublic&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And Canadian Heritage and official Languages Minister, the Honourable MP James Moore said:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“My dog wears a conservative party raincoat” &lt;/p&gt;    &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/DogInARainCoat.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DogInARainCoat" border="0" alt="DogInARainCoat" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/DogInARainCoat_thumb.png" width="659" height="452" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;All of the aforementioned statements, with the exception of that last one, are all patently false. And that last statement is just plain embarrassing.    &lt;br /&gt;Windows Phone 7 does indeed support Visual Basic .Net and F# and has done so since day #1. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Windows Phone 7 &lt;strong&gt;Applications&lt;/strong&gt; are C#&lt;/h2&gt;  &lt;p&gt;The one statement that can made and is factually true is that during the WP7 Beta the only language supported for the WP7 &lt;strong&gt;application&lt;/strong&gt; project itself is C#.     &lt;br /&gt;Which means absolutely nothing, since a WP7 application can just refer to a F# Silverlight 3 library or VB.Net Silverlight 3 library. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Using F# in Windows Phone 7&lt;/h2&gt;  &lt;p&gt;Let’s go over how to setup a simple “hello world” WP7 app with F#. &lt;/p&gt;  &lt;p&gt;1) Create a new C# &lt;strong&gt;Windows Phone 7 application&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Create new C# WP7 app" border="0" alt="Create new C# WP7 app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_3.png" width="811" height="622" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2) Add a &lt;strong&gt;F# Silverlight 3 project&lt;/strong&gt; to the solution.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Add new project to the solution" border="0" alt="Add new project to the solution" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_4.png" width="770" height="505" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Select project type F# Silverlight project" border="0" alt="Select project type F# Silverlight project" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_5.png" width="800" height="627" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Use Silverlight version 3" border="0" alt="Use Silverlight version 3" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_6.png" width="535" height="219" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;3) Open up the module1.fs file and &lt;strong&gt;write some F# code&lt;/strong&gt;.     &lt;br /&gt;For this basic sample we’ll make do with a simple non-UI sample of returning “Hello world”.&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;module&lt;/span&gt; WP7FSharpLibrary&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;type&lt;/span&gt; myClass = &lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;new&lt;/span&gt; () &lt;span style="color: blue"&gt;as&lt;/span&gt; this = {}&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;member&lt;/span&gt; s.myMethod() =&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: maroon"&gt;&amp;quot;OMG! Windows Phone 7 is running F# code!&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;end&lt;/span&gt; &lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3) &lt;strong&gt;Add a reference&lt;/strong&gt; from your WP7 app to the new F# library and &lt;strong&gt;build &lt;/strong&gt;the solution. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4) in the C# WP7 application, initialize your F# class and invoke the proper members.    &lt;br /&gt;&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: green"&gt;// Constructor&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt; MainPage()&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; FSharpClass = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WP7FSharpLibrary&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;myClass&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ContentGrid.Children.Add(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TextBlock&lt;/span&gt;() { Text = FSharpClass.myMethod()});&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When we run our app we can clearly see that F# executes in Windows Phone 7 without a hitch.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The WP7 emulator running F# code" border="0" alt="The WP7 emulator running F# code" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_7.png" width="594" height="339" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It’s also possible to have F# initialize various UI elements and create the UI for us.    &lt;br /&gt;But that really isn’t where functional programming normally excels in, so I’ll avoid demoing that worst practice. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Using a Visual Basic .Net UserControl in a Windows Phone 7&lt;/h2&gt;  &lt;p&gt;1) Create a new C# &lt;strong&gt;Windows Phone 7 application&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Create new C# WP7 app" border="0" alt="Create new C# WP7 app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_3.png" width="811" height="622" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;2) Add a &lt;strong&gt;VisualBasic.net Silverlight 3 project&lt;/strong&gt; to the solution.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Add new project to the solution" border="0" alt="Add new project to the solution" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_4.png" width="770" height="505" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Select a Visual Basic Silverlight Class Library" border="0" alt="Select a Visual Basic Silverlight Class Library" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_8.png" width="847" height="621" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Using Silverlight version 3" border="0" alt="Using Silverlight version 3" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_6.png" width="535" height="219" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;3) Add a &lt;strong&gt;new UserControl&lt;/strong&gt; to your Silverlight 3 VB.Net project. &lt;/p&gt;  &lt;p&gt;In our case we’ll add a simple user control with a &amp;lt;ListBox /&amp;gt; that has a few items. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;p&gt;&lt;/p&gt;    &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;     &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;Partial&lt;/span&gt; &lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SL3VbNetUserControl&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Inherits&lt;/span&gt; &lt;span style="color: #2b91af"&gt;UserControl&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; &lt;span style="color: blue"&gt;New&lt;/span&gt; &lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent()&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&lt;span style="color: blue"&gt;Me&lt;/span&gt;.DataContext = {&lt;span style="color: #a31515"&gt;&amp;quot;Hello from VB.Net on WP7!&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;World&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Foo&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Bar&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Baz&amp;quot;&lt;/span&gt;}&lt;/strong&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;WP7.VisualBasicNet.SL3VbNetUserControl&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Ignorable&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;d&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160; &lt;span style="color: red"&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;DesignHeight&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style="color: red"&gt; d&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;DesignWidth&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;400&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a31515"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a31515"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ListBox&lt;/span&gt;&lt;span style="color: red"&gt; ItemsSource&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a31515"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;4) &lt;strong&gt;Add a reference&lt;/strong&gt; from the WP7 app to the new VB.Net library and &lt;strong&gt;build&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5) Add the new SL3 VB.Net UserControl to your MainPage in the WP7 project.&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;lt;!--ContentPanel - place additional content here--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ContentGrid&amp;quot;&lt;/span&gt;&lt;span style="color: red"&gt; Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #a31515"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;VisualBasicNet&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SL3VbNetUserControl&lt;/span&gt;&lt;span style="color: red"&gt; xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;VisualBasicNet&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;clr-namespace:WP7.VisualBasicNet;assembly=WP7.VisualBasicNet&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;6) If we try and run the project at this state, we’ll see the following build warning: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Warning&amp;#160;&amp;#160;&amp;#160; 1&amp;#160;&amp;#160;&amp;#160; The primary reference &amp;quot;d:\visual studio 2010\Projects\WP7.Languages\WP7.VisualBasicNet\Bin\Debug\WP7.VisualBasicNet.dll&amp;quot; could not be resolved because it has an indirect dependency on the framework assembly &amp;quot;Microsoft.VisualBasic, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; which could not be resolved in the currently targeted framework. &amp;quot;Silverlight,Version=v4.0,Profile=WindowsPhone&amp;quot;. To resolve this problem, either remove the reference &amp;quot;d:\visual studio 2010\Projects\WP7.Languages\WP7.VisualBasicNet\Bin\Debug\WP7.VisualBasicNet.dll&amp;quot; or retarget your application to a framework version which contains &amp;quot;Microsoft.VisualBasic, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;.&amp;#160;&amp;#160;&amp;#160; WP7.Languages&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Build errors if the Microsoft.VisualBasic.dll reference is missing" border="0" alt="Build errors if the Microsoft.VisualBasic.dll reference is missing" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_9.png" width="759" height="205" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Make sure to add a reference from the WP7 app to Microsoft.VisualBasic.dll, and that it is marked as “Copy Local = False”.    &lt;br /&gt;On my dev box the DLL is found @ &lt;em&gt;c:\Program Files (x86)\Microsoft Silverlight\4.0.50524.0\Microsoft.VisualBasic.dll&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Add Reference context menu on right click" border="0" alt="Add Reference context menu on right click" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_10.png" width="433" height="114" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_11.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Adding a reference to  c:\Program Files (x86)\Microsoft Silverlight\4.0.50524.0\Microsoft.VisualBasic.dll" border="0" alt="Adding a reference to  c:\Program Files (x86)\Microsoft Silverlight\4.0.50524.0\Microsoft.VisualBasic.dll" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_11.png" width="704" height="75" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Right click on the “Microsoft.VisualBasic” reference, choose “properties” and set “Copy Local” to false”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Right click on Microsoft.VisualBasic and choose properties" border="0" alt="Right click on Microsoft.VisualBasic and choose properties" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_12.png" width="529" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_13.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Setting &amp;quot;Copy Local&amp;quot; to false" border="0" alt="Setting &amp;quot;Copy Local&amp;quot; to false" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_13.png" width="305" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After that change we can run our project and the Visual Basic .Net Silverlight 3 UserControl just shows up in our Windows Phone 7 project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 Emulator running a Viusal Basic .Net user control" border="0" alt="Windows Phone 7 Emulator running a Viusal Basic .Net user control" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7VB.NetandF_E571/image_thumb_14.png" width="588" height="413" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Obviously, after adding the Windows Phone 7 dlls to our VB.Net project we would be able to do anything a C# project can: GPS Location, Push Notifications, Accelerometer, Navigation, etc. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Fin&lt;/h2&gt;  &lt;p&gt;Windows Phone 7 supports all 3 main .Net 4.0 programming languages: C#, VisualBasic.Net and F#.    &lt;br /&gt;While C# alone is supported during the WP7 beta as the root &lt;strong&gt;WP7 application&lt;/strong&gt;, it’s a small hindrance which we can easily be overcome. &lt;/p&gt;  &lt;p&gt;In the aftermath of this blog post I expect both F# developers and VB.Net developers to produce some kick-ass WP7 apps. Yeah, I’m looking at you there. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Feedback&lt;/h2&gt;  &lt;p&gt;Feel free to sound off in the comments. What are your thoughts on this topic?    &lt;br /&gt;Is this an unbearable burden to follow this 5 simple steps? Is it exactly what you were looking for?     &lt;br /&gt;Are there any caveats you know off and would like to share with everyone? &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sincerely,&lt;/p&gt;  &lt;p&gt;-- Justin Angel&lt;/p&gt;</description><a10:updated>2010-08-25T00:00:00-07:00</a10:updated></item><item><guid isPermaLink="false">23</guid><link>http://justinangel.net/TFS2010WP7ContinuousIntegration</link><title>TFS2010 WP7 Continuous Integration</title><description>&lt;p&gt;Hi Folks,&lt;/p&gt;  &lt;p&gt;In this blog post we’ll cover how to set up automated (nightly?) builds on a Team Foundation 2010 Build Server for Windows Phone 7 projects.    &lt;br /&gt;The core challenge we’ll face is not having Visual Studio, Windows Phone 7 Tools or Windows Phone 7 SDK installed on the Build Server.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Windows Phone 7 Logo" border="0" alt="Windows Phone 7 Logo" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image.png" width="300" height="237" /&gt;&amp;#160; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="This is the VS2010 Logo. TFS2010 doesn&amp;#39;t have a logo. Let&amp;#39;s pretend this is the non-existing TFS2010 logo. SSSsshhh, don&amp;#39;t tell anyone." border="0" alt="This is the VS2010 Logo. TFS2010 doesn&amp;#39;t have a logo. Let&amp;#39;s pretend this is the non-existing TFS2010 logo. SSSsshhh, don&amp;#39;t tell anyone." src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_3.png" width="194" height="235" /&gt; &lt;/p&gt;  &lt;p&gt;You can get a sample project with all the modifications discussed in this blog post at: &lt;a href="http://justinangel.net/Storage/Justin.WindowsPhone.BuildFromLocalFiles.zip"&gt;http://JustinAngel.net/Storage/Justin.WindowsPhone.BuildFromLocalFiles.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Prerequisite Reading&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Prerequisite Reading" border="0" alt="Prerequisite Reading" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_4.png" width="399" height="296" /&gt; &lt;/p&gt;  &lt;p&gt;There’s a blog post that I highly recommend you’ll read before embarking on this quest. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.jeff.wilcox.name/2010/03/sxs-sl3-sl4-build-machine/" target="_blank"&gt;&lt;strong&gt;Building Silverlight 3 and Silverlight 4 applications on a .NET 3.5 build machine&lt;/strong&gt;&lt;/a&gt; by &lt;a href="http://twitter.com/JeffWilcox" target="_blank"&gt;Jeff Wilcox&lt;/a&gt;&amp;#160; &lt;br /&gt;In the linked article Jeff explains how to setup a TFS Build Server for Silverlight.&amp;#160; &lt;br /&gt;The blog post you are currently reading is heavily influenced by Mr. Wilcox approach to setting up a build server. Mainly because the writer of this blog post was schooled in the &lt;em&gt;“Wilcox School of Application Packaging and offensive driving”.      &lt;br /&gt;&lt;/em&gt;If you’d like to setup a Continuous Integration in TFS for a &lt;strong&gt;Silverlight project&lt;/strong&gt;, please read Mr. Wilcox’s article. This blog post only deals with &lt;strong&gt;WP7 projects&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;The Problem – We don’t have WP7 Installed on a Build Server&lt;/h2&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="A Diagram of 4 Developers using 4 different WP7 versions. Asking What version will we install on the server? " border="0" alt="A Diagram of 4 Developers using 4 different WP7 versions. Asking What version will we install on the server? " src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_5.png" width="804" height="442" /&gt; &lt;/p&gt;  &lt;p&gt;Imagine this situation, you’re in a company that has multiple Windows Phone 7 projects on the same build server. Or maybe you’re hosting your TFS2010 Build server and multiple companies are using the same server.    &lt;br /&gt;Some project could be prototypes, and some projects could be completely different projects. &lt;/p&gt;  &lt;p&gt;All of these projects are using different versions of the WP7 Tools.    &lt;br /&gt;If we were talking about Silverlight projects we would be talking about Silverlight 2, Silverlight 3 and Silverlight 4 projects.     &lt;br /&gt;In WP7’s case it would be different beta shipped at different months for the Windows Phone 7 developer tools.     &lt;br /&gt;However, since a server can only have 1 version installed at any given point in time – one project upgrading the server build version breaks all other projects. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="A diagram showing a developer upgrading to a new version breaking the build for all projects" border="0" alt="A diagram showing a developer upgrading to a new version breaking the build for all projects" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_6.png" width="615" height="637" /&gt; &lt;/p&gt;  &lt;p&gt;For instance, in &lt;a href="http://vertigo.com/Mobile.aspx" target="_blank"&gt;Vertigo&lt;/a&gt; we’ve got multiple Windows Phone 7 projects we’re working on for different customers.    &lt;br /&gt; We can’t guarantee that these multiple projects which are on different schedules with different deliverables will all upgrade together. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;The Solution – Don’t install WP7 Tools at all, use local resources&lt;/h2&gt;  &lt;p&gt;Since the problem here is that our WP7 projects have a dependency on installed software, let’s make sure we sever all of these ties.    &lt;br /&gt;The ties between our projects and installed WP7 Tools are built into our MSBuild scripts. We’ll be focusing our efforts in this blog post on those MSBuild scripts.&lt;/p&gt;  &lt;p&gt;1. Setup an “ExternalDependencies”/”ExternalTools” directory in source control.    &lt;br /&gt;As my own best practice, I establish a “Build” directory nested underneath that folder, and underneath it a “WP7_&amp;lt;Version&amp;gt;” folder. But these two last folders are just my own personal convention.&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Suggest Solution Structure and Source control folder structure" border="0" alt="Suggest Solution Structure and Source control folder structure" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_7.png" width="319" height="257" /&gt; &lt;/p&gt;  &lt;p&gt;2. Drag &amp;amp; drop the contents of the WP7 MSBuild central directory into the &lt;em&gt;“ExternalDependencies/Build/WP7_&amp;lt;Version&amp;gt;” &lt;/em&gt;folder.     &lt;br /&gt;On a x64 dev machine the folder is located on: &lt;em&gt;C:\Program Files (x86)\MSBuild\Microsoft\Silverlight for Phone\v4.0&lt;/em&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WP7 MSBuild Extensions dragged &amp;amp; dropped into source control" border="0" alt="WP7 MSBuild Extensions dragged &amp;amp; dropped into source control" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_8.png" width="702" height="535" /&gt; &lt;/p&gt;  &lt;p&gt;3. Create another nested folder named “Reference Assemblies” and copy the entire WP7 SDK into it.    &lt;br /&gt;On a x64 dev machine the WP7 SDK folder is located at: &lt;em&gt;C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WindowsPhone SDK dragged &amp;amp; dropped into Source Control" border="0" alt="WindowsPhone SDK dragged &amp;amp; dropped into Source Control" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_9.png" width="785" height="556" /&gt; &lt;/p&gt;  &lt;p&gt;4. In the folder holding the default *.targets files (“&lt;em&gt;ExternalDependencies/Build/MSBuild_WP7_Apri10”&lt;/em&gt;), add a new &amp;lt;companyName.WP7.Version&amp;gt;.Targets file.     &lt;br /&gt;In this example the file is named “&lt;em&gt;Vertigo.WP7.April10.targets&lt;/em&gt;”. &lt;/p&gt;  &lt;p&gt;Paste in the following MSBuild script:    &lt;br /&gt;&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Build&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;http://schemas.microsoft.com/developer/msbuild/2003&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SilverlightBuildResources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(CompileTimeSolutionDir)ExternalDependencies\Build\MSBuild_WP7_Apr10\&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;SilverlightBuildResources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TargetFrameworkDirectory&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SilverlightBuildResources)Reference Assemblies\&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TargetFrameworkDirectory&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TargetFrameworkSDKDirectory&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SilverlightBuildResources)Reference Assemblies\&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TargetFrameworkSDKDirectory&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;_TargetFrameworkSDKDirectoryItem&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SilverlightBuildResources)Reference Assemblies\&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;_TargetFrameworkSDKDirectoryItem&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;_FullFrameworkReferenceAssemblyPaths&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SilverlightBuildResources)Reference Assemblies\;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;_FullFrameworkReferenceAssemblyPaths&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;_TargetFrameworkDirectories&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SilverlightBuildResources)Reference Assemblies\;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;_TargetFrameworkDirectories&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SilverlightRuntimeVersion&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;3.0.40624.0&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;SilverlightRuntimeVersion&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Import&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Microsoft.Silverlight.WindowsPhone.Overrides.targets&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Import&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Microsoft.Silverlight.CSharp.targets&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;5. Open up the “Microsoft.Silverlight.Common.targets” file (from “&lt;em&gt;ExternalDependencies/Build/MSBuild_WP7_Apri10”&lt;/em&gt;) and comment out Lines 78-92.     &lt;br /&gt;The reason we have to do this edit, is because the default WP7 MSBuild script from Microsoft accidently uses registry settings instead of relaying on local values. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt;&amp;lt;GetSilverlightFrameworkPath &lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RegistryBase=&amp;quot;$(FrameworkRegistryBaseWithVersion)&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RuntimePathRegistryKey=&amp;quot;$(RuntimePathRegistryKey)&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RuntimeVersionRegistryKey=&amp;quot;$(RuntimeVersionRegistryKey)&amp;quot;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Output TaskParameter=&amp;quot;SilverlightPath&amp;quot; PropertyName=&amp;quot;TargetFrameworkDirectory&amp;quot; Condition=&amp;quot;'$(TargetFrameworkDirectory)' == ''&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Output TaskParameter=&amp;quot;SilverlightSDKPaths&amp;quot; ItemName=&amp;quot;_TargetFrameworkSDKDirectoryItem&amp;quot; Condition=&amp;quot;'$(TargetFrameworkSDKDirectory)' == ''&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Output TaskParameter=&amp;quot;SilverlightRuntimeVersion&amp;quot; PropertyName=&amp;quot;SilverlightRuntimeVersion&amp;quot; Condition=&amp;quot;'$(SilverlightRuntimeVersion)' == ''&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/GetSilverlightFrameworkPath&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt; Reset some items from the above task. Will remove when we merge with SL build system &lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt;&amp;lt;_FullFrameworkReferenceAssemblyPaths&amp;gt;$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier), $(TargetFrameworkVersion), ''))&amp;lt;/_FullFrameworkReferenceAssemblyPaths&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt;&amp;lt;TargetFrameworkDirectory&amp;gt;$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier), $(TargetFrameworkVersion), $(TargetFrameworkProfile)))&amp;lt;/TargetFrameworkDirectory&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;6. For every WP7 Project that needs to use local resources, we’ll have to edit the *.csproj file and replace the 2 default &amp;lt;Import&amp;gt; XML elements. &lt;/p&gt;  &lt;p&gt;Right Click on your project and choose “Edit Project File”: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Right click Project file --&amp;gt; Edit Project File" border="0" alt="Right click Project file --&amp;gt; Edit Project File" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_10.png" width="528" height="285" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;BTW, The “Edit Project file” context menu item comes from &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99" target="_blank"&gt;Visual Studio 2010 PowerCommands&lt;/a&gt;.     &lt;br /&gt;If you don’t have those installed, you’ll have to manually choose “Unload Project –&amp;gt; Edit File” on each project.     &lt;br /&gt;Thanks to &lt;a href="http://twitter.com/fignewtron" target="_blank"&gt;Allen Newton&lt;/a&gt; who told me about PowerCommands!&lt;/p&gt;  &lt;p&gt;In the *.csproj we’ll see the 2 default &amp;lt;Imports&amp;gt;:&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Import&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Import&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;We’ll comment out these &amp;lt;Import&amp;gt; elements and include our new &amp;lt;Import&amp;gt; with some flavouring to make Blend 4 RC to work with it well.&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt; This MSBuild script compensates for Blend Design time having the wrong SolutionDir &lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;MissingExternalDependenciesBlendDesignTimehack&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;false&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;MissingExternalDependenciesBlendDesignTimehack&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;MissingExternalDependenciesBlendDesignTimehack&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;!Exists('$(SolutionDir)ExternalDependencies')&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;MissingExternalDependenciesBlendDesignTimehack&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;CompileTimeSolutionDir&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;'$(MissingExternalDependenciesBlendDesignTimehack)'!='true'&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SolutionDir)&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;CompileTimeSolutionDir&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;CompileTimeSolutionDir&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;'$(MissingExternalDependenciesBlendDesignTimehack)'=='true'&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;$(SolutionDir)..\&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;CompileTimeSolutionDir&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: #a31515"&gt;Import&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(CompileTimeSolutionDir)ExternalDependencies\Build\MSBuild_WP7_Apr10\Vertigo.WP7.Apr10.targets&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt;&amp;lt;Import Project=&amp;quot;$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green"&gt;&amp;lt;Import Project=&amp;quot;$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;7. We’re done.    &lt;br /&gt;Checkin to the server and as long as all files are in source control and all paths are correct the project will build on a server with no Windows Phone 7 Tools. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_11.png" width="273" height="353" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Setting up a new TFS Automated Build&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Setting up a new Build Definition in VS2010" border="0" alt="Setting up a new Build Definition in VS2010" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_12.png" width="366" height="219" /&gt; &lt;/p&gt;  &lt;p&gt;In terms of setting up a new TFS2010 Build Definition for WP7, it’ll all plain old setup and pretty easy &amp;amp; straightforward.&lt;/p&gt;  &lt;p&gt;There’s one major caveat we should call out: Make sure to &lt;strong&gt;set the build agent to X86.&lt;/strong&gt;&amp;#160; &lt;br /&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MSBuild Platform x86, Image courtesy of Benjamin Day" border="0" alt="MSBuild Platform x86, Image courtesy of Benjamin Day" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_13.png" width="297" height="71" /&gt; &lt;/p&gt;  &lt;p&gt;If this step if not followed we’ll see a myriad of cryptic errors, like these ones: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TFS2010 Build error when Build Agent is Auto. Image courtesy of Benjamin Day." border="0" alt="TFS2010 Build error when Build Agent is Auto. Image courtesy of Benjamin Day." src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_14.png" width="844" height="187" /&gt; &lt;/p&gt;  &lt;p&gt;If you’re interested in more information about this issue please read &lt;a href="http://blog.benday.com/archive/2010/04/20/23272.aspx" target="_blank"&gt;TFS2010 Build failed -- “Microsoft.Silverlight.Common.targets (104): The Silverlight 4 SDK is not installed”&lt;/a&gt; by&amp;#160; Benjamin Day.    &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Summary&lt;/h2&gt;  &lt;p&gt;You can get a sample project with all the modifications discussed in this blog post @ &lt;a href="http://JustinAngel.net/Storage/Justin.WindowsPhone.BuildFromLocalFiles.zip"&gt;http://JustinAngel.net/Storage/Justin.WindowsPhone.BuildFromLocalFiles.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here’s a summary of the changes we needed to make in order for our project to run build successfully on a WP7-less TFS2010 Build server: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/TFS2010WindowsPhone7ContinuousIntegratio_FD09/image_15.png" width="695" height="662" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Fin&lt;/h2&gt;  &lt;p&gt;We’ve talked about why we it’s a smart move to avoid installing SDKs on our Build Server.   &lt;br /&gt;Additionally we’ve shown how to setup a WP7 project to run on a Build Server that doesn’t have WP7 Tools installed at all.&amp;#160; &lt;/p&gt;  &lt;p&gt;Hopefully this blog post will help you on your way to Continuous Integration for Windows Phone 7. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Leave a comment&lt;/h2&gt;  &lt;p&gt;What are your thoughts on this topic? Was this blog post useful? &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sincerely,&lt;/p&gt;  &lt;p&gt;-- Justin Angel &lt;/p&gt;</description><a10:updated>2010-05-19T00:00:00-07:00</a10:updated></item><item><guid isPermaLink="false">22</guid><link>http://justinangel.net/WindowsPhone7EmulatorAutomation</link><title>Windows Phone 7 – Emulator Automation</title><description>&lt;p&gt;Hi Folks,&lt;/p&gt;  &lt;p&gt;In this next blog post we’ll review how to automate the Windows Phone 7 Emulator and what are some real-world usages this technique.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 Unlocked" border="0" alt="Windows Phone 7 Unlocked" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image.png" width="350" height="275" /&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 Emulatoe" border="0" alt="Windows Phone 7 Emulatoe" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_3.png" width="178" height="275" /&gt; &lt;/p&gt;  &lt;p&gt;This blog post is the second blog post in a series of unrelated advanced Windows Phone 7 blog posts.    &lt;br /&gt;The previous blog post in this series is “&lt;a href="http://justinangel.net/WindowsPhone7UnlockedRoms" target="_blank"&gt;Windows Phone 7 – Unlocked ROMs&lt;/a&gt;”. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Why is Windows Phone 7 Automation Important? &lt;/h2&gt;  &lt;p&gt;Currently, the Windows Phone 7 Emulator can only launch developer packages (XAPs) from inside Visual Studio 2010.    &lt;br /&gt;Meaning, if we’ve got a XAP we can’t get the emulator to load it without Visual Studio.     &lt;br /&gt;    &lt;br /&gt;As we’ve seen in a previous blog post the emulator can be launched and even installed on machines that do not have Visual Studio. More on that &lt;a href="http://www.machackpc.com/headline/how-to-run-unlocked-windows-phone-7-build-6176-emulator-without-vs2010/" target="_blank"&gt;here&lt;/a&gt;.    &lt;br /&gt;Let’s consider that in order to load XAPs into the Emulator we currently have to use Visual Studio.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Developers use Visual Studio to run the WP7 Emulator" border="0" alt="Developers use Visual Studio to run the WP7 Emulator" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_4.png" width="655" height="270" /&gt; &lt;/p&gt;  &lt;p&gt;The problem is – &lt;strong&gt;How do we load XAPs into WP7 Emulators and Devices without using Visual Studio? &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So how does our Build Server run nightly tests? Or how do our customers see our applications? &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Customers and Build server don&amp;#39;t have Visual Studio 2010." border="0" alt="Customers and Build server don&amp;#39;t have Visual Studio 2010." src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_5.png" width="456" height="252" /&gt; &lt;/p&gt;  &lt;p&gt;Customers and Build servers don't have Visual Studio 2010 installed.&lt;/p&gt;  &lt;p&gt;So, how can we deploy XAPs to an emulator running on these machines? &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Quit your Jibber-Jabber, show me how to automate the WP7 emulator!&lt;/h2&gt;  &lt;p&gt;Let’s create a new solution with a Console Application and a Windows Phone 7 Project.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_6.png" width="247" height="264" /&gt; &lt;/p&gt;  &lt;p&gt;We’ll use the ConsoleApplication as our automation harness that can run on any computer with the .Net framework.    &lt;br /&gt;The WindowsPhone Application is the application whose deployment we’ll automate. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;The CoreCon 10 WP7 API&lt;/h2&gt;  &lt;p&gt;The secret sauce for WP7 Automation is the &lt;strong&gt;CoreCon API&lt;/strong&gt;.     &lt;br /&gt;These CoreCon DLLs have been in deep hibernation since 2007 when they last got a major upgrade.     &lt;br /&gt;For WP7 Tools the CoreCon API has been updated and are used by Visual Studio 2010 when deploying applications to WP7 devices and emulators. &lt;/p&gt;  &lt;p&gt;Let’s add a reference to &lt;strong&gt;Microsoft.SmartDevice.Connectivity.dll&lt;/strong&gt; from the CoreCon API.     &lt;br /&gt;On a x64 developer box, the DLL can be found at: &lt;em&gt;C:\Program Files (x86)\Common Files\microsoft shared\Phone Tools\CoreCon\10.0\Bin\Microsoft.Smartdevice.Connectivity.dll&lt;/em&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_7.png" width="294" height="364" /&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now that we have the CoreCon DLL reference in place, we can start automating WP7. &lt;/p&gt;  &lt;p&gt;Here’s the User Experience we’re aiming for in this demo: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 Emulator launched by CMD Automation from a Console app" border="0" alt="Windows Phone 7 Emulator launched by CMD Automation from a Console app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_8.png" width="689" height="352" /&gt; &lt;/p&gt;  &lt;p&gt;We’ll have to build the following workflow: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7 Automation Diagram - Get WP7 CoreCon SDK" border="0" alt="WP7 Automation Diagram - Get WP7 CoreCon SDK" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_9.png" width="786" height="235" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;We’ll start off by getting an instance of the WP7 CoreCon SDK instance to work with: &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Get CoreCon WP7 SDK&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;DatastoreManager&lt;/span&gt; dsmgrObj = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DatastoreManager&lt;/span&gt;(1033);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Platform&lt;/span&gt; WP7SDK = dsmgrObj.GetPlatforms().Single(p =&amp;gt; p.Name == &lt;span style="color: #a31515"&gt;&amp;quot;New Windows Mobile 7 SDK&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7 Automation Diagram - Get WP7 Emulator / Device" border="0" alt="WP7 Automation Diagram - Get WP7 Emulator / Device" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_10.png" width="785" height="235" /&gt; &lt;/p&gt;  &lt;p&gt;Next up we’ll have to get a reference to either a WP7 physical device or a WP7 Emulator.    &lt;br /&gt;This demo will use the emulator, but if we set “&lt;em&gt;useEmulator = false&lt;/em&gt;” this demo will try and connect to a physical WP7 device. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;&lt;span style="color: green"&gt;// Get Emulator / Device&lt;/span&gt;&lt;/div&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; useEmulator = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Device&lt;/span&gt; WP7Device = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (useEmulator)&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; WP7Device = WP7SDK.GetDevices().Single(d =&amp;gt; d.Name == &lt;span style="color: #a31515"&gt;&amp;quot;Windows Phone 7 Emulator&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;else&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; WP7Device = WP7SDK.GetDevices().Single(d =&amp;gt; d.Name == &lt;span style="color: #a31515"&gt;&amp;quot;Windows Phone 7 Device&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7 Automation Diagram - Connect to Emulator / Device" border="0" alt="WP7 Automation Diagram - Connect to Emulator / Device" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_11.png" width="785" height="236" /&gt; &lt;/p&gt;  &lt;p&gt;Now we’ll launch the WP7 Emulator/Device.    &lt;br /&gt;Note that the default WP7 Emulator Image is the one we’ll launch into, and in a &lt;a href="http://justinangel.net/WindowsPhone7UnlockedRoms" target="_blank"&gt;previous blog post&lt;/a&gt; I’ve explained how to use the Unlocked ROM as the default ROM. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;     &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Connect to WP7 Emulator / Device&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Connecting to Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;      &lt;p style="margin: 0px"&gt;WP7Device.Connect();&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Windows Phone 7 Emulator/Device Connected...&amp;quot;&lt;/span&gt;);&lt;/p&gt;   &lt;/div&gt;    &lt;p style="margin: 0px"&gt;&lt;/p&gt; &lt;/div&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7 Automation Diagram - Uninstall previous versions" border="0" alt="WP7 Automation Diagram - Uninstall previous versions" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_12.png" width="785" height="236" /&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Next, we’ll have to check if our application is already installed, and if it is – we’ll uninstall it.    &lt;br /&gt;Since the the &lt;strong&gt;UpdateApplication&lt;/strong&gt; Method in the current CoreCon API doesn’t work, this is our best bet on easily updating installed apps. &lt;/p&gt;  &lt;p&gt;In order to &lt;strong&gt;Install &lt;/strong&gt;or &lt;strong&gt;Uninstall&lt;/strong&gt; our application, we’ll need it’s Application Product Identifier (GUID).     &lt;br /&gt;We can get the application GUID from the &lt;em&gt;Properties/WMAppManifest.xml&lt;/em&gt; file. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Visual Studio with the WMAppManifest.xml file open" border="0" alt="Visual Studio with the WMAppManifest.xml file open" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_13.png" width="800" height="143" /&gt; &lt;/p&gt;  &lt;p&gt;We’ll write the code to check if an application is installed, and if it is – we’ll uninstall it. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; appID = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;{5e75bba1-fbf6-463c-94ac-fa4a78f8fd12}&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;RemoteApplication&lt;/span&gt; app;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (WP7Device.IsApplicationInstalled(appID))&lt;/p&gt;    &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Uninstalling sample XAP to Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; app = WP7Device.GetApplication(appID);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; app.Uninstall();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Sample XAP Uninstalled from Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7 Automation Diagram - Install XAP" border="0" alt="WP7 Automation Diagram - Install XAP" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_14.png" width="785" height="236" /&gt; &lt;/p&gt;  &lt;p&gt;At this point, we’ll install our XAP.    &lt;br /&gt;In order to do that, we’ll need 3 pieces of information:     &lt;br /&gt;1. The location of our XAP.     &lt;br /&gt;2. The Application GUID.     &lt;br /&gt;3. The location of the application icon. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Install XAP&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Installing sample XAP to Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;app = WP7Device.InstallApplication(&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; appID,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; appID,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;&amp;quot;NormalApp&amp;quot;&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;@&amp;quot;D:\visual studio 2010\Projects\ConsoleApplication1\WindowsPhoneApplication1\ApplicationIcon.png&amp;quot;&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;@&amp;quot;D:\visual studio 2010\Projects\ConsoleApplication1\WindowsPhoneApplication1\Bin\Debug\WindowsPhoneApplication1.xap&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Sample XAP installed to Windows Phone 7 Emulator...&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7 Automation Diagram - Launch Application" border="0" alt="WP7 Automation Diagram - Launch Application" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_15.png" width="785" height="235" /&gt; &lt;/p&gt;  &lt;p&gt;The last step is to actually launch our application. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Launch Application &lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Launching sample app on Windows Phone 7 Emulator...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;app.Launch();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Launched sample app on Windows Phone 7 Emulator...&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;We’re done. And indeed when we run our sample application the app runs as expected: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 Emulator launched by CMD Automation from a Console app" border="0" alt="Windows Phone 7 Emulator launched by CMD Automation from a Console app" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_16.png" width="689" height="352" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;So What is WP7 Automation good for?&lt;/h2&gt;  &lt;p&gt;There’s a lot of good use cases: Automating Unit tests, Loading Nightly builds into the emulator and even letting customers use the WP7 Emulator.    &lt;br /&gt;There’s really a plethora of reasons and situations WP7 Automation can prove useful in and it’s up to you to figure it out for your projects.&lt;/p&gt;  &lt;p&gt;For instance in &lt;a href="http://vertigo.com/mobile.aspx" target="_blank"&gt;Vertigo&lt;/a&gt;, we’re using the WP7 Automation harness to run the WP7 Emulator on multi-touch laptops that our customers have.     &lt;br /&gt;So Vertigo’s customers, as part of an iterative process, get access to our current build without having to install or use Visual Studio 2010. &lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Access to Isolated Storage&lt;/h2&gt;  &lt;p&gt;One use-case in particular interests me, which is automating running all unit tests in the project after a Continuous Integration nightly build. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 running unit tests, courtesy of Jeff Wilcox" border="0" alt="Windows Phone 7 running unit tests, courtesy of Jeff Wilcox" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_17.png" width="474" height="619" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;We can pretty much do all of the work to automate WP7 tests using WP7 Automation we’ve seen so far, but how do we get results into application? Or get instructions in? &lt;/p&gt;  &lt;p&gt;The easiest method I can think off is communicate through cold storage – read &amp;amp; write files into Isolated Storage.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Isolated Storage communication strategy diagram" border="0" alt="Isolated Storage communication strategy diagram" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_18.png" width="682" height="275" /&gt; &lt;/p&gt;  &lt;p&gt;We’ll start off by writing a file into our WP7 Application IsoStore.    &lt;br /&gt;Remember that this code executes in the WP7 Emulator/Device. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;     &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; MainPage()&lt;/p&gt;      &lt;p style="margin: 0px"&gt;{&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; SupportedOrientations = &lt;span style="color: #2b91af"&gt;SupportedPageOrientation&lt;/span&gt;.Portrait | &lt;span style="color: #2b91af"&gt;SupportedPageOrientation&lt;/span&gt;.Landscape;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: blue"&gt;var&lt;/span&gt; isoStore = &lt;span style="color: #2b91af"&gt;IsolatedStorageFile&lt;/span&gt;.GetUserStoreForApplication())&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: blue"&gt;var&lt;/span&gt; sw = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;StreamWriter&lt;/span&gt;(isoStore.OpenFile(&lt;span style="color: #a31515"&gt;&lt;strong&gt;&amp;quot;Foo.txt&amp;quot;&lt;/strong&gt;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;FileMode&lt;/span&gt;.OpenOrCreate, &lt;span style="color: #2b91af"&gt;FileAccess&lt;/span&gt;.Write)))&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sw.Write(&lt;span style="color: #a31515"&gt;&amp;quot;Hello WP7! (Written from WP7 IsoStore, read by Console Harness!)&amp;quot;&lt;/span&gt;);&lt;/p&gt;      &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin: 0px"&gt;}&lt;/p&gt;   &lt;/div&gt;    &lt;p style="margin: 0px"&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Basically, We’ve written a Foo.txt file into our IsoStore and added some text into it. &lt;/p&gt;  &lt;p&gt;Next, we would have used the RemoteIsolatedStorage class and get access to the emulator IsoStore, but that has not been enabled yet in CoreCon10. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Reflector showing GetIsolatedStorage throwing an exception" border="0" alt="Reflector showing GetIsolatedStorage throwing an exception" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_19.png" width="703" height="286" /&gt; &lt;/p&gt;  &lt;p&gt;We would have used RemoteApplication.GetIsolatedStorage() but that has not been implemented yet.&lt;/p&gt;  &lt;p&gt;We’ll use a FileDeployer class instead.    &lt;br /&gt;There’s some reflection magic associated with getting a copy of a FileDeployer class that can be used for our application. &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Thread&lt;/span&gt;.Sleep(10000);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;//app.GetIsolatedStore(); &amp;lt;-- Throws NotImplementedException&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt; ConManServer = WP7Device.GetType().GetField(&lt;span style="color: #a31515"&gt;&amp;quot;mConmanServer&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.NonPublic | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance).GetValue(WP7Device);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;FileDeployer&lt;/span&gt; f = (&lt;span style="color: #2b91af"&gt;FileDeployer&lt;/span&gt;)&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;FileDeployer&lt;/span&gt;).GetConstructors(&lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.NonPublic)[0].Invoke(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: blue"&gt;object&lt;/span&gt;[] { ConManServer });&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Next, we’ll copy the Foo.txt file from the application isolated storage into our local binary folder and read it into the console: &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;f.ReceiveFile(&lt;span style="color: #a31515"&gt;@&amp;quot;\Applications\Data\&amp;quot;&lt;/span&gt; + appID + &lt;span style="color: #a31515"&gt;@&amp;quot;\data\isolatedstore\Foo.txt&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;\Foo.txt&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;\t&amp;quot;&lt;/span&gt; + &lt;span style="color: #2b91af"&gt;File&lt;/span&gt;.ReadAllText(&lt;span style="color: #a31515"&gt;@&amp;quot;foo.txt&amp;quot;&lt;/span&gt;));&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When we run this sample we can see the text written from IsoStore showing up on our console. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Phone 7 Emulator Automation reading from IsoStore" border="0" alt="Windows Phone 7 Emulator Automation reading from IsoStore" src="http://justinangel.net/BlogFiles/WindowsLiveWriter/WindowsPhone7EmulatorAutomation_FBC8/image_20.png" width="671" height="481" /&gt; &lt;/p&gt;  &lt;p&gt;And we’re done, we’ve esteblished a two-way communication channel between WP7 Emulator/Device and Managed .net code.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h2&gt;Console WP7 Automation Harness Source Code &lt;/h2&gt;  &lt;p&gt;Here’s the source code we’ve built in this project: &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 12pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Get CoreCon WP7 SDK&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;DatastoreManager&lt;/span&gt; dsmgrObj = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DatastoreManager&lt;/span&gt;(1033);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Platform&lt;/span&gt; WP7SDK = dsmgrObj.GetPlatforms().Single(p =&amp;gt; p.Name == &lt;span style="color: #a31515"&gt;&amp;quot;New Windows Mobile 7 SDK&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Get Emulator / Device&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; useEmulator = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Device&lt;/span&gt; WP7Device = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (useEmulator)&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; WP7Device = WP7SDK.GetDevices().Single(d =&amp;gt; d.Name == &lt;span style="color: #a31515"&gt;&amp;quot;Windows Phone 7 Emulator&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;else&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; WP7Device = WP7SDK.GetDevices().Single(d =&amp;gt; d.Name == &lt;span style="color: #a31515"&gt;&amp;quot;Windows Phone 7 Device&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Connect to WP7 Emulator / Device&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Connecting to Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;WP7Device.Connect();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Windows Phone 7 Emulator/Device Connected...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; appID = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;{5e75bba1-fbf6-463c-94ac-fa4a78f8fd12}&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;RemoteApplication&lt;/span&gt; app;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (WP7Device.IsApplicationInstalled(appID))&lt;/p&gt;    &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Uninstalling sample XAP to Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; app = WP7Device.GetApplication(appID);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; app.Uninstall();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Sample XAP Uninstalled from Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Install XAP&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Installing sample XAP to Windows Phone 7 Emulator/Device...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;app = WP7Device.InstallApplication(&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; appID,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; appID,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;&amp;quot;NormalApp&amp;quot;&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;@&amp;quot;D:\visual studio 2010\Projects\ConsoleApplication1\WindowsPhoneApplication1\ApplicationIcon.png&amp;quot;&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;@&amp;quot;D:\visual studio 2010\Projects\ConsoleApplication1\WindowsPhoneApplication1\Bin\Debug\WindowsPhoneApplication1.xap&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Sample XAP installed to Windows Phone 7 Emulator...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Launch Application &lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Launching sample app on Windows Phone 7 Emulator...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;app.Launch();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Launched sample app on Windows Phone 7 Emulator...&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Reading Foo.txt Isolated Storage file:&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Thread&lt;/span&gt;.Sleep(10000);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: green"&gt;//app.GetIsolatedStore(); &amp;lt;-- Throws NotImplementedException&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt; ConManServer = WP7Device.GetType().GetField(&lt;span style="color: #a31515"&gt;&amp;quot;mConmanServer&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.NonPublic | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance).GetValue(WP7Device);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;FileDeployer&lt;/span&gt; f = (&lt;span style="color: #2b91af"&gt;FileDeployer&lt;/span&gt;)&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;FileDeployer&lt;/span&gt;).GetConstructors(&lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.NonPublic)[0].Invoke(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: blue"&gt;object&lt;/span&gt;[] { ConManServer });&lt;/p&gt;    &lt;p style="margin: 0px"&gt;f.ReceiveFile(&lt;span style="color: #a31515"&gt;@&amp;quot;\Applications\Data\&amp;quot;&lt;/span&gt; + appID + &lt;span style="color: #a31515"&gt;@&amp;quot;\data\isolatedstore\Foo.txt&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;\Foo.txt&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;\t&amp;quot;&lt;/span&gt; + &lt;span style="color: #2b91af"&gt;File&lt;/span&gt;.ReadAllText(&lt;span style="color: #a31515"&gt;@&amp;quot;foo.txt&amp;quot;&lt;/span&gt;));&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Fin&lt;/h2&gt;  &lt;p&gt;In this blog post we’ve talked about why Automating the WP7 Emulator and Device deployment process is important and how to go about doing that.    &lt;br /&gt;Hopefully now you know how to automate WP7 XAP Deployment. &lt;/p&gt;  &lt;p&gt;In the next blog post in this series we’ll talk about setting up a Continuous Integration build for WP7. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Leave a Comment&lt;/h2&gt;  &lt;p&gt;Are there any other use cases for WP7 Automation?    &lt;br /&gt;Are you planning on using this technique somewhere?     &lt;br /&gt;Was this a good blog post? &lt;strong&gt;Sound off in the comments. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sincerely,&lt;/p&gt;  &lt;p&gt;-- Justin Angel&lt;/p&gt;</description><a10:updated>2010-05-18T00:00:00-07:00</a10:updated></item></channel></rss>