Windows Phone SDK Changelog

What's new in Windows Phone SDK 7.8

Jan 23, 2013
  • Windows Phone 7.8 emulator: This OS image emulates your app running on a 512-MB device running Windows Phone 7.8 (build 8858)
  • Windows Phone 7.8 256MB emulator: This OS image emulates Windows Phone 7.8 (build 8858) running on a 256-MB device
  • If you’re running a Windows Phone SDK 7.1 installation, the update will also download and install the Windows Phone SDK 7.1.1 update onto your machine as part of the update (again, only applicable to Windows Phone SDK 7.1 installations)

New in Windows Phone SDK 8.0 (Nov 2, 2012)

  • SDK tools:
  • Windows Phone SDK 8.0 includes the following new tools and features for developing, debugging, and testing apps.
  • Development tools and features:
  • Visual Studio includes the following new features:
  • Project templates for Direct3D apps. For more info about project templates, see How to create a new app project from a template for Windows Phone. For more info about Direct3D apps, see the section Direct3D and games in this topic.
  • Enhanced localization support in project templates. Project templates now include built-in support for localization. You can easily begin to use best practices to develop a localized app without a lot of configuration steps. For more info, see How to build a localized app for Windows Phone.
  • Debugging managed or native code. On the Debug page of Project Designer, you can choose whether to debug the managed code or the native code portion of your app. If your app communicates with a background agent, you can also choose whether to debug the managed code or the native code portion of the background agent independently. You can debug both the app and the background agent in the same debugging session.
  • Debugging apps launched from a tile or notification. You can now debug an app that targets Windows Phone 8 when it's launched from a Tile or a push notification, not only when it's launched directly. When you launch your app with debugging on Windows Phone 8 Emulator or on a Windows Phone 8 device, click the Back button to exit the app; the debugger remains attached. After you launch the app again by using the Tile or push notification, you can continue to debug the app. For more information, see Debugging apps for Windows Phone.
  • XNA Framework support. You cannot develop new XNA Framework apps that target Windows Phone 8. For more info, see XNA Framework and Windows Phone 8 development.
  • Windows Phone 8 Emulator includes the following new features:
  • Support for multiple resolutions. Emulator images are available for each of the three resolutions supported in Windows Phone 8. For more info, see Multi-resolution apps for Windows Phone 8.
  • System requirements for Windows Phone 8 Emulator . Windows Phone 8 Emulator runs on Windows Hyper-V and has the same hardware, software, and configuration requirements as Hyper-V. If your computer doesn’t support Hyper-V, you can still develop apps for Windows Phone 8 and debug and test them on a Windows Phone 8 device. For more info, see System requirements for Windows Phone Emulator.
  • Networking on Windows Phone 8 Emulator . The Windows Phone OS 7.1 emulator uses the network connection of the development computer. However, the Windows Phone 8 Emulator configures itself as a separate device on the network. For more info about the impact of this change, see Windows Phone Emulator.
  • Manifest Designer. You can now add, remove, and change elements in the app manifest file through a user-friendly user interface. For more info, see How to modify the app manifest file for Windows Phone.
  • Isolated Storage Explorer has new command-line options that let you specify the target device. For more info, see How to use the Isolated Storage Explorer tool for Windows Phone.
  • Testing tools and features:
  • Testing your app’s native image. You can test the app’s native image to experience its performance as users will experience it. For more info, see How to test the retail version of your app for Windows Phone 8.
  • App monitoring and profiling. Windows Phone Application Analysis (formerly Windows Phone Performance Analysis) now includes app monitoring in addition to app profiling. The app monitoring feature captures the key metrics for your app that are relevant from a quality perspective, and then rates your app based on the metrics. The guiding principle is to help you ensure app quality and performance while you’re developing your app, and not as an afterthought. For more info, see App monitoring for Windows Phone.
  • Simulation Dashboard. You can use the Simulation Dashboard in Windows Phone 8 to determine in advance how your app will respond to real-life conditions. With this info, you can adjust your app to ensure that the app performs well in various real-life scenarios, and that your users are satisfied with the app.
  • You can use the Simulation Dashboard to test how your app will respond to the following conditions:
  • A low-bandwidth connection or poor signal
  • An interruption, such as a reminder or notification
  • The lock screen
  • For more info, see Simulation Dashboard for Windows Phone.
  • Screen shots. You can now capture screen shots of your app running on a physical phone by using a special key combination. For more info, see How to create screenshots for Windows Phone Store.
  • Store Test Kit. The Marketplace Test Kit is renamed the Store Test Kit. The Capabilities Validation test is not available for apps that target Windows Phone 8.
  • Tiles and notifications:
  • Windows Phone 8 includes new Tile sizes, and new Tile templates, accessible with the following classes:
  • FlipTileData
  • CycleTileData
  • IconicTileData
  • For more info about new Tiles in Windows Phone 8, see Tiles for Windows Phone.
  • Lock screen:
  • In Windows Phone 8, a user can use your app as the lock screen background image provider, and choose to include your app in the lock screen notification area. For more info about using new lock screen capabilities in your Windows Phone 8 app, see Lock screen notifications for Windows Phone 8 and Lock screen background for Windows Phone 8.
  • Maps and navigation:
  • Maps:
  • Windows Phone 8 has a new Map control, available through the following namespaces:
  • Microsoft.Phone.Maps
  • Microsoft.Phone.Maps.Controls
  • Microsoft.Phone.Maps.Services
  • For more info about the new Map control, see Maps and navigation for Windows Phone 8.
  • Navigation:
  • In Windows Phone 8 you can use the navigation protocol with the ms-drive-to or ms-walk-to Uri schemes to write an app that requests driving or walking directions, or to write an app that handles requests for driving or walking directions. For more info, see How to request or provide directions for Windows Phone 8.
  • Location:
  • Windows Phone 8 provides a new Windows Phone Runtime-based API set for getting the phone’s current location. The existing .NET Location API is still supported. For more info about the new APIs, see Location for Windows Phone 8.
  • Another new feature in Windows Phone 8 is the ability for location-tracking apps to continue to run in the background after the user navigates away from the app. This enables scenarios like run tracking and turn-by-turn navigation apps.
  • Speech:
  • In Windows Phone 8, users can interact with your app using their voice. For more info about using new speech features in your Windows Phone 8 app, see Speech for Windows Phone 8.
  • Wallet:
  • Windows Phone 8 introduces the Wallet, which app users can use to do the following:
  • Collect coupons, credit cards, memberships, loyalty cards, and more in one place.
  • Manage the payment instruments that they use in the app and music store.
  • Link items in the Wallet to apps on their phone.
  • Make contactless transactions, using Near-Field Communication (NFC), in some markets.
  • The Wallet gives app developers the ability to provide users with a richer experience by integrating with their Wallet items. Using the functionality provided through the Wallet namespace, you can create, read, write, and delete Wallet items from your app. Through the Windows Phone 8 Wallet experience, you can keep items up-to-date by using agents, and interact with the user with status messages and custom fields. The Wallet integration is additional functionality that allows you to better reach customers by being able to engage with them on an additional new surface area. In addition, Wallet items enable users to deep link in to your app so that you can provide a more meaningful in-app experience. For more info about the Wallet in Windows Phone 8, see Wallet for Windows Phone 8.
  • Multi-resolution:
  • Windows Phone 8 supports WVGA, WXGA, and 720p devices. The following table lists the new resolutions. All of these resolutions are supported in Windows Phone 8 Emulator.
  • Resolution
  • Aspect ratio
  • Scaled resolution
  • WVGA
  • 480 × 800
  • 15:9
  • 480 × 800
  • WXGA
  • 768 × 1280
  • 15:9
  • 480 × 800
  • 720p
  • 720 × 1280
  • 16:9
  • 480 × 853
  • For more info about multi-resolution support in Windows Phone 8, see Multi-resolution apps for Windows Phone 8.
  • Direct3D and games:
  • In addition to native development, Direct3D is being added to the family of Windows Phone technologies. This means that for the first time, a Direct3D-based PC game can share much of its code base with a phone version, and developers can use state-of-the-art middleware tools and engines that power the industry’s biggest game titles to develop games for Windows Phone.
  • Direct3D app refers to apps that are written entirely in native code, and which use only Direct3D for their UI. This type of app uses a completely different app model than managed apps, and can’t use many of the features of managed apps, such as live Tiles and push notifications. However, in Windows Phone 8 several new features were added for Direct3D apps to provide software keyboard input support, device theme, and screen resolution detection, and a set of Launchers and Choosers for adding many common phone tasks to your Windows Phone app. For more info about the native Direct3D app model and the features available to this type of app, see Direct3D app development for Windows Phone 8.
  • Also, you can use the DrawingSurface and DrawingSurfaceBackgroundGrid controls to incorporate Direct3D graphics into managed apps to take advantage of managed code features with a very small performance loss. Windows Phone 8 supports a subset of the Direct3D library at the 9_3 feature level. For info about Direct3D feature support and compatibility, see Direct3D for Windows Phone 8. For info about using Direct3D from managed apps, see XAML and Direct3D apps for Windows Phone 8.
  • In addition to Direct3D graphics support, you also have access to Microsoft Media Foundation APIs for playback and capturing audio and video. Also, the native audio libraries, XAudio2 and WASAPI, are now supported on the phone. For more info, see Walkthrough: Using Microsoft Media Foundation for Windows Phone 8 and Native audio APIs for Windows Phone 8.
  • App models:
  • Windows Phone 8 supports two distinct app models on which you can base your app.
  • Managed:
  • Managed apps use XAML to define the user interface and Visual Basic or C# as the coding language. Existing Windows Phone apps that were written using these techniques are fully compatible with Windows Phone 8. XAML-based apps have gained new features such as new controls and auto-scaling to high resolution. New managed APIs coming to Windows Phone 8 include a new map control powered by Nokia maps and a wallet API for storing payment methods and enabling NFC-based payments.
  • Native:
  • Windows Phone 8 supports native development, including significant subset of the Windows 8 SDK, enabling developers to share a significant amount of code between Windows 8 and the phone, particularly for native apps. With the addition of native development support, Windows Phone 8 reduces the need to port and maintain components such as compute engines, graphic libraries, and API sets.
  • Direct3D and XAML:
  • Direct3D and XAML app development is an attractive choice for developers who want the graphics capabilities of Direct3D but also want to use some of the features only available to managed apps such as Tiles and XAML controls.
  • HTML:
  • HTML-based phone apps aren’t a supported app model in Windows Phone 8. However, a developer can create a managed app with a XAML front end that uses an embedded browser control to display local HTML content, and it’s possible to access phone APIs by using the InvokeScript method and ScriptNotify events. Also, in Windows Phone 8, the phone’s browser has been upgraded to Internet Explorer Mobile 10, with a host of new features such as a robust HTML5/CSS3 implementation, Scalable Vector Graphics (SVG), ES5, IndexedDB, gesture events, and the addition of the high-performance scripting engine, creating new, interesting possibilities for Windows Phone 8 HTML developers.
  • For more information about developing with Internet Explorer Mobile 10, see the Internet Explorer 10 Guide for Developers.
  • Camera and photos:
  • Windows Phone 8 introduces Lenses, the ability to auto-upload photos to a web service, new ways to extend the photos experience, and advanced capture APIs from the Windows Phone Runtime. This release also includes enhancements for working with photos.
  • Lenses:
  • In Windows Phone 8, you can create a camera app called a lens that appears in the Windows Phone built-in camera app. A lens gives the user a consistent entry point into the viewfinder of your app. The lens feature is a type of extensibility available to apps that provide unique camera functionality via the camera APIs. As a lens, your app provides the user with a viewfinder experience and interacts directly with the camera. For more info, see Lenses for Windows Phone 8.
  • Working with photos:
  • New extension methods have been added for the Picture class, including GetPreviewImage and GetPath. Use GetPreviewImage to help improve performance for displaying photos on the screen. This method returns photos in a resolution—WVGA, WXGA, or 720p—that is optimized for the user’s phone. The GetPath method returns the full path of the image in the media library; you can use this path to uniquely identify a photo. To use these methods, add a directive to Microsoft.Xna.Framework.Media.PhoneExtensions.
  • A new Launcher has been added, ShareMediaTask. Through the ShareMediaTask class, your app can directly access the share picker, so users can share photos like they do using the built-in photo viewer. For more info, see How to use the share media task for Windows Phone.
  • In addition, the PhotoChooserTask task now returns a more user-friendly file name. In the event handler, the OriginalFileName property returns the actual file name of the photo. For more info, see How to use the photo chooser task for Windows Phone.
  • Photo extensibility:
  • Windows Phone 8 introduces new ways to extend the photos experience in Windows Phone. In addition to extending the Photos Hub, the photo apps picker, and the share picker, your app can now integrate with the photo edit picker or register as a rich media editor. For more info, see Photo extensibility for Windows Phone.
  • Auto upload:
  • In Windows Phone 8, your app can automatically upload photos to a photo storage service using a resource-intensive background agent. By registering your app as an auto-upload app, your background agent can run without expiration. For more info, see Auto-upload apps for Windows Phone 8.
  • Advanced capture APIs:
  • For apps that require fine control of the camera, the Windows Phone Runtime includes advanced capture APIs from the Windows.Phone.Media.Capture namespace. Use the Windows.Phone.Media.Capture.PhotoCaptureDevice class to control photo properties such as ISO, white balance, and exposure. You can even programmatically adjust the focus position. The Windows.Phone.Media.Capture.AudioVideoCaptureDevice class offers a similar level of control for video and audio recording. For more info about advanced capture APIs, see Capturing photos for Windows Phone and Capturing video for Windows Phone.
  • In addition to those APIs, Windows Phone 8 provides a set of interfaces exclusively for native code. These interfaces provide access to uncompressed photo data and encoded audio/video samples. There also is a method you can use to fill a Direct3D 2-D texture with the current preview frame. For more info, see Camera APIs for native code (Windows Phone 8).
  • Media:
  • Music media library:
  • In Windows Phone 8 you can add and remove music files from the user’s music collection with the SaveSong and Delete methods that extend the MediaLibrary class. This new API is in the Microsoft.Xna.Framework.Media.PhoneExtensions namespace in the assembly Microsoft.Xna.Framework.MediaLibraryExtensions.dll.
  • Pictures media library:
  • In Windows Phone 8, for each picture saved on the phone, the following two thumbnail images are automatically created and can be retrieved by your apps.
  • A small thumbnail image. You can retrieve this thumbnail with the GetThumbnail method of the Picture class.
  • A preview image that has the same dimensions as the phone's screen. You can retrieve this preview image with the new GetPreviewImage extension method of the Picture class.
  • You can get the path to a picture with the new GetPath extension method of the Picture class. Use this method to provide a value for the FilePath property of the ShareMediaTask when the user wants to share a picture.
  • This new API is found in the Microsoft.Xna.Framework.Media.PhoneExtensions namespace in the assembly Microsoft.Xna.Framework.MediaLibraryExtensions.dll.
  • Background audio:
  • In Windows Phone 8, you can capture info about the state transition from the PlayStateChangedEventArgs when the state of the BackgroundAudioPlayer changes. You can determine both the CurrentPlayState and the IntermediatePlayState that occurred before the audio player entered the current play state.
  • Here are some examples of the state transitions that you can handle with the info provided by the new event arguments:
  • IntermediatePlayState = BufferingStopped
  • CurrentPlayState = Playing
  • IntermediatePlayState = TrackEnded
  • CurrentPlayState = Stopped
  • For more info about background audio, see Background audio overview for Windows Phone.
  • User interface:
  • Controls:
  • Windows Phone 8 features the following new controls:
  • Windows Phone 8 includes a LongListSelector control that you can use to group, display, and scroll through long lists of data. It also provides a mechanism for users to jump to a specific section of a list.
  • In Windows Phone 8, Pivot and Panorama controls have been removed from the SDK and are now located in the phone’s read-only memory (ROM). This way your app can use a separate native input thread, which means a significant increase in the input responsiveness of these controls. The working set memory of the Panorama control also has been reduced.
  • The WebBrowser control is now based on Internet Explorer 10, which offers HTML5 and expanded CSS support for richer in-browser experiences.
  • The performance of the ProgressBar control has been improved. You should use this control to report value-based or indeterminate progress.
  • Launchers:
  • You can use Launchers in your Windows Phone 8 app to help a user perform common tasks. The following Launchers are new in Windows Phone 8.
  • SaveAppointmentTask
  • MapDownloaderTask
  • MapsTask
  • MapsDirectionsTask
  • ShareMediaTask
  • For more info about new Launchers in Windows Phone 8, see Launchers for Windows Phone.
  • Communications:
  • VoIP:
  • With Windows Phone 8, you can create Voice over IP (VoIP) apps that allow users to make audio and video calls over their data connection. VoIP apps are integrated into the built-in phone experience so that, for example, incoming calls are displayed using the same phone UI as regular cellular calls. For more information, see VoIP apps for Windows Phone 8.
  • Bluetooth:
  • Bluetooth is a wireless communication technology that devices within a 10-meter proximity can use to communicate with each other. You can use new Bluetooth API introduced in Windows Phone 8 to create apps that communicate with other phones using Bluetooth technology. Core Bluetooth scenarios for Windows Phone 8 include app-to-app and app-to-device communication, and open up a wide range of possibilities you can use to make your app more connected. For more info, see Bluetooth for Windows Phone 8.
  • Proximity:
  • Windows Phone 8 introduces a new API, the Proximity API that you can use to create apps that do the following:
  • Send data between devices using NFC.
  • Use a phone to interact with NFC tags.
  • Establish a Wi-Fi or Bluetooth connection between your app and an instance of your app on a proximate device.
  • On two phones that each have a Near-Field Communication (NFC) chip, app users can perform these scenarios simply by tapping their phones together.
  • For more info about Proximity, see Proximity for Windows Phone 8. Proximity on Windows Phone 8 also enables app-to-app connection using Bluetooth technology. For more info about Bluetooth for Windows Phone 8, see Bluetooth for Windows Phone 8.
  • Incoming sockets:
  • Windows Phone 8 introduces the enhancements to incoming sockets. System.Net.Sockets and Windows.Networking.Sockets both support incoming sockets, which means your app can listen for an incoming network connection, and then bind to that connection.
  • Support for IPv6:
  • Support for the 128-bit addressing system for devices on a network has been added to System.Net.Sockets, and also is supported in Windows.Networking.Sockets.
  • Windows.Net.Networking
  • The Windows Runtime API, Windows.Networking.Sockets, has been adopted for Windows Phone 8. It has been implemented as a Windows Phone Runtime API, making it easy to use in whatever supported programming language you choose. Although we've enhanced the .NET API, System.Net.Sockets, to support more features such as IPv6 and listener sockets, you should consider using the new API for sockets programming because it is more portable than the .NET API. Windows.Networking.Sockets has been built from the ground up to be clean, secure, and easy-to-use APIs that enforce best practices. For more info about supported Windows Runtime API, see Windows Phone Runtime API.
  • Winsock native API support:
  • Winsock native APIs are supported in Windows Phone 8. One key advantage of using Winsock APIs is that you can reuse the custom networking functionality that you’ve already implemented using Winsock, so it’s easier for you to create your app on the Windows Phone OS 8.0 platform. For more info about Winsock native API support, see Supported Win32 APIs for Windows Phone 8.
  • Data sense:
  • Windows Phone 8 introduces the new Data Sense feature which you can use to help your app users save money by staying within the limits of their data plans. In the Data Sense feature, a user can specify the limits of their data plans, and then Data Sense monitors data usage in relation to these limits. With this info, an app can help users save money by reducing data usage when the user is close to their data limit, or by discontinuing data usage when the user is over their data limit.
  • For more info about Data Sense in Windows Phone 8, see How to adjust data usage using the Data Sense API for Windows Phone 8.
  • Data and extensibility:
  • Storage:
  • Windows Phone 8 aligns with Windows 8 to support a subset of storage APIs from the Windows Runtime and Win32. This release also introduces the Microsoft.Phone.Storage namespace, a new .NET API for reading from an SD card. For more info, see Data for Windows Phone and Reading from the SD card on Windows Phone 8.
  • Custom contact store:
  • You can design your Windows Phone 8 app to create a set of contacts that are owned exclusively by the app, but which are visible through the built-in phone experience. APIs are provided to create, update, delete, and query the app’s contacts, as well as to sync the app’s contact list with a remote list maintained by the app’s cloud service. For more info, see Custom contact store for Windows Phone.
  • File and URI associations:
  • You can use file and URI associations in Windows Phone 8 to automatically launch your app when another app launches a particular file type or URI scheme. For example, a file association allows your app to launch to handle an email attachment. You can also use the association-launching API to launch another app based on a specific file type or URI scheme. For more info, see Auto-launching apps using file and URI associations for Windows Phone 8.
  • Search extensibility:
  • When you extend the Search experience in Windows Phone 8, quick cards pass more info to your app. There is also a new quick card for events, the event card. These changes are summarized in the following table.
  • Quick card
  • New URI parameters
  • Place Card
  • PhoneNumber
  • Movie Card
  • ReleaseDate
  • Event Card (new quick card)
  • EventName, StartDate, PlaceName, PlaceLatitude, PlaceLongitude, PlaceAddress
  • For more info about these parameters, see Search extensibility for Windows Phone.
  • Store:
  • In-app purchase:
  • In-app purchasing gives developers the ability to create apps or games that sell virtual products for real money. Microsoft servers host the catalog products that are available for in-app purchasing, including price and descriptive metadata. Microsoft also provides a commerce infrastructure, including methods for users to pay in 190 regions around the world.
  • For each product that users can purchases through in-app purchasing, a developer enters a description in Windows Phone Dev Center, in addition to prices for each region where users can make the in-app purchase. Using the APIs in Windows Phone 8, a developer can list, within an app, the products that are available for users to purchase in that app. Developers don’t need to write special code for handling different types of purchase instruments. All purchase methods that users can use to purchase apps and games are supported for in-app purchasing. The app or game must host and deliver any content associated with the in-app product. For more info, see In-app purchase for Windows Phone 8.
  • Ready for Business:
  • Windows Phone 8 makes it easy to build and deploy apps to phones enrolled in your enterprise. For info about the process of enrolling phones in your enterprise and deploying apps to them, see Company app distribution for Windows Phone 8.
  • Localization and globalization:
  • In Windows Phone 8 you can create apps that read from right to left, and apps that use bidirectional languages. For more info about using new localization and globalization features in Windows Phone 8, see Creating bidirectional apps for Windows Phone 8.
  • You now have the ability to define a default culture for an app domain. For more info, see the CultureInfo class.
  • App manifest file:
  • New capabilities have been added to the app manifest file to support new features such as Bluetooth and Near-Field Communication (NFC). You can also specify the hardware required by your app using the requirements section to help ensure that the app is downloaded and installed by users with phones that can successfully run the app. For more info about the new capabilities and hardware requirements in Windows Phone 8, see App capabilities and hardware requirements for Windows Phone.
  • In addition, editing the manifest file is now much easier using the Manifest Editor tool that is built-in in Visual Studio. For more info about how to edit the app manifest file, see How to modify the app manifest file for Windows Phone.
  • App compatibility:
  • Windows Phone 8 introduces some APIs that work differently than the same APIs work in a Windows Phone OS 7.1 app. For details about these differences and how they affect you as you prepare to develop your app, see App platform compatibility for Windows Phone.
  • In many cases where an API behaves differently in Windows Phone 8 than it does in Windows Phone, the API is quirked. That is, for apps that target Windows Phone OS 7.1, the API automatically behaves as it did in Windows Phone OS 7.1. For apps that target Windows Phone 8, the API has a new behavior. For more info, see the "Quirks mode behavior in the .NET Framework" section in App platform compatibility for Windows Phone.
  • Common language runtime:
  • The common language runtime in Windows Phone 8 offers the following new features and differs from Windows Phone in the following areas:
  • Code generation:
  • Windows Phone 8 uses a new strategy of compiling apps in the cloud for enhanced startup performance. To ensure that developers are able to execute their app as it would run on an app user’s device, the appropriate tools have been provided as part of Windows Phone SDK 8.0.
  • Inlining support in Windows Phone 8 is improved; manually inlining code is no longer necessary.
  • Code generation by the JIT compiler has been optimized.
  • Threading:
  • The .NET Framework is multi-core aware. Apps can create threads, use the ThreadPool class, the Task Parallel Library, and all the synchronization primitives to leverage multiple cores.
  • Support for multiple cores may cause APIs like Thread.Sleep to behave differently.
  • Security model:
  • The managed sandbox has been removed. As a result, a security exception, such as a MethodAccessException, that was expected in Windows Phone OS 7.1 may not be thrown in Windows Phone 8.
  • Garbage collection:
  • The garbage collection heap in Windows Phone 8 has two generations, not three generations as it does in Windows Phone OS 7.1.
  • In Windows Phone 8, the garbage collector has a large object heap (LOH).
  • Background garbage collection is not available in Windows Phone 8.
  • The phone's resource manager invokes a garbage collection when an app approaches the memory cap and will terminate the app if it exceeds the memory cap.
  • The runtime's auto-tuned garbage collection triggers can be impacted by an app's forced garbage collections.
  • In Windows Phone 8, the performance of per-thread allocation by the garbage collector is improved.
  • Portable Class Libraries:
  • The Portable Class Library project in Visual Studio 2012 gives you the ability to write and build managed assemblies that work on multiple .NET Framework platforms. Using a Portable Class Library project, you choose the platforms (such as Windows Phone 8 and .NET for Windows Store apps) to target. The available types and members in your project are automatically restricted to the common types and members across these platforms.
  • Portable class libraries that target Windows Phone OS 7.1 and Windows Phone 8 can be used on Windows Phone 8. Note that a portable class library that targets Windows Phone OS 7.1 but runs on Windows Phone 8, runs as a Windows Phone 8 app. For more info, see Cross-Platform Development with the .NET Framework.
  • Interop:
  • Apps can invoke first-party Windows Runtime APIs from managed code.
  • COM interop and P/Invoke are not supported.
  • General performance:
  • In Windows Phone 8, the performance of asynchronous and parallel operations that use types in the System.Threading.Tasks namespace has been improved. In addition, the stream classes now include asynchronous methods to take advantage of the asynchronous features added to the C# and Visual Basic languages. For more info, see Asynchronous File I/O in the .NET Framework Version 4.5 documentation.
  • The performance of virtual calls in Windows Phone 8 has been improved.
  • The implementation of Fast Application Switching is improved in Windows Phone 8. When a switch from the active application occurs, its managed execution is paused. Once an application is paused, the common language runtime guarantees 0 CPU utilization, and all of the application's timeouts are virtualized.

New in Windows Phone SDK 7.1.1 (Mar 27, 2012)

  • The Windows Phone SDK 7.1.1 Update release focuses on providing additional tools and documentation for developing for 256-MB devices.
  • Detect Application Working Set Memory:
  • A new device property value, ApplicationWorkingSetLimit, has been added so that you can use the GetValue(String) method to query the memory available for your application, and to change the way your application works if the device it is running on is a 256-MB device.
  • 256-MB Emulator:
  • An additional emulator has been added with the Windows Phone SDK 7.1.1 Update release. You can use this emulator to determine how your application will perform on a 256-MB device if you do not have access to one.
  • XNA Framework:
  • The XNA Framework is fully supported on 256-MB devices, however, an additional document has been added to help you performance-tune your XNA Framework applications
  • XNA Framework:
  • The XNA Framework is fully supported on 256-MB devices, however, an additional document has been added to help you performance-tune your XNA Framework applications
  • Application Manifest:
  • With Windows Phone SDK 7.1.1 Update, you can specify a requirement in the application manifest that will prevent your application from being distributed to users with 256-MB devices.
  • New Languages and Countries/Regions:
  • This update adds support for additional languages, and offers new countries/regions where you can publish your application. We’ve updated the documentation in several areas to support these changes.

New in Windows Phone SDK 7.1.1 CTP (Feb 27, 2012)

  • This update includes an updated 512MB emulator, as well as a new 256MB emulator image, and Intellisense support to communicate device targeting preferences. Once installed, the WP SDK 7.1.1 update allows you to decide which emulator you would like to deploy your app to.

