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? |
| 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.
|