MSIX: un nuovo formato per distribuire applicazioni Windows

di Matteo Pagani, in Windows 10,

La distribuzione di applicazioni Windows è sempre stata un fattore critico nel successo di un progetto software, sia per gli sviluppatori che per gli IT Pro. Per i primi, nulla conta la bontà del codice e dell'idea se l'applicazione è difficile da trovare, da scaricare e da installare. Per i secondi, il successo di un'infrastruttura aziendale passa anche per la capacità di reagire velocemente ai cambiamenti e di far sì che gli utenti possano sempre usufruire delle versioni più recenti e sicure di sistemi operativi, applicazioni interne, ecc.

Eppure, non mancano le sfide nel raggiungere questi obiettivi. Gli sviluppatori, infatti, oltre che al codice vero e proprio dell'applicazione, devono anche occuparsi di trovare la tecnologia giusta per gestire l'installazione tra le tante disponibili, come MSI, ClickOnce, ecc. Ma non è sufficiente! Devono occuparsi anche di implementare una soluzione per gestire gli aggiornamenti automatici, se vogliono essere sicuri che i propri utenti utilizzino sempre la versione più recente; devono assicurarsi che la procedura di installazione sia efficiente e non lasci dati non necessari sul PC in caso di disinstallazione; devono trovare un modo per vendere il proprio software, ad esempio creando una piattaforma web integrata con un sistema di pagamenti online.

Queste difficoltà per gli sviluppatori si traducono spesso in una esperienza utente non ottimale, soprattutto se paragonata a quella che gli utenti oggi sperimentano sui loro smartphone grazie alla presenza di uno Store centralizzato, che semplifica la ricerca, l'installazione e l'aggiornamento delle applicazioni.

Gli IT Pro che gestiscono il parco aziendale di grosse compagnie, invece, si trovano spesso in difficoltà in quanto raramente hanno la possibilità di effettuare il deploy di un'applicazione esattamente con l'installer fornito dallo sviluppatore. Le società, infatti, hanno spesso la necessità di personalizzare un'applicazione prima di poterla distribuire ai propri dipendenti: può trattarsi di una configurazione particolare, di modifiche al branding, ecc. Di conseguenza, prima di passare al deploy vero e proprio usando uno dei tanti tool di gestione di dispositivi aziendali (come System Center Configuration Manager o Microsoft Intune), è necessario effettuare una operazione di repackaging. Si tratta di prendere l'installer originale fornito dallo sviluppatore e, usando strumenti come App-V o Custom Tools for MSI, crearne uno nuovo con le personalizzazioni necessarie. Solo a quel punto, è possibile procedere con la distribuzione dell'applicazione a tutti i dispositivi aziendali.

Il problema di questo approccio è che, con gli strumenti attuali, c'è una dipendenza molto stretta tra il sistema operativo, l'applicazione e le personalizzazioni create dagli IT Pro. Questo significa che, ogni volta che Microsoft rilascia una nuova versione di Windows, oppure lo sviluppatore rilascia un aggiornamento di un'applicazione aziendale, oppure ancora sorge la necessità di modificare la personalizzazione, bisogna ripetere il procedimento di repackaging da capo.

A lungo termine, questo diventa un costo, sia in termini di soldi che di tempo, difficile da sostenere. Risulta quasi impossibile, infatti, adottare un approccio agile se, ad ogni nuovo aggiornamento, è necessario ripetere un processo così complesso da mantenere.

Per tutti questi motivi Microsoft ha deciso di cambiare radicalmente l'approccio per il packaging e la distribuzione di applicazioni, introducendo un nuovo formato in grado di risolvere le principali sfide che sviluppatori e IT Pro devono affrontare oggi. Le basi di questo nuovo approccio, in realtà, risalgono a diversi anni fa. Windows 8 è stato il primo sistema operativo a supportare un nuovo formato di distribuzione, i pacchetti AppX. Si trattava, però, di un formato vincolato alla nuova generazione di applicazioni introdotte con Windows 8, le Windows Store app. Il formato AppX, infatti, poteva essere utilizzato solo come "contenitore" per questa tipologia di applicazioni e poteva essere distribuito solo tramite lo Store. Era prevista anche la possibilità di distribuirli manualmente, per scenari enterprise, ma il processo era piuttosto complesso e richiedeva l'acquisto di una licenza particolare di Windows.

Con l'avvento di Windows 10 gli sforzi di Microsoft per rendere questo nuovo formato più aperto e adatto anche a scenari enterprise si sono fatti sempre più concreti. Il primo passo è stata l'apertura alla distribuzione di applicazioni enterprise: non più una procedura complicata e una licenza da acquistare a parte, ma una semplice impostazione che troviamo ancora oggi nelle impostazioni di Windows.

Il passo più grande, però, è stato fatto sicuramente con il rilascio di Windows 10 Anniversary Update, che ha introdotto il Desktop Bridge. Grazie a questa tecnologia, il formato AppX e lo Store non sono più solamente un'esclusiva delle applicazioni realizzate con la Universal Windows Platform, ma possono essere utilizzati anche per distribuire applicazioni Windows realizzate con qualsiasi delle tradizionali tecnologie Win32: WPF, Windows Forms, Java, Electron, ecc.