New in Windows Phone SDK 7.1 (Sep 29, 2011)

  • Multi-targeting and App Compatibility:
  • You can use the Windows Phone SDK 7.1 to create Silverlight® and XNA Framework projects that target either Windows Phone OS 7.1 or Windows Phone OS 7.0. When you create a new project, you are prompted to select the version that you want to target. You can also upgrade existing Windows Phone OS 7.0 projects to take advantage of the new Windows Phone OS 7.1 features.
  • All your apps and games that work on Windows Phone OS 7.0 phones will continue to work seamlessly on Windows Phone OS 7.1 phones.
  • Multitasking:
  • In Windows Phone OS 7.1, several features are introduced that allow an application to perform actions even when it is not the active foreground application.
  • The Execution Model and Fast Application Switching:
  • The execution model is now updated to include a dormant state before tombstoning. When a user returns to a dormant application, it resumes quickly and without displaying the Resuming… message to the user.
  • Alarms and Reminders:
  • You can use the Windows Phone SDK 7.1 to create alarms and reminders that display a dialog box on the screen or play a sound at a specified time.
  • Background Agents:
  • You can now run code in the background, even when your application is not running in the foreground. There are two main types of background tasks: periodic agents, and resource-intensive agents.
  • Background File Transfers:
  • You can now initiate file downloads in your application that continue after the user has navigated away. The file downloads continue to run in the background, even when your application is no longer running in the foreground.
  • Background Audio:
  • Your audio applications can now run in the background. Music continues to play while the user launches other apps, and the user has access to the volume controls.
  • Media:
  • Windows Phone OS 7.1 contains significant media improvements. Improvements include 32-bit color support, support for extensionless media URIs, and support for H.264 in Windows Phone Emulator. Also, the MediaElement uses hardware rendering for improved video quality while using less battery power. You can also now save a ringtone from your application.
  • Silverlight 4:
  • Windows Phone OS 7.1 now includes Silverlight 4.
  • Sockets Support:
  • Your applications can now communicate over sockets using the TCP and UDP protocols. Sockets allow two-way communication with cloud services, and enable scenarios such as instant messaging and multi-player gaming.
  • Network Information:
  • Your applications can now access information about the network and network interfaces. You can determine the mobile operator and network capabilities of a user’s phone, and you can get and set connection preferences and requirements.
  • Push Notifications:
  • The push notification system is now more robust. Toast notifications can now link to specific places within your application and pass parameters. Tile notifications now support two-sided application and secondary Tiles.
  • Live Tiles:
  • Application Tiles pinned to the Start screen now have two sides and they flip periodically, making Tiles both more engaging and more informative. Your applications can have more than one Tile pinned to Start, such as Tiles for different cities in a weather app.
  • Silverlight and XNA Integration:
  • Instead of choosing between Silverlight and the XNA Framework, you can now use both in a single app or game. You can combine the page navigation model of a Silverlight application with the rich graphics power of an XNA Framework application.
  • Application Performance Analysis:
  • Windows Phone OS 7.1 now gives you the ability to profile your apps and games. You can measure the use of system resources such as CPU and memory over time, and navigate directly from the results to your code.
  • Visual Basic Support:
  • Visual Basic is now available for both Silverlight and XNA Framework applications. Visual Basic is fully integrated into the Windows Phone SDK 7.1; you do not need to install it separately.
  • Advertising:
  • The Microsoft Advertising SDK for Windows Phone enables you to monetize your apps and games by including ads from Microsoft Advertising. The Advertising SDK is now fully integrated into the Windows Phone SDK 7.1; you do not need to install it separately.
  • WebBrowser Control:
  • The WebBrowser control now supports Internet Explorer 9 and the benefits of increased performance and HTML5 rendering. You can also programmatically access the cookie collection of a WebBrowser control through the WebBrowser extension methods.
  • Device Status:
  • The Windows Phone SDK 7.1 now gives you expanded programmatic access to a user’s Windows Phone device through the DeviceStatus class. You can now determine whether the device is using the battery or external power, whether a keyboard is available or deployed, the device manufacturer, and more.
  • Local Database:
  • You can now store relational data in a local database that resides in your application’s isolated storage container. Your applications can use LINQ to SQL to perform database operations. New APIs enable programmatic database upgrade scenarios.
  • Isolated Storage Explorer:
  • The Windows Phone SDK 7.1 now includes a command line tool that enables you to list, copy, and replace files and directories in the isolated storage.
  • Launchers and Choosers:
  • The Windows Phone SDK 7.1 introduces several new Launchers and Choosers. From your applications, you can now choose an address, invite players to a game session, or save a ringtone. You can also show a location on a map at a preset zoom level, or show directions between two points on a Bing map.
  • Contacts and Calendar:
  • The Windows Phone SDK 7.1 now gives you read-only access to the user’s contacts and calendar data. You can now differentiate your applications by querying and interacting with the user’s data in ways such as letting the user choose from a list of their contacts and sending them emails, searching for contacts’ birthdays, and others.
  • Encrypted Credential Store:
  • The Windows Phone SDK 7.1 now provides access to a set of cryptography APIs. For applications that require login credentials, these APIs enable you to store the credentials in an encrypted way. Now your users do not have to log in anew each time they use your application.
  • User Experience Design Guidelines:
  • There is a new guide to help you follow best practices for Windows Phone user experience design. This documentation collects advice from the experts who created Windows Phone, and from people who were the designers of many of its first applications. There are more than 40 new topics to help you.
  • Certification Requirements:
  • The application certification requirements are now available online in the MSDN library. The documentation now contains test steps for most requirements. This means that now you can test your applications against the requirements before you submit them to App Hub for certification.
  • Windows Phone OS 7.0 and Windows Phone OS 7.1 requirements have been updated.
  • Marketplace Test Kit:
  • The Windows Phone SDK 7.1 now contains a Windows Phone Marketplace Test Kit. The Marketplace Test Kit enables you to test your application against the certification requirements right from Visual Studio. You can also take screenshots of your application by using the new built-in emulator screenshot tool, and submit them using the Marketplace Test Kit.
  • Camera:
  • The Windows Phone SDK 7.1 now gives you programmatic access to the camera on Windows Phone devices, including real-time access to raw frames. This enables you to create scanning and augmented reality applications. You can also access the flash and adjust the focus in your applications.
  • Pictures Extensibility:
  • You can now use App Connect to launch your Windows Phone application from the Pictures Hub, picture viewer, and share picker.
  • Search Extensibility:
  • App Connect is a new way for your applications to seamlessly extend the search experience on Windows Phone. With App Connect, users who search the web with the Search button can launch your application directly from Bing search results.
  • Application Bar:
  • The Windows Phone OS 7.1 Application Bar now has two sizes: default and minimized. The new minimized Application Bar is optimized for use on panorama pages, where space is at a premium.
  • On-Screen Keyboard:
  • Windows Phone OS 7.1 has new on-screen keyboards, such as number-only and formula-optimized keyboards, that you can leverage in your applications.
  • System Tray and Progress Indicator:
  • The system tray now supports opacity and colors. It also includes a progress indicator that you can use to indicate progress in your applications.
  • OData Client:
  • The Windows Phone SDK 7.1 now include the Add Service Reference dialog that enables you to generate a client proxy class. You can also use LINQ queries to access OData resources, and perform client authentication to secure OData services with a login ID and password. There is also improved performance when saving client state.
  • Globalization and Localization:
  • Windows Phone OS 7.1 adds support for 16 additional cultures. There is now support for East Asian languages, including reading and user interface fonts.
  • Creating Trial Applications:
  • You can design and implement a trial mode in your application that enables users to try your application before buying it. There are new topics and samples to help you implement trial mode in your applications.
  • Windows Phone Marketplace:
  • The Windows Phone Marketplace FAQ is now available online in the MSDN library.

