Results 1 to 10 of 10

Thread: [2005] How to create a program updater

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Sep 2005
    Location
    Alaska
    Posts
    435

    [2005] How to create a program updater

    So I created a very simple application updater that uses HTTP, but I want to move towards something more advanced, maybe a webservice or a TCP/IP or UDP application (I have a dedicated server capable of handling thousands of connections.)

    I couldn't find much in the way of socket samples on the web.

    Anyone have any ideas?

    To clarify, my main app is supposed to connect to the server, send unique information to verify it's identity, and then the server can pass commands back, including sending a file. The server of course would need to stay active 24/7.
    Last edited by tylerm; Mar 30th, 2007 at 03:16 PM.

  2. #2
    I'm about to be a PowerPoster! kleinma's Avatar
    Join Date
    Nov 2001
    Location
    NJ - USA (Near NYC)
    Posts
    23,373

    Re: [2005] How to create a program updater

    maybe you want to look at using BITS.

    BITS is Microsoft's Background Intelligent Transfer Service. It is the same service Microsoft uses to deliver Automatic Updates to Windows users.

    Here is an MSDN Magazine article on using BITS with .NET
    http://msdn.microsoft.com/msdnmag/issues/03/02/bits/

    Here is another article with more VB related code about BITS
    http://msdn2.microsoft.com/en-us/library/ms997639.aspx

  3. #3

    Thread Starter
    Hyperactive Member
    Join Date
    Sep 2005
    Location
    Alaska
    Posts
    435

    Re: [2005] How to create a program updater

    Quote Originally Posted by kleinma
    maybe you want to look at using BITS.

    BITS is Microsoft's Background Intelligent Transfer Service. It is the same service Microsoft uses to deliver Automatic Updates to Windows users.

    Here is an MSDN Magazine article on using BITS with .NET
    http://msdn.microsoft.com/msdnmag/issues/03/02/bits/

    Here is another article with more VB related code about BITS
    http://msdn2.microsoft.com/en-us/library/ms997639.aspx
    Hmmm. Does BITS allow me to send and recieve strings of information. See, the problem I had with my HTTP updater was that any user could download the updates, which isn't a problem, because my serial system will still ask for a serial number.

    I'm trying to make it so the user has to send a serial key to the server so it can be verified, like Windows does with Guenine Advantage program. (The serial keys are stored in a SQL database.)

  4. #4
    I'm about to be a PowerPoster! kleinma's Avatar
    Join Date
    Nov 2001
    Location
    NJ - USA (Near NYC)
    Posts
    23,373

    Re: [2005] How to create a program updater

    as far as I know BITS is JUST the service for doing the actual transfering.

    You would write the functionality to send the key to your server and verify it, and the server would then respond back saying something like "the key is ok, BITS can start doing the download". This could be done using your existing HTTP method probably, or a webservice would work too.

  5. #5
    New Member
    Join Date
    May 2007
    Posts
    13

    Re: [2005] How to create a program updater

    did you ever figure out a way to do this other than http download ?

    I have a similar need. (i.e. I want the end machine to pass some data for authentication purposes).

    If you got anywhere with this, please let me know if you want to share tips.

    thanks

  6. #6
    I'm about to be a PowerPoster! kleinma's Avatar
    Join Date
    Nov 2001
    Location
    NJ - USA (Near NYC)
    Posts
    23,373

    Re: [2005] How to create a program updater

    do you have a website that runs on a windows server? If so you could likely create a webservice that your windows app consumes, and you can use that for authentication purposes.

  7. #7
    New Member
    Join Date
    May 2007
    Posts
    13

    Re: [2005] How to create a program updater

    Yes, I will be running my own server.

    One of my biggest needs for this is so that I can have 'selective' updates. For instance, I want to have groups of users. Such as 'Beta Testers', 'End Users', etc.

    That way, beta testers can get immediately notified when beta software is out, but that is not visible to 'end users', etc.

    I've done a lot of looking around on this and don't really see anything outside of the typical make a config / xml file and push some files down. I think I'll just have to break down and start doing some coding on this ....

  8. #8
    I'm about to be a PowerPoster! kleinma's Avatar
    Join Date
    Nov 2001
    Location
    NJ - USA (Near NYC)
    Posts
    23,373

    Re: [2005] How to create a program updater

    that is what I do...

    one of the advantages is that you can make it exactly how you want it. It may take a little longer to code things yourself, but if you code it correctly, you can reuse this on any projects you ever want to auto update.

    Just don't make it specific to the app at hand, make it generic enough to be reusable.

  9. #9
    New Member
    Join Date
    May 2007
    Posts
    13

    Re: [2005] How to create a program updater

    The problem is that if I do it exactly how I want, its going to be ridiculous. I'd run a backend database to track releases by a file level, allow for a file level update type (overwrite, binary difference, etc), user/group permissions, blah blah blah blah. Then I'll need to write a backend system so that you can easily add new releases, etc.....

    I just really didn't want to go into THAT much detail. However, everything else is too little detail I guess.

  10. #10

    Thread Starter
    Hyperactive Member
    Join Date
    Sep 2005
    Location
    Alaska
    Posts
    435

    Re: [2005] How to create a program updater

    I decided to write my own updater system. I'm using Infralution's licensing system so i added that authentication step into the process.

    Tied into the ILS database, I created a backend for deploying releases. Still using basic HTTP to download the files. The files themselves are useless without a key.

    My overall concern was to validate the product, not deployment. Since the product I designed was to be used in trial form as well. The best way to prove the software was genuine was to check it when it updated.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width