Il Desktop Bridge, però, era inizialmente focalizzato maggiormente sul semplificare l'esperienza per gli sviluppatori e gli utenti finali, grazie all'utilizzo di tool come il Desktop App Converter, all'integrazione in Visual Studio, all'accesso allo Store. Di conseguenza, era più difficile adottarla all'interno di ambienti enterprise, dato che non contribuiva significativamente a risolvere le problematiche che abbiamo citato poco fa. Con l'obiettivo, invece, di diventare il nuovo formato di distribuzione applicazioni per qualsiasi scenario, Microsoft ha introdotto con Windows 10 1809 il formato MSIX, che riprende gli stessi concetti implementati da AppX e Desktop Bridge e li espande per supportare al meglio scenari aziendali. MSIX, rispetto ad AppX, infatti è in grado di aiutare gli IT Pro a implementare un circolo di deploy più virtuoso, in cui gli aggiornamenti del sistema operativo, delle applicazioni e delle personalizzazioni sono indipendenti tra di loro.

MSIX, infatti, oltre ad apportare diversi vantaggi alla fase di deploy vera e propria (ottimizzando, ad esempio, l'utilizzo di banda e di spazio su disco ed offrendo un'esperienza di disinstallazione più pulita ed efficiente), consente di separare le applicazioni dalle personalizzazioni introducendo il concetto di modification package. Questi speciali pacchetti, che contengono tutte le personalizzazioni richieste dall'IT, sono separati dal pacchetto principale, ma, allo stesso tempo, i file al suo interno vengono visti come se facessero parte dell'applicazione vera e propria. Di conseguenza, è possibile aggiornare un'applicazione in maniera indipendente, senza essere costretti a ripetere da zero il processo di repackaging ad ogni nuova release.

Quali sono gli altri vantaggi nell'utilizzo del formato MSIX per la distribuzione di applicazioni? Vediamo i principali:

  • Semplicità: MSIX, in realtà, non è altro che un semplice formato compresso che, al suo interno, contiene i file che compongono l'applicazione più una serie di file utilizzati da Windows per il deployment, incluso il file di manifest, che ne definisce l'identità e le feature.
  • Affidabilità: le applicazioni Windows pacchettizzate con MSIX non girano all'interno di una vera e propria sandbox come quella delle applicazioni della Universal Windows Platform, ma Windows sfrutta comunque un container per virtualizzare alcune operazioni, come la scrittura nel registro di sistema. In questo modo, quando l'applicazione viene disinstallata, Windows è in grado di rimuovere ogni traccia, senza lasciare file o chiavi di registro "orfane" che possono rallentare il sistema nel tempo
  • Sicurezza: i pacchetti MSIX possono essere installati solamente se provengono dallo Store o se sono stati firmati con un certificato digitale dichiarato come "trusted" dal computer (ad esempio, un certificato aziendale). Se non viene rispettato questo requisito, non c'è modo per un utente di installare un pacchetto non sicuro.
  • Flessibilità: l'utilizzo del formato MSIX apre le porte alla distribuzione tramite piattaforme di nuova generazione, come lo Store, sia pubblico che privato (Store for Business o Store for Education). Allo stesso tempo, però, permette di essere distribuito anche utilizzando i tradizionali strumenti di gestione dispositivi aziendali, come SSCM o Intune. Infine, è possibile semplicemente effettuare il deploy tramite un sito web o uno share di rete, grazie ad una feature di Windows 10 chiamata App Installer. Questa tecnologia permette, tra le altre cose, di implementare gli aggiornamenti automatici senza ricorrere all'infrastruttura dello Store.
  • Update incrementali: indipendentemente dal meccanismo selezionato per distribuire le applicazioni e dalla dimensione del pacchetto, Windows è in grado di scaricare solamente i file che hanno subito delle modifiche tra un aggiornamento e l'altro. Questo è un vantaggio sia per gli IT Pro, che possono ridurre notevolmente l'utilizzo della banda, sia per gli sviluppatori, che non devono preoccuparsi di ottimizzare il processo di aggiornamento. È sufficiente creare un pacchetto con la nuova versione dell'applicazione, non importa quanto grande sia; ci penserà Windows a scaricare solo il necessario.
  • Ottimizzazione dello storage: Windows è in grado di tenere traccia dell'hash di ogni singolo file che viene incluso all'interno di un pacchetto. In questo modo, se più applicazioni sfruttano la stessa versione di un file, Windows lo memorizzerà su disco una volta sola e creerà un hard link nei vari pacchetti che lo richiedono. Questa funzionalità assume particolare utilità quando viene associata al Virtual File System, ovvero la possibilità di replicare le cartelle di sistema all'interno del pacchetto, così da includere dipendenze che, normalmente, andrebbero installate a livello di sistema operativo, come framework, runtime, librerie, ecc. In questo modo, anche nel caso abbiamo la necessità di includere framework voluminosi, lo spazio occupato su disco sarà comunque ridotto.

In ultimo, MSIX sposa in pieno la nuova filosofia Microsoft. Si tratta di un formato open-source e che offre una serie di SDK che permettono di gestire i pacchetti MSIX su diverse piattaforme, come Android, iOS, Linux, MacOS, ecc. Attenzione! Questo non significa, però, che potrete installare un pacchetto MSIX in maniera nativa anche su altre piattaforme. Tale opzione richiederebbe, infatti, un intervento anche da parte del produttore del sistema operativo per supportare il formato. Avrete però, la possibilità, di creare e decomprimere un pacchetto MSIX e di sfruttarne i contenuti su qualsiasi piattaforma. Proprio sfruttando questo approccio, ad esempio, il team ha messo a disposizione un handler che permette di installare i pacchetti MSIX su Windows 7, trattandoli come se fossero un installer tradizionale.

4 pagine in totale: 1 2 3 4
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc