If you are an app developer and want to learn about what is required for Windows 8 Desktop and Windows Store apps, this article, Ultrabook Feature Compatibility Matrix for Windows 8* Development, will help guide you in the right path.
You will need to understand what programming models are available to you for apps targeted for mobile devices (phones, tablets) and apps targeted for the Ultrabook™ devices. Also, whether you are porting your current app, or writing a new app, you will need to understand what developer tools and programming environments are compatible with Windows 8 development.
This article will help you determine, not only how portable your current apps are, but what development paths to take for new app development.
There are many new features available to Ultrabooks running Windows 8 (specifically those with 3rd generation Intel® Core® processors.) The Windows 8 developer framework now has two new modes of operation for apps. Developers can target their apps to run on the Windows 8 Desktop or they can write Windows Store apps (this is the new UI environment.) While there aren’t a lot of changes for developers writing desktop apps, the Windows Store app development environment has some new requirements. We will explore what it means to develop apps that support these Ultrabook features for both platforms (Desktop and UI) using some of the more popular existing tools and developer environments.
Architecture Support for Windows 8 Application Modes
Developers should be aware that feature availability may differ according to development language or mode of Windows 8. The development environments shown in Figure 1 are those communicated on the Microsoft Developer’s Network. Apps targeting the WinRT APIs are now being referred to as Windows Store apps. It is important to note that in order to write a Windows Store app, the only development environment allowed is MS Visual Studio* 2012, with project templates. Writing apps for the Desktop is much less restrictive, currently.
Figure 1. High Level Development Environments allowed for Windows 8* apps
You may want to port your current apps to the Windows 8 environment. To do so, you need to know if the tools you are currently using will work and the features you wish to expose are supported. For example, Unity*, a gaming engine very popular amongst app developers, has not been updated to include all the features available in Windows 8.
Taking this further, Figure 1 implies that there is no cross functionality between WinRT and Desktop APIs; this is not entirely the case. The following WinRT APIs are shared with the Windows 8 Desktop environment.
For more information about how to use WinRT APIs in desktop apps, take a look at Xavier Hallade's blog, “Using Windows 8* WinRT API from desktop applications.”
The following matrix lists the features that are available for the most common languages and modes of development. Where possible, links are provided to supply more information for the intended feature.
|Windows 8 Desktop Mode Apps||Windows Store Apps|
|Intel® WiDi||Yes||Yes||YES (Browser Plugins)||No||No||No|
|Orientation Sensors (accelerometer, inclinometer, gyrometer)||Yes||Yes||Yes||No soon||Yes||Yes|
|Light Sensor||Yes||Yes||Yes||No soon||Yes||Yes|
|Intel® Smart Connect||Yes||Yes||Yes||Yes||Yes||No|
Building Windows Store apps brings the most changes for software developers. This is a whole new interface so you need to take care to ensure that the planned use of tools is supported for this environment. Table 2 provides further detail on what are the requirements for developing Windows Store apps. Visit the Microsoft Dev Center for Getting Started.
Intel® Smart Connect Technology (ISCT) does not have any developer-specific APIs. To take advantage of ISCT, it needs to be enabled in the BIOS (this should be the default) and should be configured in the OEM-provided User Interface. For examples of what applications are best suited for ISCT and further details on how to implement the technology in an application, please see Developing for Intel Smart Connect Technology.
Table 2. Options for building Windows* Store apps
|Language Support||Getting Started||Advantages/Comments|
|C++ and XAML||Build apps using C++||The new Windows 8 controls have been fully implemented in XAML. Native C++ developers can take advantage of XAML to build highly interactive UIs.|
|C++ and DirectX*||Build apps using DirectX||Provides greater flexibility and greater access to system resources, especially graphic devices.|
Now let’s dive deeper and look further into compatibility among some of the more common developer tools/interfaces.
Table 3. Common Developer Tool Compatibility Matrix
|Windows 8* Desktop Mode Apps||Windows Store apps|
|Programmable GFX- OpenGL*||Yes||No|
|Programmable GFX – OpenCL*||Yes||No|
|Programmable GFX-OCL, CM||Yes||No|
|DirectX*||Utilize Win32* DX11 Gfx support exposed in Win8 UI||Utilize Win32 DX11 Gfx support (Games and Media)|
|Amplifier||Full tool functionality support||Partial feature support in WinRT apps. No thread model support. No Hotspot/Locks/Concurrent analysis for WinRT apps WinRT API support WIP|
|Intel® Graphics Performance Analyzers (Intel GPA)||Full tool functionality Except: IE10, WinRT app analysis and DX10 in Frame Analyzer (with 15.28 driver + new OpenCL SDK)||No (WinRT does not support Instrumentation)|
|MS xPerf/xRay||Full tool functionality||Full system wide support with some limitations (ETW data collection command line only. Viewer Desktop UI only)|
|Intel® Performance Bottleneck Analyzer (PBA aka xIF)||Works. Supports Desktop app analysis. Viewer works in Desktop.||Partial feature set works with WinRT. (Not available: Thread Models, WinRT data, JIT support)|
|Dev Environments (VS, Eclypse*)||Yes||Partial|
|HTML 5 HW Acceleration||Yes||Yes|
|DirectX 11.1 Support||YES (with C++)||Yes|
|In-App Purchase||No||YES (customer must have purchased full version of app.)|
Gael is a software engineer in the Developer Relations Division at Intel working with Business Client Technologies. Gael holds a BS in Math and an MBA, both from the University of New Mexico. Gael enjoys hiking, biking, and photography.
For more complete information about performance and benchmark results, visit www.intel.com/benchmarks
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804