Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Deployment in Universal Applications

Deployment in Universal Applications

While the enterprise deployment scenario remains unsatisfactory, deploying Universal Applications through the Windows Store has improved significantly in Windows 10.

Incremental Updates

When a developer pushes a new version the Windows Store, a series of optimizations kick in to reduce the burden on the user’s device. The first is file level difference checking. If a given file hasn’t been changed between versions 1 and 2, the Store will recognize this fact and not needlessly push the duplicate file to the user’s computer or phone. The remaining files are divided into blocks. This allows the Store to patch the file by only downloading the changed blocks instead of downloading the whole file. The net result is a significant reduction in the time and bandwidth needed to perform application updates.

Cross-application File Sharing

One of the major changes to .NET in recent years is the move to storing key libraries with the application rather than in a shared location such as the GAC. This makes versioning easier, but can significantly increase download times and disk storage requirements.

Universal Applications in the Windows Store partially address this by automatically detecting shared files between applications. When a second application is downloaded by the user, the Windows Store will only send the unique files to the computer or phone.

This process is handled entirely by the store, no changes need to be made by the developer.

Partial Resource Downloading

Universal Applications are likely to have a lot of resources that are not applicable to a given user’s combination of language and device family. Though details were not provided, the Windows Store is supposed to be able to detect which resources are actually needed and perform partial file downloads that only contain those sections.

Unlocking Developer Machines

Under the Windows 10 model, all machines will have the ability to be unlocked by default. They won’t actually be unlocked, but you can change the setting quite easily if you are an administrator on the local machine (and the domain admin hasn’t disabled it).

The “Sideload Apps” will allow signed AppX packages to be installed if the machine recognizes the signing certificate. “Developer mode” goes beyond that to allow loose files to be executed and enables tooling support. As before, only 20 applications may be sideloaded onto a mobile device. There are no restrictions on desktop computers.

Supported Devices

Under the Universal Application model, developers need to indicate which “device families” their application supports. If their application is designed to run on anything, they can simply indicate that they want a certain minimum version of the universal platform. Otherwise they can set minimum versions for each family of device (desktop, mobile, XBox, etc.) separately. Developers are also expected to indicate the highest version that they’ve tested under, which may be used at runtime to enable compatibility modes as necessary. Unlike previous schemes which only looked at OS major and minor version, this can be used to indicate a specific revision and build of the desired framework.

When setting a minimum version, developers should take graceful degradation into consideration. It will often make sense to set a low minimum version and have some features “light up” when running on higher version. See API Contracts for more information.

Application Storage and Encryption

Universal Applications can be installed on external drives, but they will be encrypted. While this can’t completely prevent tampering and unauthorized examination of an application, it should greatly reduce it.

Shared Application Data

Currently there are only two modes for storing application data: shared by everything or isolated to just one application. In the Windows 10 model, there is a third option. Applications from the same publisher can share data, but that data will still be encrypted so that applications from other publishers can’t access it.

It needs to be said that users can delete this data at any time to free up space. So any information that needs to be stored long-term should be synchronized to an off-device location.

For more information see the Channel 9 video, App Packaging and Deployment for Universal Windows Apps.App Packaging and Deployment for Universal Windows Apps

Rate this Article