Se è vero che tutti conoscono Microsoft per la produzione di sistemi operativi, software e ambienti di sviluppo per i Personal Computer, è altrettanto vero che pochi sanno che la casa di Redmond ormai da qualche anno propone una piattaforma di sviluppo di applicazioni per dispositivi embedded, che si configura come la “sorella minore” del Microsoft .NET Framework. Con questo Corso vogliamo introdurre l’uso di questa piattaforma, denominata .NET Micro Framework perché nasce per offrire le stesse qualità di .NET Framework al settore dei microcontrollori.

In cosa consiste il .NET Micro FrameworkIl Micro Framework è un’infrastruttura per microcontrollori a 32 bit i cui vantaggi principali  consistono nel fornire una ricca API indipendente dall’hardware, un’efficiente controllo sulle periferiche del microcontrollore, una runtime che gestisce aspetti che vanno dal bootstrap al debug del firmware, un ricco ambiente di sviluppo quale Visual Studio, il supporto all’emulazione del dispositivo oltre, naturalmente, a innumerevoli altri vantaggi intrinseci del Framework .NET, indipendentemente dal fatto che si parli della versione “Micro” (per  icrocontrollori), della versione “Compact” (per palmari e telefoni, ma utilizzato anche sulla XBOX) o della versione “maggiore” del framework, destinata allo sviluppo di software per Personal Computer.

Rilasciato nella sua prima versione nel 2002, il Framework .NET rappresenta l’interpretazione di Microsoft della tendenza –già consolidatasi negli anni precedenti con Java alla “virtualizzazione” del microprocessore. L’obiettivo principale del progetto è infatti costituito dalla realizzazione di una “virtual machine” (così chiamata nel gergo Java) denominata “CLR” (Common Language Runtime), in grado di compilare o interpretare (a seconda delle implementazioni) codice scritto in un linguaggio indipendente dall’hardware, denominato IL (Intermediate Language), traducendolo “just-in-time” in istruzioni native per lo specifico microprocessore su cui si sta eseguendo l’applicazione. I vantaggi della virtualizzazione sono numerosi ed evidenti, primi tra tutti quelli dell’indipendenza dall’hardware e della maggior possibilità di controllo su quanto viene eseguito, a fronte di un calo delle prestazioni assolutamente trascurabile.

A tale proposito, sono invece numerosi i casi in cui è stato dimostrato che un’applicazione destinata ad essere eseguita dalla CLR (ossia “managed”, come viene comunemente definita) può addirittura presentare performance superiori alla controparte “nativa”, in quanto la possibilità da parte della runtime di ottimizzare l’esecuzione per lo specifico hardware su cui si sta eseguendo l’applicazione (tenendo conto ad esempio della versione del sistema operativo, del numero di core o processori e della RAM effettivamente a disposizione) permette di aumentare le prestazioni più di quanto esse non calino per gestire la compilazione “just-in-time” da parte dell’infrastruttura.

Nel mondo dei microcontrollori, in cui le architetture dominanti sono ben più numerose di quelle presenti nel mondo del Personal Computer (in cui sostanzialmente troviamo x86, x64 e Itanium) i vantaggi derivanti dall’adozione di un framework basato su una runtime che virtualizzi l’hardware sono ancora più evidenti. Grazie al .NET Micro Framework, possiamo infatti realizzare applicazioni che possono essere eseguite indistintamente su processori Atmel, NXP, Freescale, Analog Devices, ecc.
Scarica il file .ZIP con il Corso e tutti gli allegati.