Oh no, you're thinking, yet another cookie pop-up. Well, sorry, it's the law. We measure how many people read us, and ensure you see relevant ads, by storing cookies on your device. If you're cool with that, hit “Accept all Cookies”. For more info and to customize your settings, hit “Customize Settings”.

Review and manage your consent

Here's an overview of our use of cookies, similar technologies and how to manage them. You can also change your choices at any time, by hitting the “Your Consent Options” link on the site's footer.

Manage Cookie Preferences
  • These cookies are strictly necessary so that you can navigate the site as normal and use all features. Without these cookies we cannot provide you with the service that you expect.

  • These cookies are used to make advertising messages more relevant to you. They perform functions like preventing the same ad from continuously reappearing, ensuring that ads are properly displayed for advertisers, and in some cases selecting advertisements that are based on your interests.

  • These cookies collect information in aggregate form to help us understand how our websites are being used. They allow us to count visits and traffic sources so that we can measure and improve the performance of our sites. If people say no to these cookies, we do not know how many people have visited and we cannot monitor performance.

See also our Cookie policy and Privacy policy.

This article is more than 1 year old

Metro app meets Windows 10. A Microsoft win? Maybe after a little improvement

Hands on with the preview tools for the UAP

First Look Microsoft has released preview tools for the Windows 10 Universal App Platform (UAP), giving developers their first opportunity to try and build new-style Windows apps.

The tools, which you can find here, require the latest tech preview of Visual Studio 2015, as well as the preview of Windows 10 itself, so it is preview on preview on preview: not something for a production machine.

Documentation is currently both sketchy and confusing, thanks to Microsoft’s decision to re-purpose the name “Universal App”, already used for a Windows 8.1 project type that targets multiple platforms using shared code. You may have to trawl through these videos to get a detailed overview of the new platform.

It is worth noting that you do not have to use a Universal App to target Windows 10. It is still Windows, and Win32 projects both still work, with the advantage that they also run on Windows 7 and 8.

What is the difference between a new and old Universal App? Aside from incremental improvements, the key change is that a UAP project is a single project that runs on all supported platforms, which will include Windows 10 PCs, tablets, phones, Xbox One and Windows 10 IoT (Internet of Things).

Previously, a Universal App included multiple projects, one for shared code, and another for each supported platform, and you would build separate apps per platform.

The Windows Core platform

The Windows Core platform

In order to achieve this level of compatibility, Microsoft has factored out a “Windows Core” which is common to all platforms. There are still plenty of device-specific features though, which you can target by referencing “Extension SDKs”, such as for Windows Desktop or Windows Mobile (yes, it is called Windows Mobile Extension SDK in the preview tools, suggesting that this old name may return).

If you use an Extension SDK, the referenced API will only work on that platform, but a stub API exists on the other platforms that does nothing. It is down to the developer to write code to detect whether it is present, using functions such as IsTypePresent or IsEventPresent.

Conditional compilation with #if still works, but it is discouraged since it breaks the UAP concept, taking you back to the old approach of separate builds for each device.

Another piece of the puzzle is what Microsoft calls the Adaptive UX, where you create a single user interface that adapts to the device. It is a similar approach to what on the web is called a Responsive UI, a web page that adapts itself to the display size and works on everything from mobile devices to desktop displays.

An Adaptive UX does not come for free, though; the developer has to consider different display or window sizes and write “Adaptive Triggers”, which change control properties according to the size of the display.

Creating an Adaptive UX is easier than it was, thanks to a new layout control called the RelativePanel, which lets you position child controls either relative to the panel, or relative to each other. You can say, for example, that you want a heading centred at the top, and an input box below the heading aligned to its left edge.

Like Metro in Windows 8 (also known as Store apps), a Universal App runs on top of the Windows Runtime (WinRT), a sandboxed environment that is also amenable to touch control. There are some useful enhancements to the WinRT platform in this release, including:

  • Drag and drop support between apps and the Windows desktop, important for desktop integration
  • App Services, a message-based API which lets one app call into a background task run by another app and obtain a result
  • Shared storage: one app can pass a token to another app to enable it to open a shared file
  • Support for the open source AllJoyn framework for IoT apps
  • 3D transforms for graphical apps and effects
  • WebView control based on the new “Project Spartan” engine for better standards support
  • New Map control and services, so you easily overlay your own user interface elements on a map
  • New Calendar control which is also used by the Universal App version of Outlook
  • This is not an exhaustive list and there is more to come
 

Similar topics

TIP US OFF

Send us news


Other stories you might like