New in Windows Phone SDK 7.1 RC (Aug 23, 2011)

  • Multi-targeting and App Compatibility:
  • You can use the Windows Phone SDK 7.1 RC to create Silverlight® and XNA Framework projects that target either Windows Phone OS 7.1 or Windows Phone OS 7.0. When you create a new project, you are prompted to select the version that you want to target. You can also upgrade existing Windows Phone OS 7.0 projects to take advantage of the new Windows Phone OS 7.1 features.
  • All your apps and games that work on Windows Phone OS 7.0 phones will continue to work seamlessly on Windows Phone OS 7.1 phones
  • Multitasking:
  • In Windows Phone OS 7.1, several features are introduced that allow an application to perform actions even when it is not the active foreground application.
  • The Execution Model and Fast Application Switching:
  • The execution model is now updated to include a dormant state before tombstoning. When a user returns to a dormant application, it resumes quickly and without displaying the Resuming… message to the user.
  • Alarms and Reminders:
  • You can use the Windows Phone SDK 7.1 RC to create alarms and reminders that display a dialog box on the screen or play a sound at a specified time.
  • Background Agents:
  • You can now run code in the background, even when your application is not running in the foreground. There are two main types of background tasks: periodic agents, and resource-intensive agents.
  • Background File Transfers:
  • You can now initiate file downloads in your application that continue after the user has navigated away. The file downloads continue to run in the background, even when your application is no longer running in the foreground.
  • Background Audio:
  • Your audio applications can now run in the background. Music continues to play while the user launches other apps, and the user has access to the volume controls.
  • Media:
  • Windows Phone OS 7.1 contains significant media improvements. Improvements include 32-bit color support, support for extensionless media URIs, and support for H.264 in Windows Phone Emulator. Also, the MediaElement uses hardware rendering for improved video quality while using less battery power. You can also now save a ringtone from your application.
  • Silverlight 4:
  • Windows Phone OS 7.1 now includes Silverlight 4.
  • Sensors:
  • In addition to the accelerometer, your applications can now access the compass and gyroscope sensors, enabling development of apps and games where the physical device itself is a means of user input. There is also now a combined motion API that provides data for attitude (yaw, pitch, and roll), device acceleration, and rotation rate.
  • Sockets Support:
  • Your applications can now communicate over sockets using the TCP and UDP protocols. Sockets allow two-way communication with cloud services, and enable scenarios such as instant messaging and multi-player gaming.
  • Network Information:
  • Your applications can now access information about the network and network interfaces. You can determine the mobile operator and network capabilities of a user’s phone, and you can get and set connection preferences and requirements.
  • Push Notifications:
  • The push notification system is now more robust. Toast notifications can now link to specific places within your application and pass parameters. Tile notifications now support two-sided application and secondary Tiles.
  • Live Tiles:
  • Application Tiles pinned to the Start screen now have two sides and they flip periodically, making Tiles both more engaging and more informative. Your applications can have more than one Tile pinned to Start, such as Tiles for different cities in a weather app.
  • Silverlight and XNA Integration:
  • Instead of choosing between Silverlight and the XNA Framework, you can now use both in a single app or game. You can combine the page navigation model of a Silverlight application with the rich graphics power of an XNA Framework application.
  • Application Performance Analysis:
  • Windows Phone OS 7.1 now gives you the ability to profile your apps and games. You can measure the use of system resources such as CPU and memory over time, and navigate directly from the results to your code.
  • Windows Phone Emulator:
  • Windows Phone Emulator is now enhanced to simulate sensor data. You can now do initial testing of applications that use sensor data directly in the emulator.
  • Visual Basic Support:
  • Visual Basic is now available for both Silverlight and XNA Framework applications. Visual Basic is fully integrated into the Windows Phone SDK 7.1 RC; you do not need to install it separately
  • Advertising:
  • The Microsoft Advertising SDK for Windows Phone enables you to monetize your apps and games by including ads from Microsoft Advertising. The Advertising SDK is now fully integrated into the Windows Phone SDK 7.1 RC; you do not need to install it separately.
  • WebBrowser Control:
  • The WebBrowser control now supports Internet Explorer 9 and the benefits of increased performance and HTML5 rendering. You can also programmatically access the cookie collection of a WebBrowser control through the WebBrowser extension methods.
  • Device Status:
  • The Windows Phone SDK 7.1 RC now gives you expanded programmatic access to a user’s Windows Phone device through the DeviceStatus class. You can now determine whether the device is using the battery or external power, whether a keyboard is available or deployed, the device manufacturer, and more.

