Aktualizacje od strony użytkownika

Aktualizowanie aplikacji to moim zdaniem ważne zagadnienie. Bardzo często aplikacja podlega ciągłym zmianom, dodawane są nowe funkcjonalności, naprawiane błędy(oczywiście:) ). Istotne jest to, w  jaki sposób taką aktualizację widzi użytkownik.

Przykład Firefox

Najlepszą aktualizację jaką do tej pory widziałem ma Firefox, jest tak zrobiona, że dla użytkownika( z domyślną konfiguracją) jest praktycznie przeźroczysta. Jedyne co zauważa to wyjeżdżające okno powiadomienia o nowej wersji, gdy już jest ściągnięta i gotowa do instalacji. Co ciekawe nowsza wersja ściąga się w taki sposób, że podczas przeglądania stron praktycznie tego nie widać. A sam Firefox aktualizuje się podczas następnego uruchomienia.

Jak to zrobić ? jak w firefox

W windows jest ciekawy mechanizm, który pozwala zrealizować mało przeszkadzający użytkownikowi transfer plików nazywa się BITS – Background Intelligent Transfer Service. To właśnie tego mechanizmu używa Windows Update do pobierania aktualizacji. Z ciekawych rzeczy, które potrafi BITS to między innymi ponowienie zerwanego transferu od właściwego miejsca i wznowienie po restarcie. BITS potrafił używać Update Application Block, niestety został porzucony przez twórców, ale nadal można go znaleźć na codeplex ( trunk-updater).

A w Mini-Korpo

W korporacji potrzebna jest kontrola nad tym, która wersja aplikacji jest używana. Model stosowany w firefoxie nie sprawdzi się. Najłatwiej jest, gdy w firmie jest jakieś super-mega-hiper rozwiązanie do zarządzania stacjami klienckimi, ale mogą sobie na to pozwolić tylko duże przedsiębiorstwa.

Kolejnym rozwiązaniem mogłoby być zapakowanie produktu w msi(oczywiście przy pomocy WiX) i instalowanie z polityk grupowych. Jest to niepraktyczne  i wymagało by restartu maszyny klienckiej, żeby wykonała się aktualiazacja.

Tym co z reguły stosuje w takich wypadkach to zwykły ClickOnce. W korpo z reguły nie musimy się też pasmem, aktualizacje są ściągne lokalnie, więc nie trzeba sie bawić BITS. W ClickOnce można oprogramować sprawdzanie nowej wersji i np wymusić restart aplikacji. W ostateczności można polegać całkowicie na wbudowanym mechaniźmie aktualizowania przed uruchomieniem. image

Miłym akcentem jest to, że ClickOnce może zainstalować także wymagane komponenyt np: .NET, Sql, czy co tam jeszcze jest potrzebne.

image image

A co najlepsze to wszystko da się zrobić za darmo.

Badam też możliwość tworzenia pakietów instalacyjnych aplikacji .netowych ( w mono) na platformy linuxowe. Tutaj problem jest bardziej złożony – trzeba stworzyć pakiety linuxowe np .rpm albo .deb. Na szczęście serwer CI – Hudson, który mi się ostatnio spodobał pozwala na odpalenie nodów linuxowych 🙂

Tagged , , ,

One thought on “Aktualizacje od strony użytkownika

  1. Aktualizacje od strony użytkownika…

    Dziękujemy za publikację – Trackback z dotnetomaniak.pl…

Leave a Reply

Your email address will not be published. Required fields are marked *