A molti l'introduzione di WIN RT potrebbe suggerire un ritorno alle tanto famigerate COM, ma in realtà non è cosi... vediamo perchè...
WIN RT è l'acronimo di Windows Runtime ed è il nuovo framework introdotto da Microsoft per lo sviluppo di applicazioni per Windows 8.
In sostanza WIN RT si pome come obbiettivo quello di creare un layer per le app metro style sul quale si puó sviluppare utilizzando il lunguaggio preferito:
- C/C++
- C#/VB
- Javascript (Chakra)
Vi chiederete com'è possibile sviluppare con lunguaggi diversi sopra questo runtime.. beh dobbiamo dire grazie alle projections (il nuovo modo di Microsoft di chiamare il binding fatto quando invocavamo le nostre COM attraverso dllImport) che permottono a WINRT di esporre le proprie API ai diversi linguaggi di programmazione.
Le carattteristiche fondamentali di WIN RT sono:
- Le API sono state pensate per essere asincrone (vi ricordo che l'UI su WINRT è gestita da un unico thread che obbliga TUTTE le API con tempi di risposta superiori a 50 millisecondi ad essere eseguite in modo asincrono
- Le API sono esposte attraverso il formato ECMA 335 che vi ricordo è approvato come ISO/IEC 23271.
- Le API di WINRT sono epurate da tutte le problematiche avute in passato con COM in quanto ora vengono gestite localmente ad ogni applicazione.. quindi addio problemi di versionin, etc..
- WIN RT gestisce il sandboxing delle applicazioni che vengono eseguite in un'area confinata di memoria, quindi un crash di un'applicazione non inficerà mai il sistema operativo..
- Se sviluppiamo in C# / VB.NET ricordiamoci che avremo a disposizione un subset limitato delle BCL
- Le componenti sono salvate in file con estensione .winmd
Tutte queste caratteristiche ci consentono di realizzare applicazioni dove fluidità e sicurezza la fanno da padrone senza doverci preoccupare di come WINRT si interfaccia al sistema core (vi ricordo che WIN RT supporta sia piattaforme Intel x86/x64 che ARM)
Inoltre se da un lato WIN RT ci obbliga a dover scrivere applicazioni realizzando praticamente solo metodi asincroni ( e volenti o nolenti quest'obbligo prevede una rivisitazione del nostro stile di programmazione) il framework 4.5 ci viene incontro con l'implementazione di nuovi costrutti delle TPL (Task Paralle Library).
Questi costrutti ci consentono di scrivere codice leggibile grazie ai due nuovi operatori ASYNC e AWAIT che permettono a WINRT di comprendere che un metodo è asincrono e che la risposta della chiamata è asincrona.. facendoci dimenticare la difficoltà di lettura di un codice pieno di callback...
CONCLUSIONI FINALI:
Poiché la mia tesi si occupava dell'interoperabilità tra COM e .NET posso dire che COM ha poco o nulla a che vedere con la filosofia di WINRT anche se ne riprende alcuni aspetti.
Mi sento infine di tranquillizzare i DEV che ho sentito "impauriti" da questo approccio allo sviluppo di applicazioni native per windows 8.
P:S:
Ora non vi resta altro che prendere dimestichezza con questo nuovo approccio di sviluppo software.. e pubblicare la vostra prima app sullo store.. good luck !