Strona testowana na następujących przeglądarkach internetowych
Mozilla Firefox 3.6.3
,
Google Chrome 3.0,
Internet Explorer 8.0

Gościmy

Naszą witrynę przegląda teraz 23 gości 

Jak sprawdzić, czy posiadamy aktualną wersję programu?
(3 głosów, średnia ocena 4.67 na 5)
C# (sharp)
środa, 08 lipca 2009 17:35

Co jakiś czas autorzy programów udostępniają ich nowe wersje. Jako ci autorzy, chcielibyśmy, aby użytkownicy mogli sprawdzić, czy ich programy są aktualne. W tym artykule opiszę jak to zrobić w C# dla platformy .NET, zakładając, iż gdzieś na jakimś serwerze możemy umieszczać informację na temat aktualnej wersji oprogramowania.

Aby program mógł sprawdzić, czy istnieje aktualna wersja oprogramowania trzeba gdzieś w internecie umieścić informację na jej temat. Dla potrzeb tego artykułu przyjmuję, iż informacja zawarta będzie w pliku tekstowym o nazwie "wersja.txt" umieszczonym na serwerze pod adresem : "http://www.miotk.eu/". W treści pliku "wersja.txt" umieszczamy aktualną wersję programu, np. "1.12".

Ponieważ sprawdzanie wersji mogłoby doprowadzić do chwilowego "zawieszenia" się naszego programu, całość wykonamy więc w oddzielnym wątku. Upewnijmy się, iż istnieje przestrzeń nazw "Threading" w naszym programie. Jeżeli nie to dopiszmy :

using System.Threading;

Ponieważ będziemy korzystali z sieci i internetu upewnijmy się, iż przestrzenie nazw "Net" oraz "IO" również będą używane :

using System.Net;
using System.IO;

Definiujemy stałą w której będziemy przechowywali aktualną wersję programu :

private const string wersja = "1.12";

Piszemy funkcję sprawdzającą wersję programu :

private void sprawdz_wersje()
{
    WebRequest rq = WebRequest.Create("http://www.miotk.eu/wersja.txt");
    rq.Credentials = CredentialCache.DefaultCredentials;
    HttpWebResponse rp = (HttpWebResponse)rq.GetResponse();

    Stream st = rp.GetResponseStream();
    StreamReader sr = new StreamReader(st);
    string odpowiedz = sr.ReadToEnd();
    if (wersja != odpowiedz)
        MessageBox.Show("Nowsza wersja tego oprogramowania jest już dostępna.");
    else
        MessageBox.Show("Masz najnowszą wersję oprogramowania.");
}

Nie wdając się zbytnio w szczegóły, sięgamy tutaj do pliku "wersja.txt" umieszczonego na serwerze, odczytujemy jego zawartość i porównujemy do stałej "wersja". Jeżeli się zgadza, to wersja programu jest aktualna, jeżeli nie, to jest starsza (oczywiście przy założeniu, że będziemy dbali o wersję programu umieszczoną na serwerze).

Teraz aby wszystko zadziałało musimy jakoś funkcję naszą wywołać. Przykładowo, na wciśnięcie przycisku :

private void button1_Click(object sender, EventArgs e)
{
    Thread w_wersja = new Thread(new ThreadStart(this.sprawdz_wersje));
    w_wersja.IsBackground = true;
    w_wersja.Start();
}

w nowym wątku uruchamiamy nasz proces sprawdzania wersji.

 

 

Dodaj komentarz