Jönnek a Win32-es alkalmazások a Store-ba
Ősi adósságot törleszt a Microsoft a Desktop App Converter elérhetővé válásával. Az asztali alkalmazások modernizálhatóak az eszközzel, hermetikusan záró dobozba kerülnek. Vége a szoftverszemétnek és a rendszer újratelepítésének - ha valóra válik az ígéret.
Hivatalosan is "gyártásérettnek" minősítette a Microsoft a Project Centennialt, a Win32-es alkalmazások modernizálásához készített konverziós eszköztárát. A Desktop App Converter névre hallgató megoldás már letölthető a Windows Store-ból, hatása pedig várhatóan óriási lesz az asztali operációs rendszer működésére. Az eszközzel újracsomagolt első alkalmazások már fel is kerültek a Store-ba, az úttörő az Evernote jegyzetelőappjának új kiadása, de a Microsoft saját szoftvereit is gyors ütemben csomagolja újra (köztük az Office programcsomagot is).
A Project Centennial a Microsoft hídépítési programjának részeként mutatkozott be még 2015-ben, az iOS-appok portolását segítő Islandwood, az androidos Astoria és a webes Westminster mellett. Az Astoria fejlesztését azóta a Microsoft felfüggesztette, az Islandwood és a Westminster azonban továbbra is készül, a Desktop Bridge-ként is emelgetett Centennial pedig immár hivatalosan is befutott.
Modernizált környezetben
A Centennial nagy dobása, hogy az alkalmazás modernizálásához nincs szükség a teljes portolásra, sőt, igazából az újrafordítás is mellőzhető. A konverter ugyanis csupán a telepítés folyamatába avatkozik be, gyakorlatilag egy burkot formálva az alkalmazás körül. Ez különböző sandboxing és virtualizációs technológiákat kombinál, hogy az operációs rendszer és az alkalmazás közé falat húzzon - úgy, hogy az az app számára láthatatlan maradjon.
A Centennial ehhez a Microsoft App-V konténeres technológiáját használja, amely lehetővé teszi, hogy az alkalmazások a függőségeikkel hermetikusan elzárt dobozokba kerüljenek. A dobozból az alkalmazás kilát a rendszerre (ez elengedhetetlen a kompatibilitáshoz), azonban bármilyen interakciót kezd, annak hatása a dobozon belül érvényes csak. Így amikor a telepítő vagy később az alkalmazás a rendszerleíró adatbázisba szeretne (registry) írni vagy a System32-be tölt be könyvtárakat, akkor csak a saját dedikált példányába ír bele, a rendszer fő elemeihez már nem tud hozzápiszkálni.
A kulcs persze a transzparencia, tehát az alkalmazás szempontjából ez pontosan úgy néz ki és úgy működik, mintha tényleg a teljes hozzáféréssel rendelkezne - ennek megoldása a Centennial igazi fegyverténye. Az így bedobozolt alkalmazás ugyanis roppant egyszerűen távolítható el - egyszerűen törölni kell a doboz tartalmát. Ilyenkor a szoftver az általa generált szeméttel együtt, a rendszer egyéb elemeit nem érintve tűnik el, nem hagyva maga után semmilyen nyomot.
Ugyan a Centennial biztonsági szempontból is számottevő előrelépés lehet, a Win32-es API természetéből adódóan ebben elmarad az UWP-s appoktól. A szoftverek ugyanis sokszor teljes írási-olvasási jogot várnak el az egész rendszerre nézve, az írás pedig a fenti trükkel átverhető, az olvasás lehetőségét azonban a kompatibilitás miatt nem lehet megtagadni, így a hermetikus lezárás csak egyik irányba működik.
Az egyetlen számottevő korlátozás, hogy a konvertált alkalmazások teljesen elveszítik a jogot arra, hogy akár ideiglenes adminisztrátori jogosultságot szerezzenek, tehát nem dobhatnak fel UAC-ablakot - ez néhány nagyon régi szoftvernél okozhat gondot. Egyéb korlátozás azonban nincs, tehát például a hardverhez alacsony szintű hozzáférést kapnak WMI-n vagy COM-on keresztül az alkalmazások, szemben az UWP-s appok szigorú absztrakciós rétegével.
Ahogy az idei Builden a cég elmondta, a Microsoft a Store-ba feltöltött Win32-es alkalmazásokat természetesen ellenőrzi biztonsági szempontból, így elvben innen fertőzést nehéz lesz összeszedni majd. Ha valamelyik alkalmazás mégis problémát okoz, akkor központilag törölhetőek a veszélyessé váló telepítések - ahogy az a modern rendszerek esetében már megszokott.
Új csomagolással
A konverzió a fentiek miatt csupán az újracsomagolást követeli meg, tehát a telepítés folyamatát kell modernizálni. Ehhez a Microsoft együtt működik a népszerűbb telepítők fejlesztőivel, az InstallShieldet készítő Flexerával, a WiX-et fejlesztő FireGianttel és az Advanced Installert fejlesztő Caphyonnal, hogy a telepítő platformot használó fejlesztők közvetlenül is hozzáférhessenek a konverterhez (a NullSoft-féle nyílt forráskódú NSIS nincs a listán).
A fenti forgatókönyv az alapszint, vagyis az az eset, amikor a fejlesztő a lehető legkevesebb erőfeszítést végzi el. A Centennial másik nagy dobása ugyanis, hogy az alkalmazás számára néhány UWP-s API-t is elérhetővé tesz, így például a frissített alkalmazások használhatnak élő csempéket is, illetve adatokat küldhetnek a Windows 10-es contractokon keresztül más alkalmazásoknak.
CI/CD-vel folytatódik az AWS hazai online meetup-sorozata! A sorozat december 12-i, ötödik állomásán bemutatjuk az AWS CodeCatalyst platformot, és a nyílt forráskódú Daggert is.
A megoldás mögé tett infrastruktúra sok okos részletet tartalmaz. Az alkalmazások például felhasználói fiókhoz kötődnek, de van deduplikáció, így minden felhasználónak nem kell a teljes szoftvercsomagot külön telepítenie (ami mondjuk egy Office vagy Photoshop esetében már komoly kapacitásvesztés lenne). Ugyanígy a frissítéseknél a rendszer csak a módosított fájlokat tölti le, nem a teljes alkalmazáscsomagot.
A vállalati felhasználók is rajonghatnak majd az új képességért, az újracsomagolt alkalmazások ugyanis sideloadolhatóak is, vagyis a Store beiktatása nélkül, házon belül is telepíthetőek és menedzselhetőek - akár parancssorból is.
Hogyan illeszkedik a stratégiába?
A Microsoft kimondott hosszútávú célja, hogy a régi Win32-es API helyére emelje az UWP-t, mint a Windows platform első számú API-ját. Ez elképesztően nagy feladat és az átállás várhatóan évtizedes hosszúságúra nyúlik majd, be kell tehát rendezkedni egy átmeneti időszakra. Emiatt magas prioritású feladat megoldani, hogy a két platform az átmeneti érában súrlódásmentesen tudjon együtt élni, lehetőleg úgy, hogy a két platform között valamilyen átmenet is létrejöjjön - esetünkben az UWP-s API-k használata a Win32-es alkalmazásokban, azok teljes újraírása nélkül.
Egy órája beakadt.
Az csak hab a tortán, hogy ezzel a Microsoft a Windows platform messze legnagyobb problémáját, a szoftverdisztribúciót is meg tudja oldani. A Steam kirobbanó sikere ugyanis jól mutatja, hogy milyen fontos a felhasználóknak az automatizált telepítés-frissítés-eltávolítás, illetve a vásárlás lehetősége. A Windows Store a Centenniallal ezt az űrt fogja betölteni, ráadásul a Steamhez képest sokkal magasabb műszaki színvonalon. Legalábbis ami az alap technológiát illeti - maga a Store alkalmazás a sokéves fejlesztés ellenére továbbra is csapnivaló minőségű.
Az újracsomagolással persze a Win32-es alkalmazások nem válnak UWP-ssé, így értelemszerűen nem futnak az olyan Windows 10-kiadásokon, amelyek nem támogatják a Win32-es API-kat. Ilyen a Windows 10 Mobile, a tizesített Xbox és a HoloLens is - a Win32 tehát továbbra is marad PC-s és x86-os platform.