What's new in Windows Phone SDK 8.0
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Welcome to Windows Phone SDK 8.0. Windows Phone 8 brings a number of new and updated features to app developers, including native gaming development, a phone-specific version of the Windows Runtime, and a new kernel. We’ve put together this introduction to help you become acquainted with new and updated features in Windows Phone 8 and Windows Phone SDK 8.0. We’re proud of the tools you have at hand in the SDK. They’re tools that can help you create the Windows Phone apps that give your users even more reasons to love their Windows Phone. Here we give you a glimpse of the features available to you to use in your app development, and how to learn more about them.
This topic contains the following sections.
- Windows Phone 8 Update 3 Emulators
- Windows Phone 8 Update 3
- SDK 8.0 Update for Windows Phone 8.0.10322
- Visual Studio 2012 Update 3
- Visual Studio 2012 Update 2
- Multilingual App Toolkit for Visual Studio 2012
- SDK Update for Windows Phone 7.8
- SDK tools
- Tiles and notifications
- Lock screen
- Maps and navigation
- Direct3D and games
- App models
- Camera and photos
- User interface
- Data and extensibility
- Windows Phone Store
- Ready for Business
- Localization and globalization
- App manifest file
- App compatibility
- Common language runtime
- Related Topics
The Windows Phone SDK 8.0 Update 3 Emulators package adds five new emulator images to an existing installation of Windows Phone SDK 8.0. With this update installed, you can test how your apps will run on devices that have Update 3 (that is, version 8.0.10492 or higher) of Windows Phone 8. This update requires either Visual Studio 2012 with Update 4 or later, or Visual Studio 2013.
To download the update, go to Windows Phone SDK 8.0 Update 3 Emulators.
Windows Phone 8 Update 3 (version 8.0.10492 and above) includes the following new or changed features for app developers.
Your apps can only use these features on devices that have Windows Phone 8 Update 3. This typically requires conditional logic in your code to test whether a device has Windows Phone 8 Update 3. See the code sample later in this section.
Increased memory cap for apps. On 2-GB phones, the maximum memory available for apps that have Windows Phone 8 Update 3 is 570 MB. For more info about memory caps, see App memory limits for Windows Phone 8.
Increased memory cap for background audio apps. On devices that have 1 GB of memory, the memory cap for background audio apps has increased from 20 MB to 25 MB. For more info about background audio apps, see Background audio overview for Windows Phone 8.
New Uri schemes for additional settings. There are new Uri schemes to display the Battery Saver settings page or the Screen Rotation settings page. (The Screen Rotation settings page is also new in Windows Phone 8 Update 3.) For more info, see URI schemes for launching built-in apps for Windows Phone 8.
Additional use of app icon. In the task switcher, the app icon and app title are now displayed along with the screenshot of the last active page of the app.
Custom sounds for toast notifications. You can now use reflection to specify custom sounds for toast notifications. For more info, see Toasts for Windows Phone 8.
New property related to push notifications. A new Boolean property - Windows.Phone.System.Power.PowerManager.PowerSavingModeEnabled – is available through reflection. The new property indicates whether battery saving mode is turned on. It complements the existing PowerSavingMode property, which indicates whether battery saving mode is active. When PowerSavingModeEnabled is true, an app can warn users that push notifications are not received. For more info, see Setting up your app to receive push notifications for Windows Phone 8.
Changed behavior of device-width. The behavior of device-width when used with viewport settings has changed in the WebBrowser control and in Internet Explorer. For more info, see Web development for Windows Phone 8.
Changed behavior of toast notifications. Toast notifications are now displayed when the target app is running in the foreground but is obscured by other activity such as a phone call or the lock screen. Previously, toast notifications were not displayed when the target app was running in the foreground, even when the app was obscured.
For more info about the new and changed features for app developers in Windows Phone 8 Update 3, see the following post on the Windows Phone Developer Blog: Introducing Windows Phone Preview for Developers.
You can use the following code to test whether a device has Windows Phone 8 Update 3.
The Windows Phone SDK 8.0 Update for Windows Phone 8.0.10322 adds four new emulator images to an existing installation of Windows Phone SDK 8.0. With this update installed, you can test how your apps will run on devices that have build 8.0.10322 or higher of Windows Phone 8. This update requires either Visual Studio 2012 with Update 4 or later, or Visual Studio 2013.
To download the update, go to SDK 8.0 Update for Windows Phone 8.0.10322.
Visual Studio 2012 Update 3 installs a fix to prevent potential compatibility issues when you install and run Windows Phone 8 Emulator on Windows 8.1 Preview.
Visual Studio 2012 Update 3 is the latest update and is a cumulative update that includes features released in earlier Visual Studio 2012 updates.
To download the update, go to Visual Studio 2012 Update 3.
Visual Studio 2012 Update 2 installs the following new features for Windows Phone apps.
Unit testing for Windows Phone apps. Create unit test projects for Windows Phone apps and run the tests from Test Explorer. For more info, see Unit testing apps for Windows Phone 8.
Command-line deployment. Deploy Windows Phone apps at the command prompt. You can also deploy apps from a script or custom app. For more info, see How to deploy and run an app for Windows Phone 8.
Command-line precompilation and signing for company apps. Precompile and sign company apps at the command prompt when you build them by using the Microsoft Build Engine (MSBuild). You also can build, precompile, and sign apps from a script or custom app. For more info, see Preparing company apps for distribution for Windows Phone.
To get the features that were originally released in Visual Studio 2012 Update 2, download Visual Studio 2012 Update 3. This is a cumulative update that includes features released in earlier Visual Studio 2012 updates, including Visual Studio 2012 Update 2.
The Multilingual App Toolkit for Visual Studio 2012 helps you localize your Windows Phone apps by providing translation support, translation file management, and editor tools that are integrated with Visual Studio. To learn more about the Multilingual App Toolkit, watch the short video, Introduction to the Multilingual App Toolkit.
To download the toolkit, go to Multilingual App Toolkit for Visual Studio 2012.
With Windows Phone SDK Update for Windows Phone 7.8 you can provide the Windows Phone 8 Start screen experience in apps that target Windows Phone OS 7.1, using small, medium, and wide Tiles. For more info, see Adding Windows Phone 8 and Windows Phone 7.8 Tile functionality to Windows Phone OS 7.1 apps.
You can also test how your apps and games will run on Windows Phone 7.8 devices with new Emulator 7.8 and Emulator 7.8 256-MB deployment options.
To download the SDK Update, go to Windows Phone SDK update for Windows Phone 7.8.
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 8. 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 8.
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 8.
XNA Framework support. You can develop XNA Framework apps that run on Windows Phone 8. To do this, you must set the target to Windows Phone OS 7.1. For more info, see XNA Framework and app development for Windows Phone 8.
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 the emulator for Windows Phone 8.
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 for Windows Phone 8.
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 8.
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 8.
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 8.
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 8.
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 the Store for Windows Phone 8.
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.
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.
Windows Phone 8 has a new Map control, available through the following namespaces:
For more info about the new Map control, see Maps and navigation for Windows Phone 8.
For useful extensions to the Map API, including a Pushpin, download the Windows Phone Toolkit.
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 driving or walking directions for Windows Phone 8 and How to respond to requests for directions for Windows Phone 8.
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.
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.
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.
Windows Phone 8 supports WVGA, WXGA, 720p, and 1080p devices. The following table lists the new resolutions. All of these resolutions are supported in Windows Phone 8 Emulator.
480 × 800
480 × 800
768 × 1280
480 × 800
720 × 1280
480 × 853
1080 × 1920
480 × 853
For more info about multi-resolution support in Windows Phone 8 Update 3, see Multi-resolution apps for Windows Phone 8.
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.
Windows Phone 8 supports two distinct app models on which you can base your app.
XAML is a declarative language that you can use to create user interface elements, such as controls, shapes, and text. XAML app development is primarily used by C# and Visual Basic developers to build general purpose apps. 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. XAML apps can reuse C++ code by including it in a Windows Runtime Component. New project templates allow you to incorporate Direct3D graphics into XAML apps. For more information about XAML, see User interface for Windows Phone 8.
Direct3D app development is an attractive choice for developers who want the graphics capabilities of Direct3D. It is primarily used by C++ developers to build games that require high performance. For more information, see Games for Windows Phone 8 and Direct3D app development for Windows Phone 8.
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.
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.
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 8.
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 8.
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 8.
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 PhotoCaptureDevice class to control photo properties such as ISO, white balance, and exposure. You can even programmatically adjust the focus position. The 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 8 and Capturing video for Windows Phone 8.
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).
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.
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:
For more info about background audio, see Background audio overview for Windows Phone 8.
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.
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.
For more info about new Launchers in Windows Phone 8, see Launchers for Windows Phone 8.
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 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.
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.
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
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.
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.
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 8 and Reading from the SD card for 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 8.
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.
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.
New URI parameters
Event Card (new quick card)
EventName, StartDate, PlaceName, PlaceLatitude, PlaceLongitude, PlaceAddress
For more info about these parameters, see Search extensibility for Windows Phone 8.
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.
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.
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.
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 8.
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 8.
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 8.
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 8.
The common language runtime in Windows Phone 8 offers the following new features and differs from Windows Phone in the following areas:
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.
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.
The garbage collection heap in Windows Phone 8 has three generations, not two 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.
Apps can invoke first-party Windows Runtime APIs from managed code.
COM interop and P/Invoke are not supported.
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.