Tra le novità di .NET 7, aggiornamento rilasciato recentemente dalla Casa di Redmond, vi è una nuova modalità per l'interazione con il codice nativo che ha la finalità di massimizzare le prestazioni e di facilitare le procedure di debugging.
Fin qui tutto bene, Microsoft ha voluto migliorare il lavoro degli sviluppatori tramite una soluzioni in cui il codice viene invocato, o se preferite richiamato, al momento della compilazione e non a runtime come avviene di solito. Detto questo però, in alcuni casi i coder avrebbero lamentato delle difficoltà durante il porting di codice preesistente.
Non solo Windows
Non tutti i progetti nascono infatti da zero, spesso lo scopo di un intervento è quello di potenziare l'esistente, aggiornarlo o rimuovere eventuali criticità. A tal proposito però, i portavoce del gruppo capitanato da Satya Nadella hanno voluto sottolineare quello che è il vero obbiettivo che si vuole raggiungere con .NET 7.
Fino ad ora infatti il framework è stato implementato avendo come riferimento principale i sistemi Windows, questo si è tradotto in un limite a livello di interoperabilità che poco ha a che fare con la nuova filosofia commerciale dell'azienda statunitense.
Tale limite risultava evidente in alcuni aspetti come per esempio la gestione dei set di caratteri. Le versioni di Windows più datate non offrono infatti un supporto adeguato alla codifica Unicode. Ora invece UTF-16 e UTF-8 sono diventati fondamentali nei processi di encoding e molti dei comportamenti inattesi prodotti in passato sono diventati fortunatamente un (brutto) ricordo per gli sviluppatori.
Librerie e linguaggi
Con il nuovo livello di interoperabilità del framework si avrà per esempio la possibilità di utilizzare librerie compilate con altri linguaggi, si pensi per esempio a C o a C++, così come di accedere a funzionalità native dei vari sistemi operativi che in precedenza risultavano inaccessibili.
A tal proposito è possibile citare il nuovo attributo LibraryImport
che sostituisce in parte DLLImport
(il cui nome sottolinea la centralità di Windows). Per il momento esso non può essere utilizzato in Visual Basic ma è disponibile per C#.
In ogni caso DLLImport
non è stato abbandonato del tutto, questo significa che gli sviluppatori hanno ancora la possibilità di scegliere quale livello di interoperabilità associare alle propria applicazioni.