I've wrtten quite a few programs over the last few months and I find myself updating them all the time. Each time I do an update, I zip up the new files and upload them to their respective folder on my server, then post a topic on my forum letting people know about the update. In one of my more recent programs I built an updater into it that would check a dynamically-generated (from the database) XML file and compare versions to determie if a file with a higher version was available on the server.
That's all fine and dandy, but the user still has to check for the updates (or it prompts them to if it's been more than a week,) and I still have to make a forum post everytime I put up an update.
So I had an idea for a program that would constantly keep in contact with the database and keep a record of which programs need updates. When that program is started, instead of it checking the server, it would check the updater program's records and be able to instantly tell the user that an update is available.
My question is, what would be the best way to accomplish this? Obviously the updater will need to be running constantly, so should I make it a service, or simply minimize it to the taskbar. How should I save these records? I thought about doing it in the registry, or using a flat file system, but both of those options can be manipulated.
Another thing to keep in mind is the fact that HTTP is not secure, so I'd be distributing an application with access to my database. I could get around that by having my server gnerate an XML file with details of all potential programs, and the updater would download and parse that, but then I'm still stuck with the issue of how do I store the records without the user being able to tamper with them? Registry would probably be best, since it's globally accessible and people would have to hunt around to find where I'd hidden the information.
I thought about instead of having the program simply notify the user that an update is available, actually download the updated file and replace the existing one with the new one. That would work too, I guess I'll just wait to see what people have to say about this before I start anything.
That's all fine and dandy, but the user still has to check for the updates (or it prompts them to if it's been more than a week,) and I still have to make a forum post everytime I put up an update.
So I had an idea for a program that would constantly keep in contact with the database and keep a record of which programs need updates. When that program is started, instead of it checking the server, it would check the updater program's records and be able to instantly tell the user that an update is available.
My question is, what would be the best way to accomplish this? Obviously the updater will need to be running constantly, so should I make it a service, or simply minimize it to the taskbar. How should I save these records? I thought about doing it in the registry, or using a flat file system, but both of those options can be manipulated.
Another thing to keep in mind is the fact that HTTP is not secure, so I'd be distributing an application with access to my database. I could get around that by having my server gnerate an XML file with details of all potential programs, and the updater would download and parse that, but then I'm still stuck with the issue of how do I store the records without the user being able to tamper with them? Registry would probably be best, since it's globally accessible and people would have to hunt around to find where I'd hidden the information.
I thought about instead of having the program simply notify the user that an update is available, actually download the updated file and replace the existing one with the new one. That would work too, I guess I'll just wait to see what people have to say about this before I start anything.
Comment