It's surprising, but Windows has never had a definition of an app. "You know it when you see it, but it's never written down," said Andrew Clinick, Group Program Manager at Microsoft, during his session at Build 2016. Nothing was really defined, but there were a bunch of guidelines over the years. According to Microsoft, it's been very difficult to actually build an app model, and it hasn't been really enforced.
Universal Windows App Model
If we try to trace the journey, we know it all started with .exe but we've never had the answers for how does one install it, how do you store state, how long does the app run for, how do you integrate with the OS or with other apps, and so on and so forth.
This is why we need an app model, and the Universal Windows Platform (UWP) App Model attempts to answers these questions.
The Universal Windows App Model is unified across all Windows devices scaling from IoT to Mobile to PC to Xbox to Hololens. It defines the complete app lifecycle for all apps on Windows, from cradle to grave – Install, Runtime environment, Resource Management, Update, Data Model, and Uninstall.
While the app model is inclusive of all apps that run on Windows, and is focused on Universal Windows apps, developers have to run existing apps, be they for phones, Windows 8.1, or classic Windows. Project Centennial allows developers to convert classic Windows applications to Universal Windows apps and aims to define the app model for classic Windows Apps since until now there has been no systematic definition of an app on Windows.
You might be wondering why is there a need for an app model for desktop now. The vast majority of the problem is registry growth and fragmentation. Your PC accretes more and more into the registry and file system over time leading to Windows rot. Also, as every one of us has experienced – consumers and developers – a true 100% uninstall is almost impossible to do. You're left with files and registry junk and other bits all over your system.
Modern Software Installer
In 2015, Microsoft introduced .appX as the common installation package for UWP apps, enabling PC, Phone, HoloLens, and IoT to all use the same technology. Microsoft is now expanding the installation technology to be even more inclusive with existing Desktop apps and Xbox. The November 2015 release expanded where you can use .appX and enabled, by default, installing from anywhere and not just the Windows Store. Prior to this, you could sideload from anywhere, but that required PowerShell geekery.
Microsoft's ambition is to make .appX the ultimate installer across the Windows ecosystem. While MSI is almost certainly not going away any time soon, the new app model allows you to bring in a new suite of features to your apps — like integrating into Cortana, and other apps — while bringing your code along without any significant change.
At Build 2016, Microsoft announced that the company is investing to make the modern installer the de facto installation stack on Windows. At this moment, it does not have all the capabilities of MSI or ClickOnce, but the idea is to improve with time. This will give a full platform for building install experiences, enabling great install experience from both Windows Store and custom distribution channels, enabling desktop apps to be converted to be installed, and enabling extensions platform.
The Bottom Line
With Windows 10, Microsoft is turning a new leaf and the Universal Windows Platform App model brings a cohesiveness of the Windows ecosystem across devices. It defines a clear deployment model and provides a better way to install/uninstall and update the application. While this improves app hygiene and consumers benefit from expected app behavior and familiar user experience, it also helps in keeping Windows healthy and avoid the rot with time.