Oprogramowanie  / Artykuł

Microsoft w końcu zaproponował kompromis. Na aplikacjach Win32 w Sklepie Windows skorzystają wszyscy

Już od pewnego czasu istnieje możliwość umieszczania aplikacji Win32 w Sklepie Windows. Na Build 2017 Microsoft położył na to całkiem spory nacisk. I przypomniał, że jest to dużo prostsze, niż niektórym się wydaje.

Aplikacje Universal Windows Platform stanowią pewien problem dla deweloperów piszących dla Windows. Powiedzmy, że przez lata tworzyłeś wraz z zespołem aplikację Win32. Z miesiąca na miesiąc dodawałeś do niej nowe funkcje. Twoja aplikacja jest lubiana, dobrze zaprojektowana, zainwestowałeś już w nią niemałe pieniądze. Działa na systemach Windows 7, Windows 8.x i Windows 10.

Nagle się okazuje, że pojawia się nowa platforma dla aplikacji. Dostępna tylko dla Windows 10 i wymagająca przepisania twojej aplikacji od nowa. OK., może niezupełnie od nowa, bowiem Microsoft zapewnia wiele narzędzi ułatwiających proces portowania. Jednak czy zalety UWP są aż tak duże, by uzasadniać przepisanie jej od nowa na dodatek ograniczając dostępność tej aplikacji?

Microsoft z początku właśnie tak uważał. Jednak teraz, i tu cytuję, doszedł do wniosku, że „zgłupiał totalnie”. Tak, UWP nadal jest przyszłością jeśli chodzi o tworzenie nowych appów na Windows. Microsoft przestał jednak oczekiwać, że wszyscy masowo zaczną przepisywać swoje aplikacje Win32 na UWP. Zamiast tego umożliwił umieszczanie aplikacji Win32 w Sklepie Windows.

Po co umieszczać aplikacje Win32 w Sklepie Windows? Skorzystają na tym zarówno ich twórcy, jak i użytkownicy tych aplikacji.

Nawet samo przeniesienie aplikacji metodą na totalnego lenia niesie ze sobą wiele korzyści. Przy czym przez ową metodę mam na myśli opakowanie naszej aplikacji w kontener AppX i umieszczenie jej w Sklepie. Aplikacje sklepowe są bowiem izolowane od systemu operacyjnego. A to oznacza, że następuje koniec tak zwanego „dll hell”.

Microsoft projektując Windows wiele lat temu popełnił kardynalny błąd. Założył, że użytkownik wie co instaluje, a więc instalatorom od twórców tych aplikacji można ufać. Efektem tego są setki instalatorów instalujących adware i deinstalatorów nie potrafiących w pełni odinstalować tejże aplikacji. Windows więc z czasem „puchnie” o kolejne biblioteki dll, kolejne wpisy w Rejestrze, kolejne śmieci i kolejne małe programiki, które mniej wprawny użytkownik przeoczył.

Co prawda od pewnego czasu (po raz pierwszy w Windows Vista) Microsoft implementuje mechanizmy chroniące system przed większymi szkodami. Mechanizmy te jednak nie są doskonałe. Nie mogą być, bo nikt nie jest w stanie przewidzieć co przyjdzie do głowy każdemu z twórców takich instalatorów.

Aplikacje Win32 instalowane ze Sklepu Windows nie maja dostępu do systemu. Mają na swoje potrzeby zamkniętą, dedykowaną, wirtualizowaną instancję Rejestru i przestrzeń na dane tymczasowe. Co więcej, nie trzeba się też martwić o aktualizacje tej aplikacji. Te są automatycznie realizowane przez Sklep Windows, dzięki czemu wszyscy użytkownicy zawsze używają najnowszej wersji.

A co jeśli nie będziemy leniwi?

W tym momencie sytuacja staje się jeszcze ciekawsza. Mamy już bezpieczną, izolowaną aplikację, która w żaden sposób nie wpływa negatywnie na system operacyjny. Opakowanie aplikacji Win32 w kontener AppX otwiera przed nami wiele możliwości.

Przykładowo, co z systemem transakcyjnym? Powiedzmy, że nasza aplikacja zawiera dodatkowe, płatne treści. Do tej pory musieliśmy implementować system płatności na własną rękę. Być może ktoś się pokusi o stworzenie własnego, większość zdecyduje się na implementację mechanizmów od jakiegoś pośrednika. Aplikacje ze Sklepu mogą wykorzystywać gotową infrastrukturę Microsoftu, którą użytkownicy Windows znają i której ufają. Praktycznie bez żadnego wysiłku.

Otrzymujemy też dostęp do nowych API, dostępnych do niedawna wyłącznie dla aplikacji UWP. Chcemy, by nasza aplikacja Win32 oferowała aktywny kafelek zamiast statycznego? Żaden problem. A może chcemy, by wysyłała systemowe powiadomienia do Centrum akcji? Bardzo proste do implementacji. A może twoja aplikacja potrzebuje cyklicznie, według harmonogramu, uruchomić jakieś zadanie w tle nawet jeśli użytkownik jej nie używa? Sklepowe aplikacje mogą to robić, a system sam zarządza tymi zadaniami tak, by nie wpływały one na wydajność urządzenia.

Ten pomysł, dla odmiany, się przyjmuje.

W Sklepie Windows znajdziemy już wersje Win32 takich aplikacji, jak Adobe Photoshop Elements, Slack, Telegram Messenger, Evernote, Musixmatch, przeróżne twory Cyberlinka, Open Live Writer, Kodi, Audible i wiele, wiele innych.

aplikacje Win32 w Sklepie Windows

Nie miejmy żadnych wątpliwości, to UWP, a nie Win32, jest postrzegane jako przyszłość pisania pod Windows. Ta przyszłość jest jednak, jak nas nauczyła praktyka, nadal odległa. Nadal jest zbyt wielu użytkowników Windows 7 i Windows 8.x i zbyt wiele dojrzałych i kosztownych projektów Win32, by przesiadka na nowoczesne UWP miała dla twórców programów większy sens.

Całe szczęście Microsoft (z opóźnieniem, ale jednak) dostrzegł ten problem i zaproponował kompromis korzystny dla niego samego, dla programistów i wreszcie dla użytkowników. A przecież o to w tym wszystkim chodzi, nieprawdaż?

przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst