Windows 8* Store vs Desktop App Development

When developing apps for Windows 8 and Intel devices, you have a unique opportunity and decision regarding which type of Windows 8 app you would like to develop. The following article helps define and point to resources to help you decide which type of app development is for you.

Developing for Ultrabook™ Windows* 8 desktop applications

Ultrabook™ devices running Windows* 8, a powerful combination for a convergent device, allow users to run both desktop and Windows Store (formerly known as Metro-style) apps. Microsoft’s new WinRT APIs provide the means for developers to create Windows Store applications. Additionally, some WinRT APIs can be leveraged to develop desktop applications on Windows 8. This means developers can easily port their legacy Windows applications to Windows 8 desktop applications.

Desktop apps run in the Windows Desktop mode of Windows 8. This is the mode that looks like the legacy Window environment, however, it is not entirely a legacy experience. A common misconception is that you cannot develop new Windows 8 touch and sensor based applications for Desktop mode, or that you cannot have Desktop apps listed in the Windows 8 store. Both of these are false. You can develop touch and sensor Desktop apps, and you can list those apps in the Windows Store. Also, some hardware drivers and device features like Intel® Wireless Display (Intel® WiDi) and OpenGL* are currently only accessible for apps running in Desktop mode. Developers should be aware that some device features and technologies may yet to be exposed or developed for the Windows 8 UI environment.

Advantages of developing desktop applications:

  • Traditional Win Forms or MFC apps are now called “Desktop apps” because they run in the Desktop Windows Manager environment. Desktop apps can either use the native Win32/COM API or a .NET-style API.
  • Windows 8 desktop apps retain the flexibility of traditional Windows desktop apps by offering a Windows traditional notebook-like UI along with touch capabilities. Except for the missing start button, the UI of Windows 8 Ultrabook desktop looks very similar to the traditional notebook environment.
  • Full access to familiar x86 applications and tools. Ultrabook desktop mode allows access to the hardware counters and performance monitoring tools. These features help in optimizing the desktop application for the latest Ultrabook hardware. Desktop apps still have access to low level drivers and can communicate with those drivers to get low latency performance.
  • Basic level of mobile API exposed to C++ and C#
  • Legacy driver and device support. Windows 8 adds native support for USB 3.0, which allows for faster data transfers and improved power management with compatible devices. Desktop also supports device drivers for touch and sensors.
  • The differences between desktop sensors and WinRT sensors is listed in this link.Ultrabook and Tablet Windows*8 Sensors Developers Guide
  • Cross-platform graphics (OpenGL) is supported.
  • Apps can be distributed through Intel AppUp store
  • Apps can be listed in Windows Store
  • Portability to Windows Store app: Microsoft’s new WinRT APIs provide the means for developers to create Windows Store apps on Windows 8. Additionally, some WinRT APIs can also be leveraged to develop desktop applications on Windows 8. This means developers can easily port their legacy Windows applications to Windows 8 desktop applications.
  • Low friction porting / optimization for legacy Windows apps. All apps that work on Win 7 should work on Win 8 without any changes.
  • The Intel WiDi Extensions SDK is a development package that allows application developers to extend their experience to an HDTV using Intel WiDi. Using this SDK, developers can build applications that automatically scan and connect to Intel WiDi TV adapters from within their applications. At this time, only Windows 8 Desktop apps are supported (not Windows Store apps.)

Languages that are supported on the desktop mode are: C++, C#, HTML5/JavaScript*, Unity*, Python*, QT, Flash/AIR, Java*, anything that can be built and compiled to run on Windows 7/8.

Features supported:

  • NFC
    • Ultrabooks powered by Windows 8 supports near field communication between two Ultrabook devices.
  • Intel® Anti-Theft Technology (Intel® AT)
    • This smart security hardware helps protect data by disabling a lost or stolen Ultrabook from anywhere in the world. When the Ultrabook is returned, it can be easily reactivated without harm to any data or digital content. (Available as an option on designated Ultrabook devices with Intel® Core™ processors.)
  • Intel® Identity Protection Technology (Intel® IPT)
    • Helps protect our identity and assets online by adding a trusted link to the system, accounts, and favorite online places. (Available on select systems.)
  • Intel® Rapid Start Technology
    • Returns the Ultrabook to full operational power within seconds. This ultra-responsive capability gives the device the power to resume in a flash, and ultra-low power consumption when on standby.
  • Intel® Smart Response Technology
    • Quickly recognizes and stores the most frequently used files and applications where they can be accessed right away.
  • Multitouch
    • Windows 8 Desktop applications can support touch as well. Gestures, such as single- or two-finger tap, drag, swipe, rotate, and pinch/spread, can increase usability of an existing desktop application.
  • Orientation Sensors
    • For desktop applications using Windows Native, the sensor interface is the same as Windows 7 – exposing sensors functionality through a set of COM interfaces. Using these interfaces an application can communicate with the sensor manager and the sensors themselves. The sensor manager, which tracks the available sensors, can notify your application when a sensor connects, and therefore may be available for use. It also gives your application access to the available sensors. Sensors, themselves, can notify your application about new data, changes in sensor state, sensor disconnection, and custom events defined by the sensor manufacturer. Communication with the sensor manager and the sensors happens through COM interfaces. To talk to the manager or sensors you use the Sensor API. To receive event notifications, your program must implement the required COM callback interfaces.
  • Intel Smart Connect
    • Keeps email, favorite apps, and social networks continually and automatically updated even when the system is asleep (Available on select systems.)

Windows Store Apps

Windows Store apps are often called WinRT apps and were formerly known as Metro apps. These are applications that take advantage of new WinRT APIs and can only be distributed in the Windows 8 store. Microsoft has enabled a number of features and streamlined some of its touch and sensor APIs into a robust set of device APIs under WinRT. WinRT-based apps are developed using Visual Studio* 2012 and can be written in C++, C#, or web technologies like HTML5, JavaScript*, and CSS3, then packaged and distributed to the Windows Store from the Visual Studio IDE. We will look at each aspect in detail below.

Advantages

  • Robust and Modern UI and Navigation
    In Windows Store apps more focus is given to the content, so you should expect to focus on your apps’ content. You can envision these apps as websites, where you know what data to highlight and how to navigate them. Every app will open in a single window and the window covers the whole screen. However, inside your app you have multiple views and layouts depending on app needs. These layouts, views, and their navigations are consistent across various devices and form factors. You can navigate between and within the app using its smooth touch screen gestures and pen/stylus inputs apart from traditional mouse and keyboard inputs.
  • Active Tiles
    Apps in Windows 8 are tiled instead of icons. “So what?,” you might be asking. These tiles are not just like “Large icons,” which we had in Windows 7 and below. They are something similar to widgets for Windows 7. They can provide live data even if the app is not running on the foreground. They can refresh themselves to show the latest content either by push (using Windows Push Notification Services – WNS) or pull (using Web Services) notification mechanisms. For example, if you have a social media app where you want to give updates from any social media site, you can do so. If you have a stock market app, you can give updates on the stock that a user may be interested in.
    More Info: Creating tiles and badges – by Microsoft
  • Search and share content across apps
    In the past, sharing data between two applications was difficult due to the heterogeneous nature of data formats and/or processing mechanisms. However, Windows Store apps can talk to each other quite easily using a concept called “App Contracts.” These contracts eliminate the hassles of understanding each application’s APIs and data formats. You don’t need to know anything about the target app other than its declared support for the target contract. App contracts allow you to search and share content between different apps.
    More Info: App contracts and extensions (Windows Store apps) – by Microsoft
  • Multi- Touch
    In Windows 8, you should consider touch as the primary user input mechanism. Windows 8 supports Multi-Touch user interface events. There are three primary touch events provided by Windows Runtime Platform API to respond to user inputs: pointer, gesture, and manipulation events.

    Pointer events are focused more on surface (screen) “contact” from input devices. These devices could be mouse, pen/stylus, single finger, or multi-finger.
    Gesture events are primarily focused on capturing single finger events such as tapping and press-and-hold.
    Manipulation events trigger when actions such as pinching/stretching, panning/scrolling, zooming and rotating happens.
    Depending on the combinations of these events, the following Gestures are supported by Windows 8.
    Gesture Description
    Tap It is like a key-press event on a keyboard. One finger touches the screen and lifts up.
    Press and hold Press the screen with one finger and hold.
    Slide Move the finger(s) and the screen moves in the same direction.
    Swipe Similar to slide, but slide will be for a shorter distance.
    Turn Two or more fingers touch the screen and rotate in a clockwise or counter-clockwise arc.
    Pinch It’s like squeezing using one or more fingers.
    Stretch Two or more fingers touch the screen and move farther apart.
    More Info: Responding to user interaction
  • Sensors
    Windows 8 provides a robust set of APIs for various sensors. Some of them give access directly to physical sensors data (using hardware drivers) and some by using virtual sensors through a concept called Sensor Fusion. For example, the Accelerometer invokes Inclinometer by using angular position; Accelerometer + Gyro meter gives raise to Compass.

    Windows.Devices.Sensors namespace provides APIs primarily related to motion, orientation, and light. The following are the sensors the API supports in this namespace.
    Sensor Description
    Accelerometer Captures acceleration on X, Y and Z axis. Accelerometer example –by Microsoft
    Inclinometer Captures changes in the inclination angle. Inclinometer Sample –by Microsoft
    Gyrometer Captures changes in angular velocity.Gyrometer Sample –by Microsoft
    Compass Captures changes in orientation.Compass Sample –by Microsoft
    Light Senses changes in ambient lighting.LightSensor Sample –by Microsoft
    Orientation Accelerometer+Compass+Gyrometer provide more fine grained movement data.OrientationSensor Sample –by Microsoft
    Simple Orientation Uses the accelerometer to obtain device orientation as a rotation into one of four quadrants. It provides movements like face up, face down, and rotations of 90, 180, or 270 degrees.SimpleOrientation Sensor Sample –by Microsoft
    More Info: Windows 8 supported Sensors –by Microsoft
  • GPS
    Geolocation data in Windows 8 is provided through Wi-Fi* triangulation and IP address data to determine the location. This sensor is called Windows Location Provider. This is not a true hardware sensor. However, if your device has a physical GPS sensor, then this location provider will make use of it and provide more accurate location information based on GPS sensor.
    More Info: Guidelines for location-aware applications – by Microsoft
  • NFC (Near Field Communication)
    NFC has been in the mobile world for quite some time now. With Windows 8, it is now available in laptops and Ultrabooks as well. These Windows 8 APIs can be used for desktop or Windows Store apps. Necessary APIs are provided in Windows.Networking.Proximity namespace for NFC.
    More Info:
    Designing systems and developing drivers for NFC – by Microsoft
    Supporting proximity and tapping – by Microsoft
    Proximity sample – by Microsoft
  • You can develop Windows Store apps with your choice of language. Currently, Windows Store apps can be developed using Visual Basic, C#, C++ and JavaScript along with HTML5 and CSS3. Tons of documentation and Samples can be found on each of these languages on every Windows Store API. You would use Visual Studio 2012 IDE to develop, package, and deploy these apps to Windows Store. You can get a free Express version of the IDE for your development. You will have to register yourself as a developer on each machine before you start developing any apps.
  • Distribution, Sales, and Installation from Windows Store
    You can develop apps if you have a developer license, however, for distribution you need to follow either of these two routes.
    1. Go through all the Microsoft Store validation process and publish it to Windows store. Your published apps will then be available in Windows Store. Users can download and install your apps. The process of installing and upgrades are handled by Windows Store.
    2. Publish without going through Microsoft Store. Generally you use this model to distribute the app within your enterprise or within your known circles. This concept is called sideloading.
  • Support for both x86 and ARM processor architectures

Note: Windows Store apps are not backward compatible. You cannot deploy Store apps on Windows 7 or Windows 2012 servers.

Ultrabook Features in support of Windows Store apps:

Ultrabook Feature Matrix

Follow the link for an Ultrabook feature matrix that breaks down what features are exposed to Desktop Mode for various development languages.
http://software.intel.com/en-us/articles/ultrabook-feature-compatibility-matrix-for-windows-8-development

Notices

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations, and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products.

Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms of that license.

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

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

Copyright © 2012 Intel Corporation. All rights reserved.

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

Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.