In quest'ultimo periodo mi sono addentrato in un mondo che ho sempre ammirato, ma che non ho mai avuto il coraggio di provare: il C++ CLI. Ammirato perché già non ho mai usato C++, figuriamoci un linguaggio più evoluto. Per chi non lo sapesse, infatti, C++ CLI è un linguaggio standard ECMA evoluzione delle Managed Extensions C++ e quindi di C++ che permette di mettere in comunicazione il mondo managed .NET con quello unmanaged.
Questo vuol dire che è possibile scrivere DLL che contengano sia codice nativo che lavori con qualsiasi API, sia codice managed che faccia uso poi di classi native. Oltre a ciò è possibile ottenere il codice di interop in automatico scrivendo direttamente da codice managed chiamate a tipi o funzioni native. Così facendo si riduce al minimo il marshaling dei tipi e C++ CLI diventa l'ideale per scrivere classi che permettano di beneficiare dei pregi dei due mondi.
Se avete avuto modo di usare la classe Marshal di System.Runtime.InteropServices sapete delle fatiche che si devono compiere per le strutture ecc e apprezzerete sicuramente questo nuovo strumento.
Beh insomma dopo un po' che ci sto lavorando devo dire che è ganzissimo. Ti senti come Peter Petrelli quando si ritrova tutti quei poteri. Come il personaggio nel senso che come lui non sono capace di usarli e mi fermo fra elementari ostacoli come conversione dei tipi, utilizzo delle librerie e puntatori. Pian piano però sto prendendo possesso di questi poteri, quindi più avanti vi illustrerò cosa sono riuscito a fare.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- LINQ, lazy loading e architettura, l'11 marzo 2011 alle 18:42
- MetadataDiffViewer: aggiornato al .NET Framework 4.0, Silverlight 4.0 e Sharepoint 2010, il 7 gennaio 2010 alle 13:58
- .NET Framework 4.0 beta 1: Windows Communication Foundation, il 18 maggio 2009 alle 16:00
- Parallelizzare in Silverlight 2.0, il 21 aprile 2009 alle 00:25
- Silverlight: performance dell'isolated storage, il 16 aprile 2009 alle 17:38
- MetadataDiffViewer: differenze tra i framework, il 15 aprile 2009 alle 18:56