Jump to content

Seven Update


Recommended Posts

I been working on a piece of software, I call it Seven Update. It is a windows update clone, however instead of updating and installing updates for windows, instead it can update other software. It is super user-friendly, but also developer friendly.

Seven Update will be free to end users, and free to open source projects. I haven't decided weather to charge for the SDK for corporate use.

Go here for information and screenshots:




* Provides automatic update for applications.

* Full update history

* Add Applications by clicking a link, or manually add them from the list.

* Automatic search and download updates - depends on settings

* Hide updates

* Intuitive Windows Aero style UI.

* Hash Verification, no corrupt files!

* Displays download counts and sizes.


Easy SDK to use!

SHA256 Hash Verification

Register DLL/OCX files

Create Shortcuts

Write, Update and remove keys/values on update.

Execute files when updating - SU will wait for them to finish - See below for more details:

Not ready to move over to SU? Not a problem, SU can easily use your existing install solution, just have SU download and execute the installer, arguments may be used for a slient install. So you can still use SU and it's benefits.

Edited by Seven Alive
Link to comment
Share on other sites

it sounds cool... so other software developers would code their software to support your centralized update package? Do you attempt to entice existing software developers to recode their software to work with your system, or is this geared more towards new software?

Link to comment
Share on other sites



I really believe this will be on every single windows machine in the next year.
and C# don't mix. It needs .NET Framework, which is not installed by default on pre-Vista machines (there are other Windows versions, you know).

What features are? Compression? Resumable downloads? Delta-patching? Hot-patching? Integrity checking? Clean removing and rolling back? License management? Service to check updates?

Link to comment
Share on other sites

I have just completed the file in use/ update seven update. Now it will continue installing updates, if the file is in use, it will add it to a queue. Then on logoff/reboot it will update the files. Of course it will say that you need to reboot, and it will have a prompt come up after an hour, which the user can completely hide (unlike winupd which will nag and nag and nag).

Also the Error handling is all done.

I haven't done the zip compression yet (that is after the beta probably).

The things left to do still before beta release:

Registry add/update/remove

Register Filetypes / Dll files

Automatic update checking

Resumable Downloads - DONE!!

So only 3 things before it goes private beta. It will go public when the sdk is built and released (which will be during/after private beta).

Over the past 2 days i done some major bug hunting and UI work. All of these notifications and what not are time consuming. I am not even done with all of this, infact i just now realized i never coded the system tray icon Label or title to update the status of what SU is doing, like installing, searching or download progress.

I have implemented BITS (Background intelligent Transfer Service), which means SU will download updates using excess bandwidth. It supports full resume/pause/cancel also. I am currently testing if i can shutdown SU or the pc, and resume the download. So far it restarts it, but if it can do it, ill find a way.

Edited by Seven Alive
Link to comment
Share on other sites

I have been focusing on User Experience and the UI lately. Seven Update is a pretty complex program underneath, so it takes a good UI to be simple. The next few days i will continue to work on the UI for the current core and get that all done. Then i will work on the 3 things that don't affect the UI at all.

Registry Changes

Register Filetypes and DLLS

Automatic Update Checking, this is pretty much just using my methods in a different way, not much code to write.

Hmm, forgot until now, start menu entries.

I am thinking once i am done with all of the UI work, i will go through my code, optimize it, and document/code comment it. Since i have not been doing it at all (i never do, even tho i should).

That way i just have 3-4 methods to write (list above) and that's all. Then it would be cleared for private beta release. Then i will work on the SDK to get it into public beta.

Its pretty easy to write the update file, but the SDK will make it a no-brainer, plus it will have other features too. It shouldn't take me too long to make the SDK, probably 3 days in my spare time MAX, could be 1 day on my day off.

There are some side-effects to having a massively used and popular updating/installer on windows. You guessed it, spyware and virus intrusion, trying to use SU has an distribution platform (if allowed and succeeded) could be disastrous. That is why after the beta is released i will implement new features, one i have in mind, a repository (like linux) built into SU, so you can load a list of apps (and sort) and choose to update/install.

I am taking steps to ensure code security. First of all, there is no way for a program to add itself to SU without your explicit permission.

When it does have your permission, updates can execute, modify registry, add start menu item's, modify and delete it's own start menu items. So it is important to have a trusted repository, of course though you don't need to worry. You can complete control over what application can update, you can enable/disable/add/delete them.

I will implement encryption on the config file, so noone can modify it. I will also have the SDK encrypt the update file (SUI file, Seven Update Information) also.

When i do the registry implementation. The updates will only be able have access to LM/Software, CU/Software and Classes_Root. They will only be allowed readonly access to Microsoft tree's, with the exception of Run and RunOnce.

Having the ability to modify the registry, add/modify filetypes, register dlls, run installers and updates allows for flexibility. So developers can use their current install solution (exe or msi installer) with the power of SU, which can run the installer silently (or with args). Then when they are ready they can migrate the installer to the full power of the SUI format.

