C#/WinRT: integrare l'ecosistema di Windows 10 nelle applicazioni .NET

di Matteo Pagani, in Windows,

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:

  • La necessità per gli sviluppatori, nella maggior parte dei casi, di dover sviluppare le applicazioni quasi da zero per poterne sfruttare i benefici, rendendo molto complessi se non impraticabili i progetti di migrazione.
  • L'incompatibilità della maggior parte di librerie già esistenti per l'ecosistema di .NET.

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.

C#/ WinRT: di cosa si tratta?

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:

  • Utilizzare la maggior parte delle API della Universal Windows Platform all'interno di applicazioni .NET 5.
  • Sfruttare Windows Runtime Component (quindi librerie specifiche per il Windows Runtime) all'interno di un'applicazione .NET 5.

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.

3 pagine in totale: 1 2 3
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