BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News A New Publication Model for Universal Windows Apps

A New Publication Model for Universal Windows Apps

In the Windows world, application deployment generally uses one of two models for handling OS and third party dependencies.

The first is to bundle all of the dependencies with the application itself. This way the developer controls exactly what the application is going to use. One downside of this is that it makes the application’s footprint much larger, a concern on mobile devices. Another problem is that updates to the dependencies have to be pushed out by the developer, not the company that actually created the dependency. This can add an unacceptable time lag for resolving critical security bugs.

The other option is to store all of the dependencies in a shared place. This would be the Win32 folder for COM based applications and the Global Assembly Cache (GAC) for .NET applications. But this leads to its own problems known as “DLL Hell”. Even is strict backwards compatibility is maintained, it limits your options. For example, it prevents interesting scenarios such as allowing one application to use a pre-release version of a library without forcing all of the other applications to use it as well. As such, it usually falls on the user to manually update key libraries such as the .NET Framework.

In Win10 Tools 1.1, Universal Windows Apps (UWP) are given a third option. Under the new model, each application can still specify the exact version of .NET it wants to use. This includes beta versions of the framework. But when the application is installed, common libraries are put into a shared location. This way any other application that uses the same version will have access to it.

In Microsoft’s tests, they found that they could reduce the size of a small UWP application from 5.3 MB to only 1.3 MB. For a larger example, they dropped the size from 10.1 MB to only 7.9 MB.

Surprisingly, this feature can also reduce build times. Rich Lander of Microsoft claims,

For most apps, the feature delivers faster build times for Release builds. We observe build times are generally faster, up to about 30% -- but there are a few apps actually take longer to build. We are working on making the flag deliver a more consistent improvement to build times.

This is a pre-release feature, so Microsoft isn’t enabling it by default. You can, however, submit apps to the Windows Store with it turned on.

Rate this Article

Adoption
Style

BT