Ok i am rambling on with my thoughts now...


I changed the UI a bit, instead of datagridview (for updates/history/restore lists), i am using listview, which gives me the ability of groups. So now i can group updates by application and have a group header then the updates. Its like how windows update vista does it. lol.

I also added a bunch of new information, prompts, and notifications also. I think i am done with the UI (for a while), now i will go through optimize, refactor, and comment my code.

Then i will add the 3 remaining functions.

I also caught an error on my part. I am allowing programs to be installed, i used an installable tag under the appinfo attributes. Problem: 1 App, several updates, app not installed! That would have some issues. So i fixed it, there is an install tree, and an update tree. If the app in not already installed it will show the installation, if it is, it will show only updates.

A possible future feature (after beta), is an uninstall feature, but i think it would be better if the developer just has an uninstaller included, add a uninstall link in the start menu. When the user runs the uninstall, it can run SU with a argument to remove the app from the update list.

If i do the uninstall feature, it would just reverse everything in the install tree.

In general uninstallers are needed because most applications still use the registry instead of a config file, they also register filetypes, add start menu entires, and register dlls.

in general installers are needed to add the above, instead of just checking them at startup and making the changes needed, which would actually be better.

Some developers just use an installer for ease of use to the end user, they are just extracting files and adding start menu entries. No registry or anything else.

Before i implement the registry, filetypes, and dlls. I am going to consult a few big opensource projects and ask them how they do those things, installer or in the app. Then i will see if it's really relevant.

Edited by Seven Alive
Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

Well i have pretty much completed the beta. Its fully functional with all the thing i want in there atm. I am working on the sdk, but i am lazy at that. LOL it took me 8 hours to finalize the UI layout, i kept switching back and forth. Plus i am not too excited to code the sdk, its gonna be a pain.

Ill work on it tomorrow and post a status update.

Anyway i got the site up and running, http://sevenupdate.sourceforge.net

I already got contacted by a guy that wants to use it for his project, i am sure once i get the SDK out and some documentation for devs and public use, this thing will skyrocket.

Wow, this is cool that it got stickied, i will stop being lazy and get the SDK out, documentation done and get the tests working.

Thanks guys for the comments and support. Ill post a working demo that you guys can try out. Ill do that before the SDK is released.

More details on that later this week. Hopefully i can get the SDK done (or at least basic functionality) within a few days.

Edited by Seven Alive
Link to comment
Share on other sites

  • 2 months later...
  • 8 months later...

seems like a nice little but powerfull project!

i saw that you allow for translations to be made?

i'll keep an eye on this and if you finished the translation stuff ill help translating to dutch :)

Link to comment
Share on other sites

It's open source but you can't open the solution?

Ahh, this is why. You're using the beta of the next Visual Studio.

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10

So the latest VS (VS 2008) can't open it.

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008

But it'll open if you edit the "Seven Update.sln" file from Version 11 to Version 10 and change Visual Studio 10 to Visual Studio 2008.

Link to comment
Share on other sites

It's open source but you can't open the solution?

Ahh, this is why. You're using the beta of the next Visual Studio.

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10

So the latest VS (VS 2008) can't open it.

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008

But it'll open if you edit the "Seven Update.sln" file from Version 11 to Version 10 and change Visual Studio 10 to Visual Studio 2008.


i'm not treying to highjack the treat.. but Tarun do you still visit spin? and how about Lunar Client?

on topic:

i have my own company, we basicly maintain some form of ICT helpdesk for small company's that dont have budget for a fulltime system administrator..

will it be possible for me to add my own respository so people can update the programs we install for them?

so lets say i use FireFox 2.0 still.. will i be able to update those according to my own update scheme instead of that of mozilla?

(does this make any sense)

Link to comment
Share on other sites

  • 1 month later...

Thanks guys for your interest. Ya i switched over to the beta of VS, which is really nice to develop in. I am in the process of converting over the UI from WinForms to WPF and ill see which direction i want to take, stick with WinForms, or move to WPF, which is what MS is planning to do.

With RC2, translation support is there in the SUI format, however the SDK and Seven Update have to be updated still to use it. Once i decide if i want to stick with WinForms, or go with WPF, ill finish up the translation support.


What you can do is grab the SDK and make SUI files for the programs you want to maintain. Then create a SUA file for your SUI. After Seven Update is installed, run the SUA file and it will add the SUI to the list for that machine (make sense)? What you will need though is webspace to host the files. Seven Update determines if a file needs updated by the SHA 1 Hash. So basically yes, Seven Update will be able to do what you need. However Firefox will keep asking for the user to update unless you turn off it's built in update checking method.

Right now i am working on bringing Seven Update and the SDK to a 1.0 release. I need to finish the translation support and fix any remaining bugs before that happens. Seven Update does support automatic updating without user interaction, so a system administrator can have systems updated without physically visiting machines.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...