Windows Phone 8 and Windows 8 platform comparison
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
The release of Windows Phone 8 is a significant step toward convergence with Windows 8. Here, we compare the Windows Phone 8 and Windows 8 development platforms, and discuss how developers can create apps for both platforms and maximize code reuse.
This topic contains the following sections.
- Common native API
- Common Windows Runtime API
- Shared .NET engine
- Similar XAML UI controls
- Related Topics
Common native API
Windows Phone 8 now includes support for building C++ games using our new Windows 8 aligned Direct3D app model. The set of native APIs that are common to Windows Phone 8 and Windows 8 are listed in the following table.
Common native API |
---|
DirectX 11.1 |
XAudio2 |
MediaEngine |
STL |
CRT |
WinSock |
For more info about native API support for Windows Phone 8, see the following:
Supported Microsoft Media Foundation APIs for Windows Phone 8
Audio Capture and Render APIs for native code for Windows Phone
Windows Phone 8: Using C++ in your Applications (Build 2012)
Common Windows Runtime API
Windows Runtime is a technology first introduced in Windows 8 and which offers a core infrastructure, a common type system, and a standard programming model. It’s implemented in C++ and projected into C#, VB, C++, and JavaScript, so it’s easy to consume naturally in the language of your choice. A significant subset of Windows Runtime is built natively into Windows Phone 8, with the functionality exposed to all supported languages. This gives you the ability to use the same API for common tasks such as networking, working with sensors, processing location data, and implementing in-app purchase. By using common Windows Runtime API in your app, you increase the potential to share code between your Windows Phone 8 and Windows Store apps to save time and improve the maintainability of your apps over time. The following table lists the Windows Runtime APIs that are common to both platforms.
Common Windows Runtime API |
---|
Networking |
Sensors |
Proximity |
Storage |
DataSaver/Connection Manager |
Location |
Touch |
Online Identity |
Keyboard |
Launchers & Choosers |
In-App Purchase |
Sensors |
Threading |
Base Types/ Windows.Foundation |
We’ve also added Windows Runtime APIs for the phone to enable more phone scenarios, including APIs for speech synthesis and recognition, and VoIP. The combination of Windows Runtime APIs adopted from Windows 8 and the additional Windows Runtime APIs we’ve added on the phone is called Windows Phone Runtime API. For more info about the Windows Phone Runtime API set, see Windows Phone Runtime API.
Shared .NET engine
In Windows Phone 8, the .NET Compact Framework has been replaced by CoreCLR, which is the same .NET engine used on Windows 8. This delivers stability and high performance to your apps, so they can take advantage of multicore processing and improve battery life. Most new devices are now multicore, and the operating system and apps are expected to be faster because of that technology. Both Windows Phone 8 and CoreCLR take advantage of multiple cores and use modern software technologies and patterns. Other improvements that you can take advantage of in your apps as a result of adopting the CoreCLR include the availability of the async programming model and the improved auto-tuning garbage collector. When you submit your Windows Phone app to the store, it will be compiled in the cloud using an optimizing compiler to produce high-quality ARM code. Your app will be delivered to the user’s phone pre-compiled. This improves start time and saves battery life. You can leverage the same .NET engine in your XAML apps for Windows Phone 8 and Windows 8, and use sharing techniques to maximize code reuse for these apps on both platforms. For more info, see Maximize code reuse between Windows Phone 8 and Windows 8.
Similar XAML UI controls
Windows Phone 8 and Windows 8 have similar but different design guidelines and building blocks used to create your UI. The core guideline for UI development in Windows Phone 8 and Windows 8 is to design the user experience for your app tailored for each platform. It’s important to make your app look right and be immersive on each device on which it runs to create the best possible experience for your app users.
On Windows Phone 8 you’ll want to create your UI to target the phone form factor, supported screen resolutions, and unique user experiences such as lock screen integration, live Tiles, and the navigation model. Similarly, on Windows 8, your Windows Store app should adhere to Windows 8 user experience best practices, and take advantage of the platform’s support for different app views and navigation controls, and of integration with the device through contracts and the many other features that will enhance your app and make it a success.
You create your UI on both platforms using XAML. Your app will consist of one or more pages, and each page contains a UI created by and customized by UI controls. The set of controls available on Windows Phone 8 is available in the System.Windows.Controls namespace. The set of controls used on Windows 8 is in the Windows.UI.Xaml.Controls namespace. Although these are different namespaces and the types are different, there’s a lot of similarity in the controls that are supported. Most of the controls are named the same and will be familiar to you coming from either platform. This supports design reuse—you can design your app for Windows Phone 8 and Windows 8 with the same UI building blocks in mind. For a comparison of the control sets available on both platforms, see XAML controls comparison between Windows Phone 8 and Windows 8.
See Also
Other Resources
Maximize code reuse between Windows Phone 8 and Windows 8
How to Leverage your Code across WP8 and Windows 8 (Build 2012)
Windows Phone 8: Native C/C++ Game Development (Build 2012)
Windows Phone 8: Using C++ in your Applications (Build 2012)
Asynchronous Programming with Async and Await (C# and Visual Basic)
Announcing the release of the .NET Framework for Windows Phone 8