Dall'archivio articoli > Windows
C#/WinRT: integrare l'ecosistema di Windows 10 nelle applicazioni .NET
Per poter utilizzare questa funzionalità, devi fare il login o iscriverti.
Con l'avvento di Windows 10, Microsoft ha introdotto la Universal Windows Platform, un ricco ecosistema per creare applicazioni moderne, sia a livello di user experience (grazie all'introduzione del Fluent Design) che di funzionalità (grazie all'integrazione con le numerose funzionalità di Windows 10, come notifiche, Windows Hello, supporto ai dispositivi BLE, ecc.).
Tale piattaforma è basata sul Windows Runtime, un ecosistema di API native votato alle performance e interoperabile con diversi linguaggi, da C# a C++.
Nel corso del tempo, però, è emersa una criticità soprattutto per gli sviluppatori enterprise: trattandosi di una nuova piattaforma, non è compatibile con le tecnologie esistenti per lo sviluppo di applicazioni Windows desktop. Ciò ha comportato:
Nel corso degli ultimi anni, perciò, Microsoft ha lavorato con l'obiettivo di uniformare l'ecosistema e rendere accessibile agli sviluppatori qualsiasi feature del sistema operativo, indipendentemente dalla piattaforme scelta per lo sviluppo. Tale obiettivo raggiungerà il suo culmine con Project Reunion, l'ambizioso progetto di Microsoft che ha lo scopo di disaccoppiare la piattaforma di sviluppo dal sistema operativo, per includerla all'interno di una libreria.
In questo modo, sarà possibile utilizzare qualsiasi feature di Windows 10 indipendentemente dalla piattaforma di sviluppo scelta. Inoltre, il team di Windows potrà aggiungere feature e risolvere bug più velocemente, non essendo più legato al ciclo di rilascio di Windows 10. Torneremo sicuramente su questo argomento in futuro, dato che Project Reunion rappresenta una delle novità più importanti degli ultimi anni per gli sviluppatori Windows.
Per sfruttare alcune delle novità di Windows 10 all'interno delle nostre applicazioni, però, non siamo costretti ad attendere l'arrivo di Project Reunion. Nel corso di questo articolo vedremo come, grazie ad una libreria di nome C#/WinRT, possiamo già oggi integrare molte delle API della Universal Windows Platform all'interno delle nostre applicazioni .NET.
Il concetto di projection non è nuovo per chi ha già approcciato la Universal Windows Platform. Le projection sono uno strato che consente di accedere alle API di Windows Runtime (che sono native) attraverso altri linguaggi. Si tratta del meccanismo che, sin dagli inizi, ha permesso a sviluppatori con competenze diverse di sviluppare applicazioni per Windows 10: grazie ad esse, infatti, è possibile accedere all'intero ecosistema del Windows Runtime tramite C#, C++ e, in passato, anche JavaScript.
Le projection sono sempre state integrate all'interno del compilatore ma, con l'avvento di .NET 5, qualcosa è cambiato. .NET 5, infatti, ha iniziato un percorso di unificazione dell'intero ecosistema .NET verso un unico runtime, un'unica BCL e un'unica SDK. Di conseguenza, il compilatore deve essere il più agnostico possibile, visto che il runtime di .NET può girare su Windows, Linux, MacOS, Android, iOS, ecc.
Da questo requisito, è nata la libreria C#/WinRT: la projection che consente di accedere alle API del Windows Runtime via C# non è più integrata all'interno del compilatore, ma è stata separata ed inclusa in un pacchetto NuGet dedicato. Questo cambiamento ha aperto le porte all'utilizzo del Windows Runtime non solo da parte di applicazioni Universal Windows Platform, ma anche WPF e Windows Forms basate su .NET 5. Grazie a tale libreria, possiamo supportare i seguenti scenari:
C#/WinRT è solo una delle projection su cui Microsoft sta lavorando. Nel corso degli ultimi tempi, il team ha rilasciato anche C++/WinRT, dedicata agli sviluppatori C++, e Rust for Windows, per gli sviluppatori Rust. L'obiettivo è quello di consentire a qualunque sviluppatore di accedere al pieno potenziale dell'ecosistema Windows 10, indipendentemente dalle sue preferenze come linguaggi e piattaforme di sviluppo. Ma torniamo al cuore di questo articolo e vediamo come sfruttare C#/WinRT nelle nostre applicazioni.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.