[Win/C++] Automatic Updating

Pagina: 1
Acties:

Onderwerpen


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Het is bijna 2012 en eigenlijk zouden alle apps automatic updating moeten ondersteunen. Veel apps, waaronder mijn eigen, ondersteunen dit echter nog steeds niet. Nu zoek ik hier dus een oplossing voor. Als installer gebruik ik NSIS: klein en fijn. Voor updating ken ik echter niet zo'n oplossing. Wat gebruiken anderen?
Zelf een updater schrijven kan, maar het lijkt me zo onzinnig dat iedereen opnieuw het wiel moet uitvinden.

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

Al eens naar ClickOnce gekeken? Voor C# een hele handige tool, maar ik heb geen idee hoe goed dit werkt voor C++ applicaties.

Skill is when luck becomes a habit.


Acties:
  • 0 Henk 'm!

  • eekhoorn12
  • Registratie: Februari 2006
  • Niet online
Je zou eventueel naar Omaha kunnen kijken. Dit is de updater die ook in Google Chrome en Google Earth gebruikt wordt.

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 09:10
eek schreef op zaterdag 17 september 2011 @ 20:03:
Al eens naar ClickOnce gekeken? Voor C# een hele handige tool, maar ik heb geen idee hoe goed dit werkt voor C++ applicaties.
Als je met Visual Studio werkt zou dit naar mijn mening geen probleem moeten zijn met C++ applicaties.

Echter, als je het zelf wilt implementeren is het an sich niet heel moeilijk te maken. Het is echter maar net hoe je het wilt maken. Wil je bijvoorbeeld updaten tijdens het runnen van de applicatie (zoals bijvoorbeeld Google Chrome, alhoewel die voor de installatie ook ClickOnce gebruikt vziw) of voor het runnen van de applicatie.

De meest simpele manier lijkt mij als volgt. Als de gebruiker de applicatie opstart doet deze een request naar een naar jouw bekende url. In jouw geval je homepage als voorbeeld. Hier zou ik dan een text bestand (eventueel in html verpakt) opzetten met het meest recente versienummer. Als deze momenteel groter is dan het door de gebruiker gebruikte versienummer kun je aanbieden om te updaten. De bewerkte bestanden zou ik dan automatisch van je server af laten halen en met behulp van (bijvoorbeeld) md5 controleren of het updateproces gelukt is. Als dat klopt, dan kun je de bestanden vervangen.

Dan heb je in feite een hele simpele updater gebakken. Wel zou ik je aanraden naar ClickOnce te kijken aangezien dat IMHO ook relatief gebruikersvriendelijk is, waarnaast het erg gemakkelijk te pushen is naar een voor jouw handige server of installatiemedium.

Acties:
  • 0 Henk 'm!

  • Killemov
  • Registratie: Januari 2000
  • Laatst online: 24-08 23:40

Killemov

Ik zoek nog een mooi icooi =)

Of je maakt een patch/hotfix die je na de eerder genoemde versie-check kunt ophalen. Voor als je software ietwat bloated is geworden. ;)

Wikipedia: Hotfix

Hey ... maar dan heb je ook wat!


Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Nu online
Probeer het niet _te_ automatisch, lang niet iedereen is local admin :)

En als systeembeheerder zeg ik: ClickOnce moet dood... Wie heeft het verzonnen om programma's te installeren onder C:\Users\(username) ? Er is een reden dat 'je' geen programma's mag installeren...

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 09:10
Paul schreef op zondag 18 september 2011 @ 01:28:
Probeer het niet _te_ automatisch, lang niet iedereen is local admin :)

En als systeembeheerder zeg ik: ClickOnce moet dood... Wie heeft het verzonnen om programma's te installeren onder C:\Users\(username) ? Er is een reden dat 'je' geen programma's mag installeren...
Dat het onder de Users map geïnstalleerd wordt vind ik ook nog steeds wat vreemd. Echter (! :P) is ClickOnce wel een ontzettend mooie techniek die naar mijn mening in sommige software beter toegepast kan worden. Het maakt het een gebruiker ontzettend gemakkelijk om applicaties te installeren. Iets wat ik meestal toch wel mis in Windows - alhoewel ik een fervent Windows gebruiker ben. Als je namelijk een keer hebt ontdekt hoe installeren van (de gemiddelde) apps van OS X gaat dan is Windows ontzettend bloated :$.

Acties:
  • 0 Henk 'm!

  • EvilWhiteDragon
  • Registratie: Februari 2003
  • Laatst online: 11-09 12:12
Je zou eens met het tiberian technologies team kunnen gaan praten. We hebben voor C&C Renegade een auto updater gemaakt, waarbij de updater ook zichzelf kan updaten. Werkt ook goed met userrights en dergelijke. Aangezien je een nogal belangrijke rol hebt binnen i.v.m. XWIS en alles, denk ik dat je de code wel kan krijgen.

Korte uitleg: Olaf helpt met Strike-team/XWIS en Renegade gebruikt de XWIS serverlistings. Tiberian Technologies is een team dat een community patch maakt voor Renegade.

LinkedIn
BlackIntel


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
eek schreef op zaterdag 17 september 2011 @ 20:03:
Al eens naar ClickOnce gekeken? Voor C# een hele handige tool, maar ik heb geen idee hoe goed dit werkt voor C++ applicaties.
Nope. Betekent dat geen dependency op het .net framework? Dat is niet altijd acceptabel. Ik zal zeker eens kijken naar ClickOnce en Omaha.
Paul schreef op zondag 18 september 2011 @ 01:28:
Probeer het niet _te_ automatisch, lang niet iedereen is local admin :)
Daarom wil ik het wiel niet opnieuw uitvinden.
En als systeembeheerder zeg ik: ClickOnce moet dood... Wie heeft het verzonnen om programma's te installeren onder C:\Users\(username) ? Er is een reden dat 'je' geen programma's mag installeren...
Per-user software management is erg fijn. Als een systeembeheerder dat niet wil toestaan moet hij zorgen dat het OS geen applicaties onder c:\users uitvoerd.
EvilWhiteDragon schreef op zondag 18 september 2011 @ 02:41:
We hebben voor C&C Renegade een auto updater gemaakt, waarbij de updater ook zichzelf kan updaten.
Weet ik. Maar ook dat is eigenlijk weer een opnieuw uitgevonden wiel.

[ Voor 13% gewijzigd door Olaf van der Spek op 18-09-2011 15:54 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Auto updaters zijn gebruiksonvriendelijk en hopeloos ouderwets, niks irritanter dan dat ieder programma om updates loopt te zeuren. Veel beter is het om software centraal te laten updaten in het softwarecentrum of de app store. Helaas loopt Windows daar zoals gewoonlijk in achter maar Windows 8 krijgt ook die mogelijkheid dus wacht daar gewoon op. Hoef je ook niet het wiel opnieuw uit te vinden. ;)

Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

alex3305 schreef op zondag 18 september 2011 @ 02:00:
[...]

Dat het onder de Users map geïnstalleerd wordt vind ik ook nog steeds wat vreemd. Echter (! :P) is ClickOnce wel een ontzettend mooie techniek die naar mijn mening in sommige software beter toegepast kan worden. Het maakt het een gebruiker ontzettend gemakkelijk om applicaties te installeren. Iets wat ik meestal toch wel mis in Windows - alhoewel ik een fervent Windows gebruiker ben..
Dat ligt er ook aan welk gebruiksscenario je er op nahoudt, en in wat voor omgeving je je bevindt. Bij ons zou een intern ontwikkelde applicatie bijvoorbeeld prima met ClickOnce in %userdata% kunnen draaien, net als Chrome bijvoorbeeld of destijds de LiveMesh Beta.

Punt is eerder dat in een managed workplace in een enterprise omgeving door een RiskManagement of Security afdeling strikte richtlijnen worden gesteld met betrekking tot het uitrollen van software.
Dat dient volgens een gecontroleerde wijze te gebeuren om inconsistenties tussen verschillende client versies te elimineren - tenslotte wil je niet dat er een verouderde client tegen een gewijzigd backend praat omdat desbetreffende user het verdomt om die update te runnen (want dat is eng).

Een ander aspect is user/device roaming, die userstate moet redirected worden naar verschillende devices (laptop, desktop, VDI guest) en ook nog eens consistent blijven.
De hoeveelheid data wordt dan ook belangrijk, tenslotte wil je als user geen half uur wachten totdat je profiledata met die apps eindelijk over die WAN link gesynced is naar je Tablet over 3G.
Daarom zul je eerder een klassiek/outdated* software releasemanagement concept zien als SCCM of Altiris.

Al gaat tegenwoordig steeds meer de trend BYOD & managed diversity een rol spelen waardoor je nu meer kans maakt met een dynamisch updatemechanisme voor je clients - mits je het goed afstemt op je backend.
Olaf van der Spek schreef op zaterdag 17 september 2011 @ 19:09:
Voor updating ken ik echter niet zo'n oplossing. Wat gebruiken anderen?
Zelf een updater schrijven kan, maar het lijkt me zo onzinnig dat iedereen opnieuw het wiel moet uitvinden.
Je kan gebruik maken van de WindowsUpdate API als je dat wil - er zijn zelfs 3rdparty oplossingen die dat integreren in WSUS bijvoorbeeld.

[ Voor 20% gewijzigd door alt-92 op 18-09-2011 16:10 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
alt-92 schreef op zondag 18 september 2011 @ 16:03:
Je kan gebruik maken van de WindowsUpdate API als je dat wil - er zijn zelfs 3rdparty oplossingen die dat integreren in WSUS bijvoorbeeld.
Kan dat? Zonder je apps en updates naar MS te hoeven sturen voor goedkeuring? Zo ja, hoe?

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
eekhoorn12 schreef op zondag 18 september 2011 @ 00:48:
Je zou eventueel naar Omaha kunnen kijken. Dit is de updater die ook in Google Chrome en Google Earth gebruikt wordt.
Heeft iemand Omaha al eens gebruikt? De technologie lijkt erg goed, maar ook nog een beetje Google-only. Je kunt niet de Google updater gebruiken maar moet je eigen versie installeren.
Pagina: 1