![]() ![]() |
May 15 2008, 07:56 PM
Post
#1
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
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. I am about 85-90% done with all of the features. It can work with any software developer. Its more like Synaptic Package Manager for Ubuntu Linux, it not only can update, but it can install software too. I really believe this will be on every single windows machine in the next year. No more going to websites and downloading installer packages, or hassling with installation programs!
One copy of Seven Update will be on the machine, the users and programs can then add applications that it can update. I expect the beta to be done soon, maybe end of may/early june. 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.net About 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. Once i get the SDK out it will be easier for developers and maintainers to do sui files. Most applications will work with SU, however some complex applications (like Adobe CS3) is not possible w/o the developers support. Since i created the SUI files and do not have access to what apps do (pertaining to registry), if you uninstall an application, registry values will remain if they weren't installed using Seven Update. This is a developer, SUI issue. ------- Features: * Provides automatic installation, update and uninstallation for applications. * Full update history * Add Applications by clicking a link, or manually add them * Automatic search, download, and installation of 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 XML structure - even easier management w/ SDK 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/installing - 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. Limitations of SU Beta 1: Services cannot be installed (no beta apps use a service) - However there is a workaround, using an installer and execute action Beta Notes: ------ Seven Update is portable, it can be installed anywhere, but is highly recommended that you leave it in the default installation folder To install/add apps to seven update, run the self extractor, seven update will be ran. After this you can safely close it. After it is installed, you can click the sui app links below to add applications. If you add an app when Seven Update is running, will you get no response. I am working on a solution to pass parameters while it's running. ------- Downloads: Seven Update Apps: (Must have installed Seven Update for them to work) To Install (since msfn formats the links): Copy the following like after the semicolon and paste it into your browser. TrueCrypt: sevenupdate://http://sevenupdate.sourceforge.net/suapps/TrueCrypt/truecrypt.sui|TrueCrypt CCleaner: sevenupdate://http://sevenupdate.sourceforge.net/suapps/CCleaner/ccleaner.sui|CCleaner Media Player Classic - Home Cinema: sevenupdate://http://sevenupdate.sourceforge.net/suapps/mpchc/mpc.sui|Media Player Classic - Home Cinema This post has been edited by Seven Alive: Jul 16 2008, 02:22 PM |
|
|
|
May 16 2008, 05:37 AM
Post
#2
|
|
|
grrrrrr ![]() ![]() ![]() ![]() Group: Members Posts: 649 Joined: 28-October 04 From: RI, USA Member No.: 35042 OS: XP Pro x86
|
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?
|
|
|
|
May 16 2008, 05:54 AM
Post
#3
|
|
|
Revolutions Pack Creator ![]() ![]() ![]() ![]() ![]() ![]() Group: Members Posts: 1438 Joined: 19-November 04 From: NeverSleep Member No.: 36858 OS: none
|
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? |
|
|
|
May 16 2008, 08:19 AM
Post
#4
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
It is very very simple for both new software and old software to use this. I haven't made the SDK yet, that comes after i get a beta going (right now its in alpha). Basically SU uses an XML structured file to read and store information. This included update info and app settings. There will be zip decompression support, but it will be tricky since there are so many options you can go.
Let me explain how it works. It checks for updates (or the user/app), it downloads a list of update files (my proprietary xml files) that have the update/app info inside it. The list of files to grab comes from the settings, this is where apps and users can add apps into its database. Once it has the files, it opens the files up and goes through them, determines if there are updates or the app can be installed (since this can actually deploy apps also). If it passes the tests then it adds all the required info into an array list. Then presents a list to the user so they can pick which ones to install. Once they click install (or app settings have installation auto), then it will download the files and apply the updates. Beta Features List: Add, Search, Download, Install updates An Update can Add/Update/Remove Registry entries 1 update can contain multiple files. Update History w/ update details (like winupd vista) Automatic download and install settings (like winupd vista). Update Priorities: Critical, Recommended, Optional, Locale The best and most efficient way of determining if a file needs updating is using SHA1 Hash checking, in the update data, it will contain the updated file hash, which will be compared to the file on the system. If they don't match it will update. This will help prevent cracks and patches to pirated software. It will also make sure the file is not corrupt from downloading or other file system errors. SU can also install applications from scratch, since it can do registry changes, Register DLL's and filetypes. That should suit most applications that would need an installer. Basically there is a bool in the upd info that allows it to be installed. You can even just have SU download and run an self-extracting archive, or even an installer (with or without silent mode). As for compression, am working on the ability for updates to be inside zip files, its easy to decompress. But its more complicated then that, lets say you got 3 files in a zip file. SU downloads the file and unzips it. Currently for SU its a file to a location on the FS. If there is a zip, i would need to have the ability to specify what file goes where. That is where it gets complicated. Hot patching and delta patching: I am fighting that. In order for a patch to work, for every software release the developer would need to make a patch for all of the previous releases. Its just too tedious. Lets say i got 1.0, the update is for 1.4, either the dev will make 1.0>1.4, or i have to make it download all of the patches and patch the file 4 times, that is inefficient. Resumable Downloads: SU uses Background Intelligent Transfer Service. Which means, it can resume, pause, and cancel downloads. It saves data between restarts too. License management can be done by the developer, that is an app issue, not an updater problem. Checking for updates is simple, app does it auto, user can do it, app can even do it with 1 line of code, just call the updater with an argument (probably will be -check -auto) Clean Removing? As far as SU, it doesn't touch the registry(well in special cases it will use RunOnce, to update files that were in use on next boot) and everything is self contained it its own directory. Update uninstall/rollback: I am also fighting this, backups will take more file system space, also data will be required to store upd info. If you look at Adobe Updater, they don't offer update rollbacks or uninstalls. Most updater's don't. I think i will just let the developer handle version archiving. C#, Most if not all XP computers now have at least .NET Framework 2.0. SU is built on C# 2.0. More and more programs are running on .NET, and C# jobs are skyrocketing. I don't see it has much of a problem. Vista is out and has it built in, so does Server 08 and the next versions of windows will too. I am only worried about XP/Vista/++ support, 98/200/Me can suck it lol. Anyway i hope that information explained my app a bit further. When there is a beta release and the SDK beta is out. People/Developers will want to use this Update system. I am making it more and more advanced every time i work on it, i just keep coming up with great ideas. SU currently functions now, it is able to do the beta features list This post has been edited by Seven Alive: May 21 2008, 05:26 AM |
|
|
|
May 16 2008, 09:02 AM
Post
#5
|
|
|
VUD Pogrammer Group: Supreme Sponsors Posts: 1200 Joined: 9-February 07 From: United Kingdom Member No.: 125866 OS: Vista Home Premium x64
|
sounds brilliant, let me know when the alpha/beta comes out... i don't mind helping with testing or whatever
This post has been edited by LegoLiam™: May 16 2008, 09:03 AM |
|
|
|
May 17 2008, 02:10 AM
Post
#6
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
I plan on doing some solid coding in the next 2 days. It works now, it does everything i want in the beta to do, except the registry part. I also got to add in some more error handling. Also a URI handler would be useful, like sevenupdate://. Right now users have to manually add in applications for it to update (Basically name the app, and the url to the update file). But a URI could simplify this process, user clicks link, SU pops up prompting to add the app.
I also got to work on a service component, that is lightweight which will call SU to check for updates every 4 hours or so. That should take about 10 minutes to code tho. I will also need new icons (the menu icons in the screenshot) Those are owned by Microsoft, and if they get wind of what i am working on. They will complain, plus i believe its copyright protected also. I would say when the registry implementation is done, and the error handling is completed, it should be ready for beta release. I think about how i am going to handle that zip implementation. It might just be easier to have 1 zip full of files = 1 file system location, meaning that all get extracted to the specified folder. It would be easier that way, but not as flexable. |
|
|
|
May 17 2008, 10:53 AM
Post
#7
|
|
|
Am I Not Merciful ![]() ![]() ![]() Group: Members Posts: 448 Joined: 20-January 08 From: Canada Member No.: 172411 OS: Vista Business x64
|
Good job! I'm waiting to make some tests
|
|
|
|
May 17 2008, 06:26 PM
Post
#8
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
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. This post has been edited by Seven Alive: May 20 2008, 06:39 AM |
|
|
|
May 21 2008, 02:41 AM
Post
#9
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
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. This post has been edited by Seven Alive: May 23 2008, 03:40 AM |
|
|
|
Jun 2 2008, 04:34 AM
Post
#10
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
Ok well i went over my code, optimized it and commented it all. Now i will add the missing features, do some final testing/optimization before i release it to private beta. I will then work on the SDK and when a beta of that comes out, SU will get updated (if its ready or needs to) and it will go public beta.
Edit/Update: I just did the registry implementation, now updates and installations can add/update/remove registry entries and keys. I still need to register filetypes/dll files, add start menu items, and the auto updating capability. (probably will use command line args and windows task scheduler so there is no service and SU isn't running using resources all the time). I did improvements on the core code as well as some UI additions. Its getting really close to Private Beta, i would say by the end of the week. I am finalizing how i am going to uninstall installed applications (apps can be uninstalled but not updates). That could be implemented into the private beta, but it will probably make an appearance during public beta or beta 2. I have also implemented a URI protocol for Seven Update. What is that? well... Lets say i have Product XYZ and i have my customers use seven update for installation and updating. Well lets say i have an install page, there is a link, Install XYZ Using Seven Update. You click that and it launches: sevenupdate://pathtomySUIfile|My App Name it will then prompt the user to add the application or deny it. Command line args: -add "path to my sui.sui" "My app name" (adds an application to seven update) -check (will check for updates silenty and then prompt user if there are updates, otherwise it closes. -reset (will clear update history and all application settings, as well as any application servers) This post has been edited by Seven Alive: Jun 4 2008, 07:18 AM |
|
|
|
Jun 10 2008, 05:47 AM
Post
#11
|
|
|
םәąŧђ ![]() ![]() Group: Members Posts: 172 Joined: 4-June 08 From: ђεﺈﺈ Member No.: 195270 OS: XP Pro x64
|
wow good job!!
cant wait to see the final outcome! |
|
|
|
Jul 5 2008, 11:22 PM
Post
#12
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
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. This post has been edited by Seven Alive: Jul 8 2008, 05:48 AM |
|
|
|
Jul 12 2008, 01:33 AM
Post
#13
|
|
|
Seven Update - Lead Developer ![]() ![]() Group: Members Posts: 127 Joined: 23-July 05 Member No.: 65712 OS: Vista Home Premium x86
|
Alright, well i been working on another project which got me sidetracked on the SDK, however i am releasing a working demo now!!!
Apps available to install w/ seven update: Media Player Classic - Home Cinema Edition CC Cleaner TrueCrypt I will add more when i get the SDK done, also developers will get notified and they can add support for SU. During the course of the Beta, SU and the apps it maintains will update when needed, you will be notified of updates when they are available ------------ About 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. Once i get the SDK out it will be easier for developers and maintainers to do sui files. Most applications will work with SU, however some complex applications (like Adobe CS3) is not possible w/o the developers support. Since i created the SUI files and do not have access to what apps do (pertaining to registry), if you uninstall an application, registry values will remain if they weren't installed using Seven Update. This is a developer, SUI issue. ------- Features: * Provides automatic installation, update and uninstallation for applications. * Full update history * Add Applications by clicking a link, or manually add them * Automatic search, download, and installation of 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 XML structure - even easier management w/ SDK 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/installing - 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. Limitations of SU Beta 1: Services cannot be installed (no beta apps use a service) - However there is a workaround, using an installer and execute action Beta Notes: ------ Seven Update is portable, it can be installed anywhere, but is highly recommended that you leave it in the default installation folder To install/add apps to seven update, run the self extractor, seven update will be ran. After this you can safely close it. After it is installed, you can click the sui app links below to add applications. If you add an app when Seven Update is running, will you get no response. I am working on a solution to pass parameters while it's running. ------- Downloads: Seven Update Apps: (Must have installed Seven Update for them to work) To Install (since msfn formats the links): Copy the following like after the semicolon and paste it into your browser. TrueCrypt: sevenupdate://http://sevenupdate.sourceforge.net/suapps/TrueCrypt/truecrypt.sui|TrueCrypt CCleaner: sevenupdate://http://sevenupdate.sourceforge.net/suapps/CCleaner/ccleaner.sui|CCleaner Media Player Classic - Home Cinema: sevenupdate://http://sevenupdate.sourceforge.net/suapps/mpchc/mpc.sui|Media Player Classic - Home Cinema This post has been edited by Seven Alive: Jul 15 2008, 03:37 PM |
|
|
|
Similar Topics
| Topic Title | Replies | Topic Starter | Views | Last Action | ||
|---|---|---|---|---|---|---|
![]() |
3 | yg17 | 1410 | 20th September 2001 - 04:05 PM Last post by: LouCypher |
||
![]() |
10 | wzperson | 2125 | 24th October 2001 - 09:52 AM Last post by: LS_Dragons |
||
![]() |
3 | k22 | 1046 |