tags:

views:

80

answers:

2

Is it possible to intergrate into windows update to update your own applications?

I have heard of "ClickOnce", however from what I understand of it so far; it is still the responsibility of the application developer to manage the updates.

I am invisaging a similar user experiance to how an end user may update an application in a Linux distrubution e.g. the update manager in ubuntu. Where application and system updates are centralised.

I understand that you can update for example; office, SQL server etc. So you can do updates to non-core system applications. But of course these are microsoft application, is there a way of a 3rd party to do a similar thing?

+4  A: 

Windows Update (and Office Update) are Microsoft run, and while third parties such as nVidia and Intel are allowed to use it for driver updates, it is not an open platform. There is no Windows equivalent of Ubuntu/Debian's APT repositories, or third party repositories.

ClickOnce probably does what you need. You will have to "manage updates" by uploading a new version of your app to your webserver - not sure how you'd avoid doing that, whatever the system. When users start your app, the ClickOnce system checks for a new version and downloads it automatically. Much cleaner than implementing your own - there must be thousands of different update systems written by different Windows developers!

ClickOnce allows a good deal of customisation - users can choosen when or if they want their apps updated. Developers can set updates as optional or mandatory and be reasonably sure that their entire user base will move up to the latest version (For security fixes etc.). There's also an API so you can control the update process at a more granular level.

rjh
Very interesting point on nVidia / intel.I agree with your point about the abundence of hand-rolled update systems, I certainly don't want to add to the list.ClickOnce sounds simpler than I thought and I didn't realise it was that powerful (optional, mandatory etc). So sounds like ClickOnce could be the best route.Thanks for the anwser, very insightful.
Alex Key
I like the concept of repositries in Ubuntu/Debian, I can see it having a positive impact on user experience in windows.. however I won't go too off-topic :) Perhaps a conversation for a post on MSDN forums at a later date. Thanks Again.
Alex Key
+6  A: 

It's not possible to integrate into the actual "windows update" functionality of windows, however it is possible to use the same underlying technology for your update system if you would like to.

It's called Background Intelligent Transfer Service (or BITS), and comes with an API that you can use to let your application take advantage of it for your own updates. You would still have to totally manage the update process on your own though, BITS just takes care of the throttled background downloading of the update. There's also a BitsAdmin tool that can be used to manage BITS streams.

Unless you are writing a pretty big app, you should think seriously before you try and use BITS, it's not a simple 'click and go' setup procedure, you'll have to manage the majority of the update process in your own code.

On the other hand, ClickOnce (as rjh has already mentioned) is fairly easy, you simply define some basic parameters like version and update URL, and the ClickOnce engine will automatically handle checking, downloading and installing your updates, all you have to do is publish them to the server. There are some restrictions to ClickOnce, but for a large number of apps, ClickOnce can work very well. For a standard ClickOnce deployment there is no code to write, it's all handled through the visual studio interface.

Simon P Stevens
Thanks for the detail about BITS and thanks for the advice about where to use it, very interesting stuff.Sounds like ClickOnce could be the best fit for my application.
Alex Key
Shame I can't mark 2 replies as "the answer". But i've made sure to mark yours up. Thanks Again.
Alex Key
@Alex, that's cool. rjh's fits your question better anyway, so that's a better 'answer'. Glad to have helped.
Simon P Stevens