Sviluppo di applicazioni embedded
moderne con .NET Micro Framework
Lorenzo Maiorfi
maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it
Principali intenti di .NET Micro Framework
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
Virtualizzazione del «core»
– Un processore software (CLR) stack-based
esegue bytecode espresso in linguaggio «CIL»
Integrazione binaria tra moduli
software
– La CLR si occupa di threading, gestione della
memoria, interazione con codice «nativo»,ecc.
– La CLR «processa» delle unità eseguibili dette
«assembly»
Sviluppare per .NET Micro Framework
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
1. Lo sviluppatore scrive codice utilizzando linguaggi di
alto livello (C#/VB.NET)
2. Il compilatore genera uno o più assembly
3. Il bytecode degli assembly così generati viene scritto
sulla memoria Flash del dispositivo
4. Il device al reset esegue il «TinyBooter» che a sua volta
innesca il boot-strap della «TinyCLR»
5. La TinyCLR carica gli assembly ed esegue il metodo
«entry-point» (ossia il Main())
Demo #1 – Getting Started
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
DEMO
Getting Started
Demo #2 – Embedded & OOP
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
DEMO
Embedded OOP
Applicazioni «Real world»
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
• Sistema per il controllo accessi in impianti
industriali «outdoor»
• Banco di prova da laboratorio per test
motori elettrici
• Appliance per tracciatura e monitoraggio
remoto della produzione
• Sistema per il controllo wireless
dell’illuminazione di un canale marittimo
Demo #3 – IoT
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
DEMO
Internet of Things
Demo #4 – HMI Android
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
DEMO
Android HMI
Punti di forza di .NET Micro Framework
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
Produttività
– IDE, compilatore, debugger ed emulatore costituiscono la
toolchain più produttiva disponibile nel mercato embedded
Affidabilità
– Runtime «managed», controllo completo su ogni «layer»
dell’applicazione
Portabilità
– Virtualmente portabile su qualsiasi core, attualmente copre
tutti i core ARM™ 32 bit
Supporto
– Completamente open, molte librerie di base, molte risorse
community
Per approndimenti
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
 5 Aprile 2013, Perugia
«Internet of Things con Microsoft .NET»
DotNetUmbria
 31 Maggio 2013, Roma
«NetMF@Work»
Microsoft/DomusDotNet/XeDotNet
 http://www.tinyclr.it
Q&A
Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it
www.tinyclr.it
Domande?
Suggerimenti?
Insulti?
Sviluppo di applicazioni embedded moderne con
.NET Micro Framework
Lorenzo Maiorfi
maiorfi@innovactive.it
www.innovactive.it - www.tinyclr.it
Grazie per l’attenzione!

Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Maiorfi

  • 1.
    Sviluppo di applicazioniembedded moderne con .NET Micro Framework Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it
  • 2.
    Principali intenti di.NET Micro Framework Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it Virtualizzazione del «core» – Un processore software (CLR) stack-based esegue bytecode espresso in linguaggio «CIL» Integrazione binaria tra moduli software – La CLR si occupa di threading, gestione della memoria, interazione con codice «nativo»,ecc. – La CLR «processa» delle unità eseguibili dette «assembly»
  • 3.
    Sviluppare per .NETMicro Framework Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it 1. Lo sviluppatore scrive codice utilizzando linguaggi di alto livello (C#/VB.NET) 2. Il compilatore genera uno o più assembly 3. Il bytecode degli assembly così generati viene scritto sulla memoria Flash del dispositivo 4. Il device al reset esegue il «TinyBooter» che a sua volta innesca il boot-strap della «TinyCLR» 5. La TinyCLR carica gli assembly ed esegue il metodo «entry-point» (ossia il Main())
  • 4.
    Demo #1 –Getting Started Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it DEMO Getting Started
  • 5.
    Demo #2 –Embedded & OOP Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it DEMO Embedded OOP
  • 6.
    Applicazioni «Real world» LorenzoMaiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it • Sistema per il controllo accessi in impianti industriali «outdoor» • Banco di prova da laboratorio per test motori elettrici • Appliance per tracciatura e monitoraggio remoto della produzione • Sistema per il controllo wireless dell’illuminazione di un canale marittimo
  • 7.
    Demo #3 –IoT Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it DEMO Internet of Things
  • 8.
    Demo #4 –HMI Android Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it DEMO Android HMI
  • 9.
    Punti di forzadi .NET Micro Framework Lorenzo Maiorfi maiorfi@innovactive.it – www.innovactive.it www.tinyclr.it Produttività – IDE, compilatore, debugger ed emulatore costituiscono la toolchain più produttiva disponibile nel mercato embedded Affidabilità – Runtime «managed», controllo completo su ogni «layer» dell’applicazione Portabilità – Virtualmente portabile su qualsiasi core, attualmente copre tutti i core ARM™ 32 bit Supporto – Completamente open, molte librerie di base, molte risorse community
  • 10.
    Per approndimenti Lorenzo Maiorfimaiorfi@innovactive.it – www.innovactive.it www.tinyclr.it  5 Aprile 2013, Perugia «Internet of Things con Microsoft .NET» DotNetUmbria  31 Maggio 2013, Roma «NetMF@Work» Microsoft/DomusDotNet/XeDotNet  http://www.tinyclr.it
  • 11.
    Q&A Lorenzo Maiorfi maiorfi@innovactive.it– www.innovactive.it www.tinyclr.it Domande? Suggerimenti? Insulti?
  • 12.
    Sviluppo di applicazioniembedded moderne con .NET Micro Framework Lorenzo Maiorfi maiorfi@innovactive.it www.innovactive.it - www.tinyclr.it Grazie per l’attenzione!