The wide variety of delivery mechanisms, installation tools, and overall approaches to updates across the full breadth of applications makes it impossible to push all updates through this mechanism. As frustrating as this might be, it is also an important part of the ecosystem that we cannot just revisit for the installed base of software.
How about a solution like this:
Expose an API in Windows that any application developer can use that:
- Allows an application developer to have their application listed in a common Add/Remove/Update list (hey, we already have 2/3 of that!). Note that the application should not need to actually have an installer. Some things like plugins often don't have installers.
- Allows the application to push its current version to the list so that it can be displayed.
- At installation, lets Windows knows which URL to use to check for the latest version.
- When the user goes into this list, Windows checks all listed applications for their latest versions from the supplied URLs.
- Allow easy filtering in the list so that for instance only applications for which there are updates available are listed.
- Allows the user to at least download the latest version via a button in the list, or (better) allows the user to click on a button that will automatically download and run the latest installer to update the application.
- Show a weekly message (or on a user-selectable schedule) of which applications are out of date.
- Is available from all frameworks, Win32, WinRT, .Net, etc.
The above should be simple for MS to implement, and they would not be responsible for having to track any 3rd party applications themselves. However it would be in the application developer's best interest to make use of this simple API so that their users can easily know when updates are available.