Ultrabook Feature Compatibility Matrix for Windows 8 Development

Download Article


Ultrabook Feature Compatibility Matrix for Windows 8 Development(PDF 789 KB)

Abstract


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.

Introduction


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.

  • Windows.Sensors (Accelerometer, Gyrometer, Ambient Light Sensor, OrientationSensor...)
  • Windows.Networking.Proximity.ProximityDevice (NFC)
  • Windows.Device.Geolocation (GPS)
  • Windows.UI.Notifications.ToastNotification
  • Windows.Globalization
  • Windows.Security.Authentication.OnlineId (including LiveID integration)
  • Windows.Security.CryptographicBuffer (useful binary encoding/decoding functions)
  • Windows.ApplicationModel.DataTransfer.Clipboard (access and monitor Windows 8* Clipboard)

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
Feature/Toolset C++ C#/VB JavaScript*/ HTML5 Unity* C++, C#, VB & XAML JavaScript/HTML5 Unity
Intel® WiDi Yes Yes YES (Browser Plugins) No No No
Touch Gestures Yes Yes Yes Yes Yes Yes
Orientation Sensors (accelerometer, inclinometer, gyrometer) Yes Yes Yes No soon Yes Yes
Light Sensor Yes Yes Yes No soon Yes Yes
OpenGL(WebGL) Yes Yes Yes (WebGL) Yes No No
DirectX* Yes Yes Yes Yes Yes Yes
Intel® Smart Connect Yes Yes Yes Yes Yes No
NFC Yes Yes Yes Yes
GPS Yes Yes Yes Yes
Intel AppUp® center Yes Yes Yes Yes No No
Windows Store No No No No Yes Yes

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
JavaScript* and HTML Build apps using JavaScript Takes advantage of powerful advancements in standards-based web technology. Native Windows apps can be built with HTML markup, JavaScript, and CSS3. Visual Studio* Express 2012 for Windows 8 also provides access to a library of application templates to streamline and accelerate app development.
C# or Visual Basic* and XAML Build apps using C# and VB WinRT APIs are available in all supported languages, including JavaScript, C++, C#, and Visual Basic. WinRT APIs are accessible to other Microsoft programming frameworks, like the .NET Framework or Windows C Runtime Library. Traditional Windows desktop apps can also access a subset of the new Windows Runtime functionality, in addition to the proven Win32* and .NET APIs.
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.

You can find more information for developing apps for Windows 8 in the Windows 8 Product Guide for Developers. You can also download Windows Store App Sample Code available for C++, C#, JavaScript, and VB.Net to help you get started.

Now let’s dive deeper and look further into compatibility among some of the more common developer tools/interfaces.

Windows 8 Store Apps Considerations


  • Win32 APIs: Most Win32 APIs are not exposed to Windows 8 UI and many existing tools/libs have dependencies
  • WinRT APIs: New API is not comprehended by existing PC apps and Intel Tools
  • Graphics and Media: Supports only a subset of technologies (DX11.1, HMFT, and DXVA)
  • Application Model: New threading model is not comprehended by Intel Tools
  • Windows 8 Store: Cert prevents Windows 8 UI apps from accessing APIs/libs across barrier.
  • Windows Store app development is supported only on Windows 8. (No support for Windows 7 or Windows Server 2012.)

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)
Microsoft Compilers Full Win32 support Full WinRT support: XAML/C++, XAML/VB+C#, HTML/JavaScript*
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.)

Resources


Relevant Intel Blogs


About the Author

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.

 

 

Intel, the Intel logo, AppUp, Core, and Ultrabook are trademarks of Intel Corporation in the US and/or other countries.

Copyright © 2012 Intel Corporation. All rights reserved.

*Other names and brands may be claimed as the property of others.

OpenCL and the OpenCL logo are trademarks of Apple Inc and are used by permission by Khronos.

OpenGL is a registered trademark of Silicon Graphics, Inc. in the United States and/or other countries worldwide.

Performance Notice

For more complete information about performance and benchmark results, visit www.intel.com/benchmarks

For more complete information about compiler optimizations, see our Optimization Notice.

Comments

Bob Duffy (Intel)'s picture

Great job Gael, nice to see all this info in a snapshot like this.