Seven Alive
May 15 2008, 07:56 PM
I been working on a piece of software, i call it Seven Update. It is a windows update (vista) clone, however instead of updating and installing updates for windows, instead it can install and update other software. It is super user-friendly, but also developer friendly. It can work with any software developer. Its more like Synaptic Package Manager for Ubuntu Linux.
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 shareware/retail use.
Go here for information and screenshots:
http://sevenupdate.sourceforge.netAbout the Beta:
I did my best to extensively test it, but if you do run into a problem simply contact me either here or on the SF site. I will need as many details as possible.
If your interested in being a App Maintainer - someone who updates and hosts the SUI file for an app (which does not have official development support), contact me with the appname and a few details.
-------
Features:
* 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 Vista style UI - looks like Windows Update, but provides better functionality and features.
* Hash Verification, no corrupt files!
* Displays download counts and sizes.
Developers:
Easy SDK to use!
SHA1 Hash Verification - Uses SHA1 to determine if update his necessary
Register DLL/OCX files
Create Shortcuts
ability Read from registry for file paths
Write, Update and remove keys/values on update and/or installation
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.
-------
Downloads:
Seven Update
rendrag
May 16 2008, 05:37 AM
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?
Tihiy
May 16 2008, 05:54 AM
Pretentious.
However,
QUOTE
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?
Legolash2o
May 16 2008, 09:02 AM
sounds brilliant, let me know when the alpha/beta comes out... i don't mind helping with testing or whatever
hannubys
May 17 2008, 10:53 AM
Good job! I'm waiting to make some tests
Seven Alive
May 17 2008, 06:26 PM
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.
Seven Alive
May 21 2008, 02:41 AM
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...
Edit:
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.
Oziyn
Jun 10 2008, 05:47 AM
wow good job!!
cant wait to see the final outcome!
Seven Alive
Jul 5 2008, 11:22 PM
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.netI 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.
Seven Alive
Sep 21 2008, 02:14 AM
Beta 2 and SDK is released!!!