Jak są skonstruowane programy które się aktualizują automatycznie?

0

Witajcie! :)
Nie mam pojęcia jak zaprojektować aplikację która:

  1. Po włączeniu sprawdza, czy istnieje nowsza wersja;
  2. Jeżeli istnieje pobiera ją z serwera ftp, zamyka starą wersję i uruchamia nową.

Macie jakieś pomysły jak powinien wyglądać taki projekt?
Ja chcę zrobić 2 odrębne aplikacje:

  1. Aplikacja, którą uruchamia użytkownik:
  2. Aktualizacje

Użytkownik uruchamia aplikację, sprawdza ona, czy wersja programu jest najnowsza
a) jeśli najnowsza uruchamia program
b) jeśli nie jest najnowsza uruchamia aktualizator, a następnie program

Czy to jest dobre rozwiązanie?

Kolejny problem:
Czego używać do pobierania plików z serwera ftp?

0

Wydaje mi się, że jeśli nie wiesz jak coś zrobić to raczej powinieneś troszkę się podszkolić w języku.

Forum jest od tego by wykrywać ewentualne błędy, których sam nie możesz znaleźć, albo pokazać jakąś funkcję, która pomaga w zrobieniu czegoś. Wymaganie by, któryś z forumowiczów napisał za ciebie program jest dość... słabe.

No chyba, że ja nie zrozumiałem o co ci chodzi...

0

Panie nieznajomy - Przeczytaj temat ze zrozumieniem zanim napiszesz jakąś wielką głupotę. Nie chcę ani linijki kodu tylko zasadę działania takich programów.

1
  1. Aplikacja sprawdza czy jest nowa wersja , jeśli tak to pobiera odpowiedni plik (pliki) i zapisuje je kopii tymczasowej.
  2. Zmienia nazwę pliku aktualnej wersji np. dodając do rozszerzenie 'old'.
  3. Pobrany w pkt. 1 plik umieszcza w miejscu pliku aplikacji z już właściwą nazwą.
  4. Odpala sama siebie z nowego pliku
  5. Zamyka się
3

Ja mam w jednej apce trochę inny sposób.

  1. Podczas uruchamiania jest sprawdzany aktualny numer wersji na serwerze.
  2. Jeśli jest inny pobiera plik update.exe
  3. Uruchamiany jest plik update.exe.
  4. Aplikacja update zamyka właściwą aplikację.
  5. Aplikacja update usuwa stare pliki aplikacji i wypakowuje ze swoich zasobów nowe pliki
  6. Aplikacja update uruchamia nową wersję właściwej aplikacji i kończy swoje działanie.

Pozwala to na przeniesienie całej logiki momentu aktualizacji do innej aplikacji dzięki czemu łatwo można wykonać nie tylko podmianę plików ale np zmiany w plikach konfiguracyjnych dostosowując je do najnowszej wersji.

0

W sumie to programy nie powinny dbać o swoje aktualizacje. Tym powinien zajmować się menadżer pakietów w systemie. Tak jest w większości w systemach BSD oraz GNU Linux.

0
karolinaa napisał(a):

W sumie to programy nie powinny dbać o swoje aktualizacje. Tym powinien zajmować się menadżer pakietów w systemie. Tak jest w większości w systemach BSD oraz GNU Linux.

Ja tam piszę na windowsy jeśli już coś piszę. Dodatkowo ten opis który dałem jest do apki która musi być w najnowszej wersji inaczej nie ma sensu jej działanie i się zacznie wywalać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1