New in Windows Phone SDK 7.1 Beta 2 Refresh (Jul 28, 2011)

  • Application platform APIs are now locked; you can feel confident to start getting ready for submitting your apps next month.
  • Emulator now has a nifty screenshot capability built in, allowing you quickly snap quality images of your app without the need of separate tools or cropping time. The images are great for use in app submission process or to share on your blog or with folks.
  • The profiler has been greatly improved and provides memory profiling.
  • As of this drop, you can install NuGet into the free version of the WPSDK tools.
  • The drop includes an initial peek at the Marketplace Test Kit; with the RC release, you’ll be able to use the included version of this toolkit to test your XAP file against the same certification testing tools that we use when ingesting apps for the Marketplace. For this refresh, it’s there but not fully functional

New in Windows Phone SDK 7.1 Beta 2 (Jun 30, 2011)

  • Multitasking:
  • In Windows Phone 7 Codenamed "Mango", several features are introduced that allow an application to perform actions even when it is not the active foreground application.
  • The Execution Model and Fast Application Switching:
  • The execution model is now updated to include a dormant state before tombstoning. When a user returns to a dormant application, it resumes quickly and without displaying the Resuming… message to the user.
  • Background Agents (Scheduled Notifications and Tasks):
  • You can now schedule actions for a future time, and they will occur even if the application is not running in the foreground. The actions that you can schedule belong to two categories: notifications and tasks.
  • Background Audio:
  • Your audio applications can now run in the background. Music continues to play while the user launches other apps, and the user has access to the volume controls.
  • Background File Transfers:
  • You can now initiate file downloads in your application that continue after the user has navigated away. The file downloads continue to run in the background, even when your application is no longer running in the foreground.
  • Sensors:
  • In addition to the accelerometer, your applications can now access the compass and gyroscope sensors, enabling development of apps and games where the physical device itself is a means of user input. There is also now a combined motion API that provides data for attitude (yaw, pitch, and roll), device acceleration, and rotation rate.
  • Sockets Support:
  • Your applications can now communicate over sockets using the TCP and UDP protocols. Sockets allow two-way communication with cloud services, and enable scenarios such as instant messaging and multi-player gaming.
  • Network Information:
  • Your applications can now access information about the network and network interfaces. You can determine the mobile operator and network capabilities of a user’s phone, and you can get and set connection preferences and requirements.
  • Push Notifications:
  • The push notification system is now more robust. Toast notifications can now link to specific places within your application and pass parameters. Tile notifications now support two-sided application and secondary Tiles.
  • Live Tiles:
  • Application Tiles pinned to the Start screen now have two sides and they flip periodically, making Tiles both more engaging and more informative. Your applications can have more than one Tile pinned to Start, such as Tiles for different cities in a weather app.
  • Silverlight and XNA Integration:
  • Instead of choosing between Silverlight and the XNA Framework, you can now use both in a single app or game. You can combine the page navigation model of a Silverlight application with the rich graphics power of an XNA Framework application.
  • Application Profiling:
  • Windows Phone OS 7.1 now gives you the ability to profile your apps and games. You can measure the use of system resources such as CPU and memory over time, and navigate directly from the results to your code
  • Windows Phone Emulator:
  • Windows Phone Emulator is now enhanced to simulate sensor data. You can now do initial testing of applications that use sensor data directly in the emulator.
  • Visual Basic Support:
  • Visual Basic is now available for both Silverlight and XNA Framework applications. Visual Basic is fully integrated into the Windows Phone SDK 7.1 Beta 2; you do not need to install it separately.
  • Advertising:
  • The Microsoft Advertising SDK for Windows Phone enables you to monetize your apps and games by including ads from Microsoft Advertising. The Advertising SDK is now fully integrated into the Windows Phone SDK 7.1 Beta 2; you do not need to install it separately.
  • Multi-targeting and App Compatibility:
  • You can use the Windows Phone SDK 7.1 Beta 2 to create Silverlight® and XNA Framework projects that target either Windows Phone OS 7.1 or Windows Phone OS 7.0. When you create a new project, you are prompted to select the version that you want to target. You can also upgrade existing Windows Phone OS 7.0 projects to take advantage of the new Windows Phone OS 7.1 features.
  • All your apps and games that work on Windows Phone OS 7.0 phones will continue to work seamlessly on Windows Phone OS 7.1 phones.

New in Windows Phone SDK January 2011 1.0.1 (Feb 5, 2011)

  • Copy and Paste:
  • Copy and paste is now enabled on Windows Phone 7 in the following controls:
  • System.Windows.Controls.TextBox
  • System.Windows.Controls.PasswordBox
  • Text input fields within the Microsoft.Phone.Controls.WebBrowser control.
  • Windows Phone Capability Detection Tool:
  • Detects the phone capabilities used by your application. When you submit your application to Windows Phone Marketplace, Microsoft performs a code analysis to detect the phone capabilities required by your application and then replaces the list of capabilities in the application manifest with the result of this detection process. This tool performs the same detection process and allows you to test your application using the same list of phone capabilities generated during the certification process.
  • Windows Phone Connect Tool:
  • Allows you to connect your phone to a PC when Zune software is not running and debug applications that use media APIs.
  • Updated Bing Maps Silverlight Control:
  • Includes improvements to gesture performance when using Bing Maps Silverlight Control.

New in Windows Phone SDK RTM (Sep 16, 2010)

  • Updating applications created with earlier versions of Windows Phone Developer Tools:
  • Changes have been made to the WMAppManifest.xml and template files. Now that manifest validation has been turned on, you may need to update these files in your older projects. A number of the changes are listed here. However, you can also compare the WmAppManifest.xml, app.xaml and app.xaml.cs files in a new project to the same files in your old projects to determine what has changed and then update your old files accordingly.
  • The following list shows changes you must make to the WmAppManifest.xml file:
  • In the element, change the value of the Genre attribute from NormalApp to apps.normal.
  • In the element, change the value of the RuntimeType attribute from SilverLight to Silverlight.
  • Remove the PlaceHolderString attribute from the element.
  • Add the NavigationPage attribute to the element and set it to the main page of your app. For example: .
  • Limit to the number side loading of applications on the phone:
  • Developer phone registration is the process through which a registered Windows Phone developer may unlock a retail Windows Phone to side load applications for development and testing. A limit on the number of side loaded applications that may concurrently be installed on the phone will be enforced. The default limit will be 10 applications. Attempts to side load more than 10 applications will result in an error. This limit does not affect applications installed via Windows Phone Marketplace.
  • XNA Framework assembly references:
  • The public key token for XNA Framework assemblies has changed. Assembly references in content projects and game projects created using previous releases of Windows Phone Developer Tools must be updated to work correctly. You can do this by removing and re-adding references that do not resolve correctly using the References node in the Visual Studio Solution Explorer.
  • Character encoding:
  • Support for all character encodings will be removed, except for those in the following list.
  • utf-8
  • utf-16
  • utf-16LE
  • utf-16BE
  • ISO-8859-1
  • A GamerPrivilegeException is returned if the user does not have content privileges:
  • If AllowProfileViewing and AllowUserCreatedContent flags are not set in a gamer profile, then the user cannot view profiles or display the gamer card of another user. The following methods now check for these privileges and will return GamerPrivilegeException if the user does not have these privileges:
  • Guide.ShowGamerCard(PlayerIndex player, Gamer gamer)
  • Gamer.BeginGetFromGamertag(string gamertag, AsyncCallback callback, object asyncState)
  • Gamer.GetFromGamertag(string gamertag)
  • Gamer.GetProfile()
  • Gamer.BeginGetProfile(AsyncCallback callback, object asyncState
  • The picture sharing mechanism has changed:
  • Previously, Windows Phone 7 would place the picture into the Isolated Storage of the application. The picture would then be loaded when the application was launched. Now, when the application is launched, it is passed a string token. To retrieve the picture, the application calls the GetPictureFromToken() method, public static Picture GetPictureFromToken(string token), which takes the token as a parameter and returns a Picture object. You will need to update existing applications.
  • Deployment and debugging:
  • While deploying or debugging, if you get the following error: “Application could not be launched for debugging”. First, verify that the application is installed on the target device and that there is no splash screen in the project. Then, uninstall the application and in Visual Studio perform the following steps:
  • 1. Add an image file with the name SplashScreenImage.jpg to the project.
  • 2. In Solution Explorer, right-click the file and select Properties.
  • 3. In the Properties pane, set Build Action to Content.
  • 4. Rebuild the application and redeploy it.
  • Installation on Windows Vista:
  • Windows Phone Developer Tools setup blocks installation on Windows Vista and forces the user to install Windows Vista SP2.

New in Windows Phone SDK Beta June (Jul 13, 2010)

  • Framework consolidation:
  • Consolidated the following DLLs into Microsoft.Phone.dll. Microsoft.Phone.dll contains the following:
  • Microsoft.Phone.Shell.dll
  • Microsoft.Phone.Controls.Navigation.dll
  • Microsoft.Phone.Controls.dll
  • Microsoft.Phone.Controls.WebBrowser.dll
  • Microsoft.Phone.Notification.dll
  • Microsoft.Phone.License.dll
  • Microsoft.Devices.dll
  • Microsoft.Phone.Execution.dll
  • Microsoft.Phone.Info.dll
  • Microsoft.Phone.Tasks.dll
  • Silverlight control template:
  • Updated the Silverlight for Windows Phone control templates and changed the default control styles and templates. Along with simple cosmetic changes, the sizing of some controls has changed such that any layouts depending on a specific height / width of a control may be broken. In particular, since the MinHeight / MinWidth constraint has been removed from some controls, you may see controls getting “squashed” if the explicit height set in XAML is too small. Therefore, you should review layouts with the new templates. In general, applications should avoid setting explicit widths and heights on elements unless strictly necessary. Relying on alignment will generally give better results.
  • Application Manifest File - Changed the following elements in the WMAppManifest file:
  • In the element, Genre attribute, the value changed from NormalApp to apps.normal.
  • In the element, RuntimeType attribute, the value changed from SilverLight to Silverlight.
  • In the element, removed the PlaceHolderString attribute.
  • Phone Controls:
  • Removed Microsoft.Phone.Controls.dll. You must remove the following:
  • References to Microsoft.Phone.Controls.
  • References to the xmlns:mpc namespace declaration.
  • Any styles that have a TargetType set to “mpc: …” in the app.xaml.
  • Additonal work items to consider:
  • Use the default ListBox style in place of PhoneListBox (delete the Style tag).
  • Instead of PhoneListBoxItemLayout, you can copy the XAML code from the app.xaml file of an old project that used the PhoneListBox and manually add it to your project.
  • Use the ToggleButton control and apply a custom template in place of ToggleSwitch and ToggleImageButton.
  • Page and Frame Classes/ Navigation/Controls:
  • Moved phone-specific members of Page and Frame classes to new classes, PhoneApplicationPage and PhoneApplicationFrame in the Microsoft.Phone.Controls namespace. Your builds will break if you use the old types.
  • API changes as follows:
  • PhoneApplicationFrame and PhoneApplicationPage are new classes.
  • SupportedOrientations property moved from Page class to PhoneApplicationPage class.
  • ApplicationBar property moved from Page class to PhoneApplicationPage class.
  • PhoneApplicationState property is new. It helps to save transient data on your page.
  • Use the State property in PhoneApplicationPage to store page-specific state instead of Stream property in PhoneNavigationEventsArgs.
  • Microsoft.Phone.Navigation namespace has been removed.
  • ObscuredEventArgs is a new class in Microsoft.Phone.Controls namespace. It handles obscurity changes in your application.
  • Removed the following items from Microsoft.Phone.Controls namespace:
  • Layout enumeration
  • ListView class
  • ListViewItem class
  • NavigatedEventArgs class
  • NavigationEventArgs class
  • ToggleControlButton class
  • ToggleControlSwitch class
  • Added NavigatingCancelEventArgs class and NavigationMode enumeration to System.Windows.dll.
  • WindowsPhoneEvents:
  • Removed the WindowsPhoneEvents class and replaced with PhoneApplicationService class.
  • Renamed Pause and Resume with Activated and Deactivated.
  • Renamed ApplicationIdleDetection with ApplicationIdleDetectionMode and UserIdleDetectionMode.
  • Manipulation EventArgs in Silverlight - Changed the following properties:
  • Removed the Manipulation.CompletedEventArgs.IsTapEvent property.
  • Changed Translation properties to populate only when a pan is detected.
  • This change affects the following properties:
  • ManipulationDeltaEventArgs.CumulativeManipulation.Translation
  • ManipulationDeltaEventArgs.DeltaManipulation.Translation
  • ManipulationCompleted.TotalManipulation.Translation
  • Previously, these values would be adjusted on every finger move and did not respect the system defined dead zones. With this change, the Translation properties are only populated once the user has moved a certain number of pixels (as defined by ITouchSession) away from the original contact point.
  • Changed the Scale property to return 1 instead of 0. This change affects the following properties:
  • ManipulationDeltaEventArgs.DeltaManipulation.Scale
  • ManipulationCompleted.TotalManipulation.Scale
  • Previously, when a Pinch/Stretch gesture was detected and the scale has not changed, the DeltaManipulation.Scale property would return 0. This made certain mathematical operations more difficult than necessary. Also, if the user started a stretch and then pinched back to the original contact points, the Scale would also report 0 which was confusing. It now returns 1 to signify the scale is 1:1 in relation to its original size. This change will affect any application that uses the IsTapEvent property, or includes code to detect and filter out scale values of 0 or relies upon non-filtered translations. To solve this issue, use OnClick instead of IsTapEvent, or check for a translation and scale of 0 in ManipulationCompleted.TotalManipulation or remove code that may have been adjusting Scale assuming a 0 delta instead of 1.
  • Push Notifications APIs:
  • Changed push notification APIs. These changes apply to Microsoft.Phone.Notification and Microsoft.Phone.Shell. The following list shows the summary of changes:
  • Changed class, method, and member variable names.
  • Removed certain delegates.
  • Removed most of the custom exceptions.
  • Live tile URLs changed to domain restriction.
  • Network state API - Changed the following namespace:
  • Old namespace Microsoft.Devices.NeworkInformation to new namespace Microsoft.Phone.Net.NetworkInformation.
  • LicenseInfo Class - Changed the following namespace and class names:
  • Old namespace Microsoft.Phone.License to new namespace Microsoft.Phone.Marketplace.
  • Old class name LicenseInfo to new class name LicenseInformation. This class contains the IsTrial method.
  • WebBrowser - Changed the following APIs:
  • WebBrowser is now a sealed class. You cannot inherit from it.
  • IsScriptEnabled, Source, and Base are now dependency properties.
  • NavigatedEventArgs change to NavigationEventArgs.
  • PhoneNumberChooserTask and PhotoChooserTask:
  • Modified the Chooser APIs, such as PhoneNumberChooserTask and PhotoChooserTask, to use delegates for returning data back to the calling application. The Completed event in those classes is fired when data is returned back to the application. You can assign delegates to the Completed event to retrieve the returned data. You must remove any references to ITask.
  • Accelerometer:
  • If you used Microsoft.Devices.Sensors namespace, you must change your implementation to use the latest Accelerometer class design.
  • Here is the summary of changes:
  • Removed abstract base class Sensor.
  • Removed generic SensorData class.
  • Removed AccelerometerReading structure.
  • Accelerometer is now a private/sealed class.
  • Changed AccelerometerReadingAsyncEventArgs to AccelerometerReadingEventArgs.
  • Replaced AccelerometerStartFailedException and AccelerometerStopFailedException with AccelerometerFailedException.
  • Renamed HResult property of AccelerometerFailedException to ErrorId.
  • Interlocked Class in System.Threading Namespace:
  • In the Silverlight System.Threading namespace, the 64-bit managed Interlocked methods are not supported. Use the 32-bit methods for your application.
  • The following is a list of the unsupported methods:
  • Interlocked.Add(Int64, Int64)
  • Interlocked.CompareExchange(Int64, Int64, Int64)
  • Interlocked.Decrement(Int64)
  • Interlocked.Exchange(Int64, Int64)
  • Interlocked.Increment(Int64)
  • Reactive Extensions for .NET Framework:
  • Changed namespace from System.Reactive to Microsoft.Phone.Reactive. The new assembly is Microsoft.Phone.Reactive.dll. You must update existing projects to use the new reference assembly.
  • The following namespaces were consolidated into a single new namespace Microsoft.Phone.Reactive:
  • System
  • System.Collections.Generic
  • System.Linq
  • System.Concurrency
  • System.Disposable
  • Note:
  • System.Observable.dll and IObservable and IObserver interfaces in System namespace did not change.
  • System.Windows.Browser:
  • Removed System.Windows.Browser.dll because this is not supported. The HTML DOM bridge APIs in System.Windows.Browser namespace are not supported in Windows Phone.
  • The HttpUtility class is supported in Windows Phone. It is moving to System.Windows.dll in System.Net namespace. If your application uses HttpUtility class, change the namespace to System.Net.
  • Any Windows Phone application that started as a Silverlight 3 application will likely be impacted by this change. The default unhandled exception event handler in the Silverlight 3 application template used a type from System.Windows.Browser.dll.
  • Application Bar - Changed the following Application Bar APIs:
  • The type of the PhoneApplicationPage.ApplicationBar property changed from ApplicationBar class to IApplicationBar interface. The member variable of the PhoneApplicationPage used to be of type ApplicationBar, it has been changed to type IApplicationBar. Since the ApplicationBar class implements the IApplicationBar interface, the code you wrote before will still work.
  • The interface change should not affect normal application code that creates or modified the application bar through XAML or code. In cases where the application bar objects are cached, you should use an interface.
  • The ApplicationBarIconButton class has a new required Text property. You must set this property before you add the button to the application bar; otherwise, you will get an InvalidOperationException.
  • Orientation and Layout Updates:
  • Orientation: Previously, only the page was rotated, but not the entire application frame. There was a two-phase event system for detecting changes in orientation, [On]OrientationChanging followed by [On]OrientationChanged. In this release, the entire application frame rotates and there is only a single event/override—[On]OrientationChanged. You should remove all handlers for the OrientationChanging event.
  • System Chrome: There are fewer layout passes to handle the differences in layout when page transitions occur. There is no visible effect as a result of this change.
  • The updates also provided the correct behavior for TransformToVisual and FindElementsInHostCoordinates APIs. Make sure that you remove any code that previously provided workarounds for these APIs.
  • User Interface:
  • Removed UIElement.Effect and the corresponding effects DropShadow and Blur.
  • New Exception for Xbox LIVE games:
  • If a game update is available, Xbox LIVE services will not be available until the player installs the game update. When a game update is available, GamerServicesDispatcher will throw a GameUpdateRequiredException when this method is called from a previous version of the game. Games must handle the GameUpdateRequired exception on Windows Phone and allow the player to confirm requests to update the application.
  • Application Activation Behavior:
  • A second launch of an application that is already running or deactivated causes the termination of the first instance of the application. Any code that assumed a resume of the application should be re-evaluated. Your code should not assume that launching the second instance will bring the previously running instance back to the foreground. For more information, see Execution Model Overview for Windows Phone.
  • Microsoft.Phone.Shell namespace - Changed the following enumerations:
  • Old DownloadInterval to new UpdateInterval.
  • Old DownloadRecurrence to new UpdateRecurrence.
  • XNA Framework:
  • While the XNA Framework supports Touch for Windows Phone, it no longer supports Touch for Windows-based games.
  • Texture2D.SaveAsGif has been removed.
  • Developers must deselect D3DX analysis to run the PIX for Windows performance tool.
  • The GamerServiceType parameter has been removed from GamerServicesDispatcher.Initialize.
  • GetPartnerToken now requires the AudienceURI parameter. This parameter cannot be null or an empty string.
  • In the Windows Phone Emulator, the SkinnedEffect bone index channel must be specified as one of the integer vertex element formats - either Byte4, Short2, or Short4. This same set of integer data formats cannot be used for other shader input channels such as colors, positions, and texture coordinates on the emulator.
  • In a previous release, the emulator did not support the VertexElement.Byte4 format for the bone index channel, and we advised developers to override ModelProcessor.ProcessVertexChannel and convert bone index channel data from Byte4 to Vector4. This workaround will not work in this release and must now be removed.
  • Any vertex format can be used with any shader input channel on Windows Phone devices, Xbox 360, and Windows.

New in Windows Phone SDK CTP April (Apr 30, 2010)

  • This release has been tested to work with the final release of Visual Studio 2010.
  • An updated Windows Phone 7 OS image for the Windows Phone Emulator.
  • A few APIs in the frameworks have been added and or changed. See this MSDN page for more details.
  • The documentation has been updated with new and expanded topics. See this MSDN page for more details.
  • We’ve provided limited support for launchers and choosers. In cases where the underlying built-in experience is not present launchers and choosers are still not available (i.e. the email chooser asks you to select a contact, but there are no contacts in the emulator and no way to add one).
  • Pause/Resume events are now supported.
  • If the tools are installed as the admin user, non-admin users are now able to deploy to the emulator.
  • A problem with incremental deployment of projects has been fixed.
  • A problem resulting in the error "Connection failed because of invalid command-line arguments" being displayed during project creation has been fixed.
  • A problem where the Windows Phone node was not appearing in VS 2010 on non-system drives has been fixed.
  • Design time skin refresh issues have been addressed.