UpdateBox v1.71.63.78 - Een auto updater paket voor .Net 2.0+

Status
Niet open voor verdere reacties.

MatthiWare

Gebruiker
Lid geworden
2 jul 2011
Berichten
282
UpdateBox paket v1.71.64.25​

Bevat

  • UpdateLib de update toepassing uitbreiding
  • Update Configuratie Helpers Bevat handige tools voor je update
  • Demo's & Doc's Bevat voorbeelden in C# en VB.Net en ook nog een paar documentjes

Screenshots
LlQjI.png

sOMqE.png

sMtSa.png


Video
[video=youtube;_tY4-Ki0DeI]http://www.youtube.com/watch?v=_tY4-Ki0DeI[/video]

Download
Mediafire Mirror
Mijn eigen website
 

Bijlagen

  • sOMqE.png
    sOMqE.png
    35,5 KB · Weergaven: 52
  • I7eoP.png
    I7eoP.png
    27,9 KB · Weergaven: 58
Laatst bewerkt:
Even wat mij opvalt als ik de foto's bekijk: Awesome is met een e ;)
 
@JoZ1 :p goed gezien maar dat is gewoon de project naam je kan het aanpassen als je jouw product naam veranderd
 
Ik zie ook staan "You are already have the latest version" dat moet zijn "You already have the latest version." of "You are currently running the latest version."

verder zeker handig :D
 
@mastermindzh
:shocked: Bedankt, ik had het zelf nog niet door. Dit is zo al een tijdje en jij bent de eerste die het opmerkt het was zelfs al in mijn vorige release van de UpdateBox(UpdateLib) zo.
Bedankt ik zal eventjes een nieuwe revision uitbrengen.
 
Update - UpdateBox v1.71.64.25

N I E U W E - V E R S I E​

Er is een nieuwe versie van UpdateBox uit! :love:

Bugs die zijn gefixed:

  • icon2.png
    Taalfoutje bij UpdateLabel
  • icon4.png
    Updater crashed bij het sluiten van meerdere messageboxen
  • icon4.png
    Updater crashed bij het heropenen van de updatedialog door de UpdateLabel
  • icon2.png
    Code geoptimaliseerd
  • icon3.png
    UpdateFileMaker checkt of je project wel de laatste versie is voor het afsluiten
  • icon4.png
    Gebruiker kon de Updater zoveel keer starten als hij wou -> Updater crashed

Download link is aangepast!
Nieuwe foto toegevoegd!
Filmpje toegevoegd!

Voor het filmpje te bekijken keer terug naar de eerste post of bekijk op youtube
 
Laatst bewerkt:
Beste testers,

Ik krijg maar geen feedback op mijn lib. Wat betekent dit?
  • Geen zin om te testen?
  • Er zitten gewoon geen fouten in? 'Mag je ook zeggen hoor :)'
 
Ik heb even de dll en video bekeken en heb een paar opmerkingen.

Het eerste wat opvalt is dat de gebruiker heel wat dingen moet aanmaken voor hij kan beginnen. Is het geen optie om alles (zoveel mogelijk) in één class te stoppen?

b.v. een 'UpdateService' class

Je kunt dan in deze class wat references maken naar de status, labels en/of dialogs (wat je ook wilt gebruiken) zodat de gebruiker deze niet hoeft te maken.

Ook zou je de gebruiker niet de status moeten laten wijzigen.

Je zou niet moeten kijken of de status gelijk is aan 'Updating' maar gewoon StartChecking() moeten uitvoeren. De method moet dan kijken wat de status is en als deze dus al updating is moet hij gewoon niets doen of een event aanhalen.

b.v.

Code:
public void StartChecking()
{
	if (Status == UpdateStatus.Checking || Status == UpdateStatus.Updating)
	{
		//raise allready working event maybe?
		return;
	}
	
	Status = UpdateStatus.Checking;
	
	//do your update checking
	//etc
}

Hierbij zou je bv ook een StatusChanged event kunnen toevoegen zodat de gebruiker als hij dat wil altijd kan reageren als de status aangepast wordt.


Ook zou de service klaar voor gebruik moeten zijn zodra hij wordt aangemaakt. Dus ofwel properties die nodig zijn in de constructor vragen of defaults zetten.

b.v.
Code:
UpdateService updateService = new UpdateService(@"\config.xml", @"127.0.0.1");

De gebruiker kan gewoon hierna de properties aanpassen die hij anders wil hebben.


Je moet er van uitgaan dat een gebruiker nooit doet wat je verwacht... ;D
Dit zou de gebruiker niet zo moeten kunnen doen of je moet even een null check ertussen doen.
Code:
UpdateLabel lbl = new UpdateLabel();
lbl.ShowUpdateDialog();
-> null ref exception




Ik hoop dat je hier wat aan hebt, zo ja heb ik nog wel een paar dingen die het voor de gebruiker van de dll een stuk gemakkelijker maakt.
 
Sorry voor mijn late reactie maar ik ben/was bezig met een aantal delen van de UpdateLib te herschrijven.
Ik vind van niet dat de gebruiker veel moet toevoegen voor hij kan beginnen bij de UpdateLabel.

Het idee van alle belangerijke properties in de constructor te zetten vind ik goed.

En van de ShowUpdateDialog(); was ik gewoon vergeten op private te zetten denk ik :s

En die andere paar dingen mag je ook zeggen :)
 
Zijn gewoon dingen die ik persoonlijk zou doen, controleren wat de status is voor hij iets doet zou niet nodig moeten zijn, maar eventueel wel mogelijk.

Ipv voor meerdere events registreren die eigenlijk over 1 en het zelfde gaan zou ook niet nodig zijn:
NewerVersion en LatestVersion kun je simpelweg combineren en een boolean toevoegen.

Code:
    public class VersionNotificationEventArgs : EventArgs
    {
        private readonly string _message;
        private readonly string _version;
        private readonly bool _isLatestVersion;

        public VersionNotificationEventArgs(string message, string version, bool isLatestVersion)
        {
            _message = message;
            _version = version;
            _isLatestVersion = isLatestVersion;
        }

        public bool IsLatestVersion
        {
            get { return _isLatestVersion; }
        }
        public string Version
        {
            get { return _version; }
        }
        public string Message
        {
            get { return _message; }
        }
    }

Verder zou ik de code in UI zaken zoals label/forms proberen tot een minimum te brengen.
Vandaar ik een service class zou maken.

Als je in b.v. een settings form of help form ook hetzelfde wilt zou je veel dubbel moeten programmeren. (en dus als je iets wilt wijzigen moet je hetzelfde op meerdere plaatsen doen)
 
Bij de UpdateLabel is het controleren van de status al intern gedaan (heb het pas aangepast na het filmpje & demo's), bij de UpdateDialog is dit iets moeilijker om te doen aangezien de gebruiker telkens een nieuwe instantie moet maken van de updater.

Wat de events betreft ga ik deze niet in 1 event gooien, microsoft doet het ook met meerdere events in 1 class dus waarom ik niet ;)
Ik heb nergens moeten dubbel programeren aangezien de UpdateLabel al een soort van service class is.
 
Goed te zien dat je de status al intern aanpast, dit zal een stuk fijner werken.
Wat betreft de UpdateEventArgs, ik stelde het ook alleen maar voor omdat in het filmpje je beide events aanmaakt en dezelfde code 2x uitvoerd.

2epq3ig.jpg


Het is natuurlijk ook een voordeel voor de gebruiker dat hij niets of zo min mogelijk aan zijn code hoeft te wijzigen zodra je updatelib een nieuwe versie krijgt.
(bv de oude status manier is nu niet meer nodig, maar zou problemen kunnen opleveren als de gebruiker hem nog zou kunnen wijzigen)
Als je meer intern in je classes kunt doen zal dit een stuk fijner werken.
 
Hoe ga je anders weten wanneer er een update, error of het al de laatste versie is? Daarom de 3 events, je moet ze niet alle 3 gebruiken je kan makkelijk alleen een event handler maken voor OnNewerVersion en de OnError & OnLatestVersion events negeren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan