<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Note Tecniche di Dario Airoldi</title><subtitle type="html" /><id>http://blogs.msdn.com/darioait/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/darioait/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-01-04T10:53:56Z</updated><entry><title>Introduzione alle novit&amp;amp;#224; di SQL Server 2008</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2008/01/20/introduzione-alle-novit-di-sql-server-2008.aspx" /><id>http://blogs.msdn.com/darioait/archive/2008/01/20/introduzione-alle-novit-di-sql-server-2008.aspx</id><published>2008-01-20T19:08:42Z</published><updated>2008-01-20T19:08:42Z</updated><content type="html">La quantit&amp;#224; di informazioni digitali gestita dalle aziende cresce con velocit&amp;#224; impressionante ormai da molti anni e diventa sempre pi&amp;#249; determinante per il loro business. In uno scenario di trasformazione cos&amp;#236; forte, oltre a performance , e scalabilit&amp;#224; della piattaforma, diventano sempre pi&amp;#249; importanti requisiti come sicurezza e alta disponibilit&amp;#224; , supporto alla archiviazione di dati eterogenei e facilit&amp;#224; di accesso ai dati da dispositivi ed applicazioni diverse,...(&lt;a href="http://blogs.msdn.com/darioait/archive/2008/01/20/introduzione-alle-novit-di-sql-server-2008.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7109124" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author><category term=".NET Framework" scheme="http://blogs.msdn.com/darioait/archive/tags/.NET+Framework/default.aspx" /><category term=".NET Framework 3.x" scheme="http://blogs.msdn.com/darioait/archive/tags/.NET+Framework+3.x/default.aspx" /><category term="Windows Longhorn" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Longhorn/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio/default.aspx" /><category term="Visual Studio Orcas" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Orcas/default.aspx" /><category term="Visual Studio Team System" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Team+System/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/darioait/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Vetrina dell'Innovazione per le applicazioni Certified for Vista</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/10/15/vetrina-dell-innovazione-per-le-applicazioni-certified-for-vista.aspx" /><id>http://blogs.msdn.com/darioait/archive/2007/10/15/vetrina-dell-innovazione-per-le-applicazioni-certified-for-vista.aspx</id><published>2007-10-15T11:51:22Z</published><updated>2007-10-15T11:51:22Z</updated><content type="html">Dalla scorsa settimana, nel Developer Center di Windows Vista , è online la Vetrina dell'Innovazione per le applicazioni Certified for Vista . La iniziativa evidenzia alcune soluzioni che hanno ottenuto il logo " Certified for Vista " in italia, lo scorso anno. La vetrina dell'innovazione vuole essere un ringraziamento per le società che si sono impegnate (con grande entusiasmo!) per ottenere il logo ed... un motivo in più, per farlo, per chi non ci ha ancora pensato!:) Chi ottenesse il logo e può...(&lt;a href="http://blogs.msdn.com/darioait/archive/2007/10/15/vetrina-dell-innovazione-per-le-applicazioni-certified-for-vista.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5460021" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author></entry><entry><title>Office Platform: tutte le versioni di Office sono uguali? - Part 3</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-3.aspx" /><link rel="enclosure" type="application/vnd.openxmlformats-officedocument.word" length="2070093" href="http://blogs.msdn.com/darioait/attachment/4492396.ashx" /><id>http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-3.aspx</id><published>2007-08-21T13:12:00Z</published><updated>2007-08-21T13:12:00Z</updated><content type="html">Questo è il terzo post di una serie che si propone di analizzare le caratteristiche innovative di Office Sytem 2007. 
Abbiamo visto, nella parti 1 e 2, che Office System si propone come uno strumento integrato di collaborazione collettiva ed una piattaforma distribuita su cui sviluppare applicazioni di business.
A questo scopo, la evoluzione della tradizionale suite di produttività individuale, è stata integrata con Microsoft Office System Server 2007 (MOSS 2007), una piattaforma applicativa con funzioni di collaboration, content e document management, basata su Windows Sharepoint Services di Windows Server 2003.

Nella parte 1 abbiamo analizzato le innovazioni della parte client della nuova piattaforma. 
Nella parte 2 abbiamo accennato agli aspetti innovativi della parte server, legati alla evoluzione di Windows Sharepoint Services v3. 
Ora capiremo insieme come, dalla parte server, MOSS 2007 contribuise a rendere office una piattaforma integrata per sviluppare applicazioni di business.
...(&lt;a href="http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-3.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4492396" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author><category term="Office" scheme="http://blogs.msdn.com/darioait/archive/tags/Office/default.aspx" /><category term="Office Platform" scheme="http://blogs.msdn.com/darioait/archive/tags/Office+Platform/default.aspx" /><category term="Office 2007" scheme="http://blogs.msdn.com/darioait/archive/tags/Office+2007/default.aspx" /><category term="2007 Office System" scheme="http://blogs.msdn.com/darioait/archive/tags/2007+Office+System/default.aspx" /><category term="Microsoft Office System Server (MOSS)" scheme="http://blogs.msdn.com/darioait/archive/tags/Microsoft+Office+System+Server+_2800_MOSS_2900_/default.aspx" /><category term="Microsoft Office System Server 2007 (MOSS 2007)" scheme="http://blogs.msdn.com/darioait/archive/tags/Microsoft+Office+System+Server+2007+_2800_MOSS+2007_2900_/default.aspx" /><category term="Windows Sharepoint Services (WSS)" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Sharepoint+Services+_2800_WSS_2900_/default.aspx" /><category term="Windows Sharepoint Services v3 (WSSv3)" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Sharepoint+Services+v3+_2800_WSSv3_2900_/default.aspx" /><category term="Visual Studio Tools for Office (VSTO)" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Tools+for+Office+_2800_VSTO_2900_/default.aspx" /><category term="Visual Studio Tools for Office v3 (VSTOv3)" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Tools+for+Office+v3+_2800_VSTOv3_2900_/default.aspx" /></entry><entry><title>Office Platform: tutte le versioni di Office sono uguali? - Part 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-2.aspx" /><link rel="enclosure" type="application/vnd.openxmlformats-officedocument.word" length="691221" href="http://blogs.msdn.com/darioait/attachment/4492173.ashx" /><id>http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-2.aspx</id><published>2007-08-21T12:25:00Z</published><updated>2007-08-21T12:25:00Z</updated><content type="html">Questo post è il secondo di 3 articoli che si propongono di analizzare le caratteristiche innovative di Office Sytem 2007. 

Abbiamo visto, nella parte 1, che office system si propone come uno strumento integrato di collaborazione collettiva ed una piattaforma distribuita su cui sviluppare applicazioni di business.
A questo scopo, la evoluzione della tradizionale suite di produttività individuale, è stata integrata con Microsoft Office System Server 2007 (MOSS 2007), una piattaforma applicativa con funzioni di collaboration, content e document management, basata su Windows Sharepoint Services di Windows Server 2003.

Nella parte 1 abbiamo analizzato le innovazioni della parte client della nuova piattaforma. Nei restanti articoli capiremo insieme come, dalla parte server, Windows Sharepoint Services e MOSS 2007 contribuiscono a rendere office una piattaforma integrata per sviluppare applicazioni di business.
In questa sezione analizzeremo alcuni tra gli aspetti innovativi di Windows Sharepoint Services v3 più interessanti.
...(&lt;a href="http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4492173" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author><category term="Office" scheme="http://blogs.msdn.com/darioait/archive/tags/Office/default.aspx" /><category term="Office Platform" scheme="http://blogs.msdn.com/darioait/archive/tags/Office+Platform/default.aspx" /><category term="Office 2007" scheme="http://blogs.msdn.com/darioait/archive/tags/Office+2007/default.aspx" /><category term="2007 Office System" scheme="http://blogs.msdn.com/darioait/archive/tags/2007+Office+System/default.aspx" /><category term="Microsoft Office System Server (MOSS)" scheme="http://blogs.msdn.com/darioait/archive/tags/Microsoft+Office+System+Server+_2800_MOSS_2900_/default.aspx" /><category term="Microsoft Office System Server 2007 (MOSS 2007)" scheme="http://blogs.msdn.com/darioait/archive/tags/Microsoft+Office+System+Server+2007+_2800_MOSS+2007_2900_/default.aspx" /><category term="Windows Sharepoint Services (WSS)" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Sharepoint+Services+_2800_WSS_2900_/default.aspx" /><category term="Windows Sharepoint Services v3 (WSSv3)" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Sharepoint+Services+v3+_2800_WSSv3_2900_/default.aspx" /><category term="Visual Studio Tools for Office (VSTO)" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Tools+for+Office+_2800_VSTO_2900_/default.aspx" /><category term="Visual Studio Tools for Office v3 (VSTOv3)" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Tools+for+Office+v3+_2800_VSTOv3_2900_/default.aspx" /></entry><entry><title>Office Platform: tutte le versioni di Office sono uguali? - Part 1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-1.aspx" /><link rel="enclosure" type="application/vnd.openxmlformats-officedocument.word" length="2037594" href="http://blogs.msdn.com/darioait/attachment/4491009.ashx" /><id>http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-1.aspx</id><published>2007-08-21T10:55:00Z</published><updated>2007-08-21T10:55:00Z</updated><content type="html">Parlando di applicazioni di produttività individuale impera spesso la filosofia del "good enough". 

Quante volte abbiamo sentito dire frasi come "tutte le versioni di office sono uguali" oppure "per l'uso che ne faccio, è sufficiente avere qualunque versione di Office!"? 

Ma tutte le versioni di office sono veramente uguali? Ma Microsoft Office System 2007 si differenzia veramente dalle versioni precedenti? 

Nei prossimi 3 articoli proverò ad analizzare i principali aspetti di innovazione che propone la versione 2007. 

Chissà che questo non aiuti a sfatare un po' di questi luoghi comuni? ...(&lt;a href="http://blogs.msdn.com/darioait/archive/2007/08/21/office-platform-tutte-le-versioni-di-office-sono-uguali-part-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4491009" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author><category term="Office" scheme="http://blogs.msdn.com/darioait/archive/tags/Office/default.aspx" /><category term="Office Platform" scheme="http://blogs.msdn.com/darioait/archive/tags/Office+Platform/default.aspx" /><category term="Office 2007" scheme="http://blogs.msdn.com/darioait/archive/tags/Office+2007/default.aspx" /><category term="2007 Office System" scheme="http://blogs.msdn.com/darioait/archive/tags/2007+Office+System/default.aspx" /><category term="Microsoft Office System Server (MOSS)" scheme="http://blogs.msdn.com/darioait/archive/tags/Microsoft+Office+System+Server+_2800_MOSS_2900_/default.aspx" /><category term="Microsoft Office System Server 2007 (MOSS 2007)" scheme="http://blogs.msdn.com/darioait/archive/tags/Microsoft+Office+System+Server+2007+_2800_MOSS+2007_2900_/default.aspx" /><category term="Visual Studio Tools for Office (VSTO)" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Tools+for+Office+_2800_VSTO_2900_/default.aspx" /><category term="Visual Studio Tools for Office v3 (VSTOv3)" scheme="http://blogs.msdn.com/darioait/archive/tags/Visual+Studio+Tools+for+Office+v3+_2800_VSTOv3_2900_/default.aspx" /></entry><entry><title>Info - Team Development with TFS Guide</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/07/11/info-team-development-with-tfs-guide.aspx" /><id>http://blogs.msdn.com/darioait/archive/2007/07/11/info-team-development-with-tfs-guide.aspx</id><published>2007-07-11T11:55:22Z</published><updated>2007-07-11T11:55:22Z</updated><content type="html">&lt;p&gt;Vi segnalo la disponibilità, su codeplex della nuova guida “&lt;a href="http://www.codeplex.com/TFSGuide"&gt;Team Development with TFS Guide&lt;/a&gt;” per lo sviluppo con Visual Studio Team Foundation Server.  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/darioait/WindowsLiveWriter/InfoTeamDevelopmentwithTFSGuide_9991/clip_image0021.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="clip_image002[1]" src="http://blogs.msdn.com/blogfiles/darioait/WindowsLiveWriter/InfoTeamDevelopmentwithTFSGuide_9991/clip_image0021_thumb.jpg" width="371" border="0"&gt;&lt;/a&gt;  &lt;p&gt;La guida è divisa in 8 parti:  &lt;ul&gt; &lt;li&gt;Part I, Fundamentals  &lt;li&gt;Part II, Source Control  &lt;li&gt;Part III, Builds  &lt;li&gt;Part IV, Big Team Considerations  &lt;li&gt;Part V, Project Management  &lt;li&gt;Part VI, Process Guidance  &lt;li&gt;Part VII, Reporting  &lt;li&gt;Part VIII, Setting Up and Maintaining the Team Environment&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Dopo una introduzione iniziale sulla architettura del prodotto, tratta in modo molto concreto le linee guida e strategie da seguire per utilizzare Team Foundation Sever nelle varie fasi del ciclo di sviluppo.  &lt;p&gt;Proprio su questo tema vi segnalo anche il “&lt;a href="http://www.microsoft.com/italy/msdn/risorsemsdn/team/path/default.mspx"&gt;Percorso formativo su Visual Studio Team System&lt;/a&gt;” disponibile sul nostro sito MSDN Italy.  &lt;p&gt;Si tratta di una serie di webcast curata da &lt;a href="http://blogs.ugidotnet.org/lbarbieri/"&gt;Lorenzo Barbieri&lt;/a&gt; che tratta in modo chiaro ed interessante tutti i temi legati alla gestione del cliclo di sviluppo SW con Visual Studio Team System e Team Foundation Server.  &lt;p&gt;Credo che questi 2 riferimenti possano costituire una ottima base per un utilizzo efficace della piattaforma Visual Studio.&lt;/p&gt; &lt;p&gt;buon lavoro e buon divertimento!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3811841" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author></entry><entry><title>Info: TechEd Developers a Barcellona 5-9 Novembre</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/07/04/info-teched-developers-a-barcellona-5-9-novembre.aspx" /><id>http://blogs.msdn.com/darioait/archive/2007/07/04/info-teched-developers-a-barcellona-5-9-novembre.aspx</id><published>2007-07-04T16:18:52Z</published><updated>2007-07-04T16:18:52Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.mseventseurope.com/teched/07/developers/Pages/Default.aspx"&gt;Teched Developer 2007&lt;/a&gt; si terrà in Europa a Barcellona dal &lt;strong&gt;&lt;em&gt;5 al 9 Novembre&lt;/em&gt;&lt;/strong&gt;.
&lt;/p&gt;&lt;p&gt;Date una occhiata ai &lt;a href="http://www.mseventseurope.com/teched/07/Developers/Content/Pages/TechnicalTracks.aspx"&gt;contenuti&lt;/a&gt; ed ai &lt;a href="http://www.mseventseurope.com/teched/07/Developers/Content/Pages/FeaturedSpeakers.aspx"&gt;featured speakers&lt;/a&gt;!
&lt;/p&gt;&lt;p&gt;Il programma di iscrizione "Super Early Bird" è attivo fino al &lt;strong&gt;&lt;em&gt;31/7&lt;/em&gt;&lt;/strong&gt;.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3688980" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author></entry><entry><title>Introduzione a Micro Framework</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/04/28/introduzione-a-micro-framework.aspx" /><link rel="enclosure" type="application/vnd.openxmlformats-officedocument.pres" length="1777507" href="http://blogs.msdn.com/darioait/attachment/2310439.ashx" /><id>http://blogs.msdn.com/darioait/archive/2007/04/28/introduzione-a-micro-framework.aspx</id><published>2007-04-28T12:42:00Z</published><updated>2007-04-28T12:42:00Z</updated><content type="html">&lt;h1&gt;La vision di Micro Framework 
&lt;/h1&gt;&lt;p&gt;Piccoli dispositivi elettronici controllati da microprocessori sono sempre più diffusi ma: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Pochi tool ne supportano lo sviluppo 
&lt;/li&gt;&lt;li&gt;Sono necessari forti skill per fare cose semplici 
&lt;/li&gt;&lt;li&gt;Lo sviluppo avviene generalmente in C/C++ o assembler, ad un livello di astrazione molto basso e difficilmente manutenibile. 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Micro Framework &lt;/em&gt;&lt;/strong&gt;si propone per lo &lt;strong&gt;&lt;em&gt;sviluppo embedded &lt;/em&gt;&lt;/strong&gt;come ha fatto &lt;strong&gt;&lt;em&gt;VB6 &lt;/em&gt;&lt;/strong&gt;per lo sviluppo delle &lt;strong&gt;&lt;em&gt;vecchie applicazioni desktop&lt;/em&gt;&lt;/strong&gt;: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;MF introduce un modello di sviluppo semplice ed intuitivo. 
&lt;/li&gt;&lt;li&gt;MF introduce uno sviluppo applicativo ad un livello di astrazione alto, in cui lo sviluppatore gestisce i dispositivi periferici tramite oggetti, metodi ed eventi. 
&lt;/li&gt;&lt;li&gt;Lo sviluppo può avvenire con un ambiente di sviluppo semplice da utilizzare. 
&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;Posizionamento di Micro framework 
&lt;/h1&gt;&lt;p&gt;MF è un .Net Runtime &lt;span style="text-decoration:underline"&gt;piccolo&lt;/span&gt; per processori embedded &lt;span style="text-decoration:underline"&gt;32bit&lt;/span&gt;, &lt;span style="text-decoration:underline"&gt;economici&lt;/span&gt; e a &lt;span style="text-decoration:underline"&gt;basso consuno&lt;/span&gt;
	&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Le applicazioni Micro framework hanno un &lt;strong&gt;&lt;em&gt;Memory Footprint molto ridotto&lt;/em&gt;&lt;/strong&gt; (~256K RAM) &lt;br/&gt;Per esempio, Windows CE permette di scrivere applicazioni con 300K di memoria solo sviluppando codice nativo. &lt;br/&gt;
		&lt;/li&gt;&lt;li&gt;Micro framework permette lo sviluppo su &lt;strong&gt;&lt;em&gt;hardware particolarmente semplice&lt;/em&gt;&lt;/strong&gt;
			&lt;br/&gt;Per esempio, non richiede nemmeno l'uso di Memory Management Unit &lt;br/&gt;
		&lt;/li&gt;&lt;li&gt;&lt;div&gt;Micro framework permette lo sviluppo embedded con &lt;strong&gt;&lt;em&gt;Visual Studio 2005&lt;/em&gt;&lt;/strong&gt;
			&lt;/div&gt;&lt;ul&gt;&lt;li&gt;L'ambiente Include un &lt;strong&gt;&lt;em&gt;emulatore&lt;/em&gt;&lt;/strong&gt; completo e funzionale 
&lt;/li&gt;&lt;li&gt;Permette lo sviluppo con &lt;strong&gt;&lt;em&gt;linguaggio C#&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;.Net framework&lt;/em&gt;&lt;/strong&gt;
					&lt;br/&gt;
				&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Micro framework esegue &lt;strong&gt;&lt;em&gt;codice managed&lt;/em&gt;&lt;/strong&gt; controllato e sicuro 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Lo sviluppo embedded con Micro Framework avviene in modo consistente con lo sviluppo sulle le altre piattaforme applicative Microsoft. 
&lt;/p&gt;&lt;h1&gt;Le piattaforme embedded di microsoft 
&lt;/h1&gt;&lt;p&gt;Le piattaforme embedded di microsoft includono a questo punto: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;.Net Micro Framework&lt;/em&gt;&lt;/strong&gt;: indirizza l'hardware di fascia minima, è adatto per dispositivi wareable, piccola automazione industriale e applicazioni su oggetti di largo consumo 
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Windows CE&lt;/em&gt;&lt;/strong&gt;: Indirizza lo sviluppo per elettronica di consumo più sofisticata come la telefonia cellulare, computer sofisticati per automobili etc 
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Windows XP Embedded&lt;/em&gt;&lt;/strong&gt;: è la piattaforma per sviluppo embedded più potente dal punto di vista funzionale, dispone di tutte le capacità della piattaforma Windows XP e richiede hardware intel X86. 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La figura riportata di seguito illustra le 3 piattaforme ed il tipo di target applicativo che permettono di indirizzare. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion1.png" alt=""/&gt;
	&lt;/p&gt;&lt;h1&gt;Le piattaforme embedded a confronto 
&lt;/h1&gt;&lt;p&gt;Scendendo nel dettaglio del confronto delle piattaforme embedded possiamo notare alcuni aspetti interessanti: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Micro framework può eseguire applicazioni .Net con soli 300K 
&lt;/div&gt;&lt;p&gt;Per una applicazione .Net Compact Framework Windows CE richiede almeno 10MB. 
&lt;/p&gt;&lt;p&gt;Windows XP Embedded ha requisiti di memoria 100 volte superiori. 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Micro framework permette l'utilizzo di hardware a bassissimo consumo di energia 
&lt;/div&gt;&lt;p&gt;Possiamo immaginare che un dispositivo Micro Framework può funzionare con hw che non richiede ricarica o sostituzione delle batterie per molto tempo. 
&lt;/p&gt;&lt;p&gt;Questa caratteristica lo rende adatto per l'elettronica su oggetti di largo consumo. 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Rispetto alle altre piattaforme Micro framework ha un run time molto semplice 
&lt;/div&gt;&lt;p&gt;Vedremo che Micro framework offre funzionalità grafiche molto interessanti ma non dispone del motore directX, di applicazioni client come il browser, o per la gestione dei dati come SQLServer Compact Edition. 
&lt;/p&gt;&lt;p&gt;A livello di sistema, vedremo che Micro Framework implementa un multithreading di tipo cooperativo non realtime mentre windows CE permette un multithreading di tipo preemptive e supporta funzioni di tipo realtime. 
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La tabella illustrata di seguito mostra queste ed altri dettagli di differenziazione tra le 3 piattaforme embedded: 
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:103px"/&gt;&lt;col style="width:220px"/&gt;&lt;col style="width:177px"/&gt;&lt;col style="width:167px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height: 65px; background: #a19574"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  solid #a19574 0.75pt; border-left:  solid #a19574 0.75pt; border-bottom:  solid white 2.25pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="color:white"&gt;&lt;strong&gt;&lt;span style="font-family:Franklin Gothic Book"&gt; &lt;/span&gt;
								&lt;/strong&gt;&lt;/span&gt;  &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  solid #a19574 0.75pt; border-left:  none; border-bottom:  solid white 2.25pt; border-right:  none"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:white"&gt;&lt;strong&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;.NET Micro Framework&lt;/span&gt;
								&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  solid #a19574 0.75pt; border-left:  none; border-bottom:  solid white 2.25pt; border-right:  none"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:white"&gt;&lt;strong&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Windows CE&lt;/span&gt;
								&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  solid #a19574 0.75pt; border-left:  none; border-bottom:  solid white 2.25pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:white"&gt;&lt;strong&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Windows XPe&lt;/span&gt;
								&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px; background: #e0ddd6"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;Example Devices&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Sensor Nodes, Aux displays, Health Monitoring, Remote Controls, Robotics&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;GPS Handhelds, PDAs,&lt;br/&gt;Automotive, Set Top Boxes&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Thin Clients, ATMs, Kiosks&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;Features&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Connected, Small, Wearable, Graphical UI&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Connected, Graphical UI, Server, Browser, RAS, DirectX&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;PCclass performance,&lt;br/&gt;PC networking&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px; background: #e0ddd6"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;Footprint&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;250-500KB managed code&lt;br/&gt;Full featured&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;300KB+ without managed code&lt;br/&gt;12MB with managed code&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;40MB + Depending on features&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;Power&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Very low power&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Low power&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Mains power&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px; background: #e0ddd6"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;CPU&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;ARM7, ARM9, No MMU&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;X86, MIPS, SH4, ARM,&lt;br/&gt;with MMU&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;X86&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;Real-time&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Not Real-time&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Hard Real-time&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Real-time capable through 3rd party extensions&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 65px; background: #e0ddd6"&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a19574 0.75pt; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 2.25pt"&gt;&lt;p&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;&lt;span style="color:black"&gt;Managed vs. Native Code&lt;/span&gt;&lt;span style="color:white"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Managed via .NET Micro Framework,&lt;br/&gt;native code through interop only.&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Supports both,&lt;br/&gt;managed code requires .NET Compact Framework&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a19574 0.75pt; border-right:  solid #a19574 0.75pt"&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:Franklin Gothic Book"&gt;Supports both, managed code&lt;br/&gt;requires .NET Framework&lt;/span&gt;
							&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h1&gt;Un po' di storia 
&lt;/h1&gt;&lt;p&gt;Micro Framework nasce nel &lt;strong&gt;&lt;em&gt;2001&lt;/em&gt;&lt;/strong&gt; con il nome di &lt;strong&gt;&lt;em&gt;TinyCLR&lt;/em&gt;&lt;/strong&gt;, all'interno del progetto &lt;strong&gt;&lt;em&gt;Smart Personal Object Technology (SPOT)&lt;/em&gt;&lt;/strong&gt;. 
&lt;/p&gt;&lt;p&gt;La prima impementazione Micro Framework si vede nel &lt;strong&gt;&lt;em&gt;2004&lt;/em&gt;&lt;/strong&gt; con gli &lt;strong&gt;&lt;em&gt;Smart Watches&lt;/em&gt;&lt;/strong&gt; di &lt;strong&gt;&lt;em&gt;MSN Direct&lt;/em&gt;&lt;/strong&gt;. 
&lt;/p&gt;&lt;p&gt;Nel &lt;strong&gt;&lt;em&gt;2005&lt;/em&gt;&lt;/strong&gt; microsoft rilascia una &lt;strong&gt;&lt;em&gt;implementazione Microsoft TV&lt;/em&gt;&lt;/strong&gt; basata su Micro Framework insieme alle altre implementazioni, più sofisticate, basate su Windows CE. 
&lt;/p&gt;&lt;p&gt;Alla Microsoft Embedded Developer Conference (MEDC) del 2006 microsoft mostra il &lt;strong&gt;&lt;em&gt;Sumo Robot Kit&lt;/em&gt;&lt;/strong&gt;, una prima implementazione Micro Framework veramente sofisticata. 
&lt;/p&gt;&lt;p&gt;Con &lt;strong&gt;&lt;em&gt;Windows Vista Sideshow&lt;/em&gt;&lt;/strong&gt;, l'&lt;strong&gt;&lt;em&gt;SDK 2.0&lt;/em&gt;&lt;/strong&gt; rilasciati a Febbraio 2007 e le schede per sviluppo HW proposte sul mercato da vari partner microsoft, micro framework diventa finalmente una piattaforma a disposizione di tutti. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion2.png" alt=""/&gt;
	&lt;/p&gt;&lt;h1&gt;Caratteristiche di micro framework 
&lt;/h1&gt;&lt;p&gt;Ecco alcuni punti chiave che caratterizzano Micro Framework: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Micro Framework è un runtime Bootable:&lt;/em&gt;&lt;/strong&gt; MF Può eseguire boot autonomamente sull'hardware anche se, ovviamente, può essere ospitato su sistemi operativi esistenti. 
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Micro Framework permette un modello di sviluppo Sicuro&lt;/em&gt;&lt;/strong&gt;: infatti, l'accesso alle risorse avviene tramite &lt;strong&gt;&lt;em&gt;oggetti&lt;/em&gt;&lt;/strong&gt; con proprietà tipizzate, metodi ed eventi. 
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Micro Framework è una piattaforma di esecuzione sicura:&lt;/em&gt;&lt;/strong&gt; micro framework utilizza assemblies firmati ed il loader degli assemblies esegue verifiche di integrità del codice binario che viene eseguito. 
&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;strong&gt;&lt;em&gt;Micro Framework Estensibile&lt;/em&gt;&lt;/strong&gt; A livello software ed Hardware: 
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;A livello software &lt;/em&gt;&lt;/strong&gt;perchè, sul runtime Micro Framework, è possibile costruire nuove classi e librerie che ne estendano le capacità 
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;A livello hardware &lt;/em&gt;&lt;/strong&gt;perchè, Micro Framework può interagire con dispositivi periferici, tramite un insieme di protocolli standard predefiniti su porte seriali, parallele, bluetooth etc. 
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Micro Framework&lt;/em&gt;&lt;/strong&gt; è disponibile su varie architetture Hardware ma può essere portato anche su Hardware attualmente non tramite un &lt;strong&gt;&lt;em&gt;Porting Kit&lt;/em&gt;&lt;/strong&gt; reso disponibile da microsoft. 
&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;Runtime features 
&lt;/h1&gt;&lt;p&gt;Dal punto di vista funzionale Micro Framework si evidenzia per: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;&lt;strong&gt;Il Runtime grafico&lt;/strong&gt; che implemeta l'object model &lt;strong&gt;&lt;em&gt;Windows Presentation Foundation (WPF)&lt;/em&gt;&lt;/strong&gt;. 
&lt;/div&gt;&lt;p&gt;Questo significa che con Micro Framework è possible comporre controlli utilizzare &lt;strong&gt;&lt;em&gt;colori, gradienti e trasparenze&lt;/em&gt;&lt;/strong&gt;, utilizzare i pannelli di gestione del layout. 
&lt;/p&gt;&lt;p&gt;Questo significa inoltre che la programmazione delle interfacce Micro Framework avviene con lo stesso modello di programmazione utilizzato per le altre piattaforme microsoft. 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;I &lt;strong&gt;servizi di&lt;/strong&gt;&lt;em&gt;
				&lt;/em&gt;&lt;strong&gt;Runtime&lt;/strong&gt;. Alcuni esempi interessanti includono: 
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;la gestione dei &lt;strong&gt;&lt;em&gt;Threads&lt;/em&gt;&lt;/strong&gt;, che si utilizzano con le stesse, classi (Thread) e namespaces (System.Threading) utilizzate dalle altre implementazioni .Net. 
&lt;/li&gt;&lt;li&gt;la gestione della &lt;strong&gt;&lt;em&gt;memoria&lt;/em&gt;&lt;/strong&gt;: infatti Micro Framework implementa un algoritmo di Garbage collection appositamente progettato per minimizzare la occupazione di memoria delle applicazioni. 
&lt;/li&gt;&lt;li&gt;Il support della localizzazione delle applicazioni; infatti, con Micro Framework è possibile creare applicazioni con diverse localizzazioni all'interno di resource files. 
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Le Funzioni di interazione con &lt;strong&gt;periferiche hardware.&lt;/strong&gt;
			&lt;/div&gt;&lt;p&gt;Micro Framework permette di gestire dispositivi periferici tramite un insieme di protocolli standard ed utilizzati sul mercato come: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Managed drivers for LCDs 
&lt;/li&gt;&lt;li&gt;Universal Asynchronous Receiver/Transmitter (USART) 
&lt;/li&gt;&lt;li&gt;I2C™ 
&lt;/li&gt;&lt;li&gt;General-purpose I/O (GPIO) 
&lt;/li&gt;&lt;li&gt;Pulse-Width modulation (PWM) 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La interazione con questo tipo di dispositivi avviene sempre tramite codice managed, agendo sulle classi .Net che li rappresentano ed intercettando gli eventi da esse scatenati. 
&lt;/p&gt;&lt;p&gt;La tabella illustrata di seguito mostra alcuni esempi di device esterni, con quale protocollo e quali API Micro Framework permette di interagire con essi. 
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left: 36pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:181px"/&gt;&lt;col style="width:133px"/&gt;&lt;col style="width:301px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height: 41px; background: #a5644e"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;External device &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;Protocol to communicate &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;API to control &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #f9e0cd"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Bottoni &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;GPIO &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsft.SPOT.Hardware.InterruptPort (o Port family e classi drivate in generale)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #fcf0e8"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Potenziometri/Attuatori &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;GPIO&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;(PWM non e' disponibile al momento) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsft.SPOT.Hardware.InterruptPort (o Port family e classi drivate in generale) &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #f9e0cd"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Accelerometri &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;SPI&lt;/em&gt;&lt;/strong&gt; o &lt;strong&gt;&lt;em&gt;I2C&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;(tipicamente) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsft.SPOT.Hardware.SPI e Microsft.SPOT.Hardware.I2CDevice&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #fcf0e8"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Outputs booleani &lt;br/&gt;(backlight, vibrator) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;GPIO &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsoft.SPOT.hardware.Backlight o Microsoft.SPT.Hardware.OutputPort&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #f9e0cd"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Monochrome LCD &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;SPI&lt;/em&gt;&lt;/strong&gt; o &lt;strong&gt;&lt;em&gt;I2C&lt;/em&gt;&lt;/strong&gt; o driver nativo&lt;br/&gt;(tipicamente) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsft.SPOT.Hardware.SPI e Microsft.SPOT.Hardware.I2Cdevice.  LCD (display) API (LCD_BitBlt e LCD_BitBltEx)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 56px; background: #fcf0e8"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;OEM-specific (heart rate monitor, air pressure sensor, touch screen) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;SPI&lt;/em&gt;&lt;/strong&gt; o &lt;strong&gt;&lt;em&gt;I2C&lt;/em&gt;&lt;/strong&gt; o Seriale&lt;br/&gt;(Tipicamente, Dipende dal device) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsft.SPOT.Hardware.SPI, Microsft.SPOT.Hardware.I2Cdevice e Microsft.SPOT.Hardware.SerialPort&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #f9e0cd"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Battery monitoring &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Battery API &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsft.SPOT.Hardware.Battery e Battery and Charger HAL API&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 95px; background: #fcf0e8"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Flash memory &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;  &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsoft.SPOT.ExtendedWeakReferences &lt;br/&gt;Microsoft.SPOT.Logging (solo per debug) 
&lt;/p&gt;&lt;p&gt;HAL FLASH API&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #f9e0cd"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Bluetooth &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Seriale&lt;/em&gt;&lt;/strong&gt; o &lt;strong&gt;&lt;em&gt;SPI&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;(dipende dal controllore, vedi Promi-SD o BlueCore) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsoft.SPOT.hardware.SerialPort o Microsoft.SPOT.Hardware.SPI&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #fcf0e8"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;802.15.4 &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;SPI&lt;/em&gt;&lt;/strong&gt;
							&lt;br/&gt;(Tipicamente, vedi Ember or Chipcon CC2420) &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Microsoft.SPOT.Hardware.SPI&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #f9e0cd"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;EEPROM memory &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Unsupported Legacy &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;n/a &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 41px; background: #fcf0e8"&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p style="margin-left: 14pt"&gt;Calibrated accurate time &lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;Dell'apposito codice e' provvisto nel porting kit ma deve essere abilitato manualmente&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="middle" style="padding-top: 1px; padding-left: 9px; padding-bottom: 1px; padding-right: 9px; border-top:  none; border-left:  none; border-bottom:  none; border-right:  none"&gt;&lt;p&gt;  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 36pt"&gt;L'esempio di codice illustrato di seguito mostra alcune istruzioni C# molto semplici per intercettare un evento proveniente da bottone (device esterno) collegato al sistema tramite il pin 12 di un bus GPIO. 
&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion3.png" alt=""/&gt;
	&lt;/p&gt;&lt;h1&gt;Tool di sviluppo 
&lt;/h1&gt;&lt;p&gt;Oltre che per le funzioni che implementa, che abbiamo visto essere molto interessanti, Micro Framework si differenzia dalle altre piattaforme per gli strumenti per lo sviluppatore. 
&lt;/p&gt;&lt;p&gt;Installando Visual Studio 2005 e l'SDK Micro Framework lo sviluppatore potrà disporre: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Templates di progetto per la realizzazione di applicazioni 
&lt;/li&gt;&lt;li&gt;Supporto Intellisense 
&lt;/li&gt;&lt;li&gt;Evendi di PostBuild 
&lt;/li&gt;&lt;li&gt;Deployment delle applicazioni ai device (seriale, usb o emulatore) 
&lt;/li&gt;&lt;li&gt;Debugging interattivo dall'IDE, sia verso l'emulatore che verso il dispositivo hardware 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La figura illustrata di seguito mostra una applicazione Micro Framework nell'ambiente di sviluppo Visual Studio 2005 e l'emulatore di default, installato dall'SDK. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion4.png" alt=""/&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion5.png" alt=""/&gt;
	&lt;/p&gt;&lt;h1&gt;Schema architetturale 
&lt;/h1&gt;&lt;p&gt;Il seguente schema illustra una architettura di massima del runtime microframewrok. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion6.png" alt=""/&gt;
	&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Lo strato di basso livello &lt;strong&gt;&lt;em&gt;Hardware Abstraction Layer (HAL) &lt;/em&gt;&lt;/strong&gt;definisce una prima astrazione dell'hardware sottostante. 
&lt;/div&gt;&lt;p&gt;Questo permette di limitare gli sforzi necessari per portare Micro Framework verso nuove piattaforme, che consiste nel riscrivere un numero limitato di API nella HAL. 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Il &lt;strong&gt;&lt;em&gt;Platform Abstraction Layer (PAL)&lt;/em&gt;&lt;/strong&gt; realizza su di essa alcune funzioni di runtime, necessarie per il funzionamento del sistema (timer, funzioni di accesso alla ram ed IO etc). 
&lt;/li&gt;&lt;li&gt;&lt;div&gt;Al livello dello strato CLR sono realizzati: 
&lt;/div&gt;&lt;ul style="margin-left: 54pt"&gt;&lt;li&gt;&lt;div&gt;L'&lt;strong&gt;&lt;em&gt;Execution Engine&lt;/em&gt;&lt;/strong&gt;: il vero motore di esecuzione del codice binario Micro Framework. 
&lt;/div&gt;&lt;p&gt;Il codice MSIL di Micro Framework è eseguito con un approccio di tipo interpretato. 
&lt;/p&gt;&lt;p&gt;Questo permette di minimizzare l'occupazione della memoria della applicazione in quanto, un approccio compilato, richiederebbe almeno di caricare in memoria 2 copie dei binari applicazione (il binario MSIL ed il codoce binario compilato) 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Il &lt;strong&gt;&lt;em&gt;Type System &lt;/em&gt;&lt;/strong&gt;necessario per la esecuzione di applicazioni .Net. 
&lt;/div&gt;&lt;p&gt;Per esempio, Il type system serve per gestire la istanziazione delle classi, la esecuzione dei costruttori e garbace collection ed anche per realizzare le funzioni di reflection. 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Il &lt;strong&gt;&lt;em&gt;Garbage collector &lt;/em&gt;&lt;/strong&gt;che implementa la gestione della memoria. 
&lt;/div&gt;&lt;p&gt;Micro Framework è stata implementata una versione completamente custom del garbage collector che, per massimizzarne l'efficienza in spazio, implementa un algoritmo di tipo &lt;strong&gt;&lt;em&gt;Mark and sweep&lt;/em&gt;&lt;/strong&gt; piuttosto che generazionale, come avviene per le altre implementazioni .Net. 
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;Piattaforme supportate 
&lt;/h1&gt;&lt;p&gt;Micro Framework è disponibile, &lt;strong&gt;&lt;em&gt;come bootable runtime&lt;/em&gt;&lt;/strong&gt;, sulle seguenti piattaforme hardware (Aprile 2007): 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ARM7TDMI @ 27MHz (384K RAM, 1M Flash) 
&lt;/li&gt;&lt;li&gt;ARM7TDMI @ 50MHz (4M RAM, 2M Flash) 
&lt;/li&gt;&lt;li&gt;ARM920T @ 96MHz (4M RAM, 2M Flash) 
&lt;/li&gt;&lt;li&gt;ARM Cortex M3 
&lt;/li&gt;&lt;li&gt;Motorola 68K (implementazioni custom) 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Come &lt;strong&gt;&lt;em&gt;hosted runtime&lt;/em&gt;&lt;/strong&gt;, Micro Framework è disponibile su piattaforme hardware come: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Dual ARM7TDMI @100Mhz (32M RAM, 1G Flash); con sitemi operativi NetOS/ThreadX per CONNECTME e WinCE. 
&lt;/li&gt;&lt;li&gt;Intel x86; con sitemi operativi Windows XP/Vista. 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Il Porting di Micro Framework come bootable runtime può richiedere la riscrittura di 80-100 APIs. 
&lt;/p&gt;&lt;p&gt;Come hosted runtime, il porting si limita alla riscrittura di 20-40 APIs. 
&lt;/p&gt;&lt;h1&gt;Come si sviluppa una applicazione Micro Framework? 
&lt;/h1&gt;&lt;p&gt;Di seguito illustro alcuni partner che vendono sul mercato kit di sviluppo per Micro Framework. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion7.png" alt=""/&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion8.jpg" alt=""/&gt;
	&lt;/p&gt;&lt;p&gt;Un kit di sviluppo come quello illustrato in figura include generalmente una scheda su cui sono montati: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Il processore 
&lt;/li&gt;&lt;li&gt;Micro Framework (es. su memoria rom o flash) 
&lt;/li&gt;&lt;li&gt;Alcune periferiche di base (es. un display LCD). 
&lt;/li&gt;&lt;li&gt;Una porta seriale o USB che permette di collegare la scheda al computer dello sviluppatore, durante la attività di sviluppo. 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Per realizzare una applicazione Micro Framework sarà in generale necessario: 
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Disporre di Visual Studio 2005 e l'SDK di Micro Framework 
&lt;/li&gt;&lt;li&gt;Acquistare un kit di sviluppo come quello illustrato in figura. 
&lt;/li&gt;&lt;li&gt;(Se necessario,) personalizzare l'emulatore per simulare in esso il comportamento delle periferiche del sistema che vogliamo realizzare. 
&lt;/li&gt;&lt;li&gt;Sviluppare la applicazione sull'emulatore. 
&lt;/li&gt;&lt;li&gt;Eseguire test finale sul kit di sviluppo. 
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Le figure illustrate di seguito mostrano una applicazione molto semplice che ho utilizzato per esemplificare la realizzazione un computer di bordo per una automobile. 
&lt;/p&gt;&lt;p&gt;La immagine di destra mostra una versione dell'emulatore in cui ho aggiunto alcuni tasti (i.e. periferiche GPIO) per simulare il trip computer reale. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion9.png" alt=""/&gt;&lt;img src="http://darioawinisp.members.winisp.net/042807_0941_Introduzion10.png" alt=""/&gt;
	&lt;/p&gt;&lt;h1&gt;Maggiori informazioni 
&lt;/h1&gt;&lt;p&gt;Ecco alcuni riferimenti dove ottenere maggiori informazioni sull'utilizzo Micro Framework: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;l'articolo di &lt;a href="http://blogs.ugidotnet.org/raffaele/"&gt;Raffaele Rialdi&lt;/a&gt; "&lt;a href="http://www.microsoft.com/italy/msdn/risorsemsdn/embedded/microframework.mspx"&gt;Introduzione al Micro Framework.NET&lt;/a&gt;" 
&lt;/li&gt;&lt;li&gt;Sito Micro Framework: &lt;a href="http://msdn.microsoft.com/embedded/netmf"&gt;http://msdn.microsoft.com/embedded/netmf&lt;/a&gt;. 
&lt;/li&gt;&lt;li&gt;Sito embedded development: &lt;a href="http://msdn2.microsoft.com/embedded"&gt;http://msdn2.microsoft.com/embedded&lt;/a&gt;. 
&lt;/li&gt;&lt;li&gt;Sito per download &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=32f5df20-6c95-4fe8-a76c-0ed56a839ad2&amp;amp;DisplayLang=en"&gt;Micro Framework SDK Download page&lt;/a&gt;. 
&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.microsoft.com/download/3/1/9/319f7469-70bd-4e7c-a6cc-e5ad96939af4/net_micro_framework_whitepaper_v_1.0.doc"&gt;Micro Framework WhitePaper&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;&lt;a href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032314669&amp;amp;CountryCode=us"&gt;MSDN Webcast: An Introduction to the .NET Micro Framework&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/aldenl/default.aspx"&gt;Alden Linn blog&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?dg=microsoft.public.dotnet.framework.microframework&amp;amp;cat=en_us_C4FAF74A-95F6-CD60-F2E1-ED8EDB03324B&amp;amp;lang=en&amp;amp;cr=us"&gt;Micro Framework newsgroup&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;Tripcomputer sample sul mio blog inglese &lt;a href="http://blogs.msdn.com/darioa/archive/2007/04/25/micro-framework-tripcomputer-sample.aspx"&gt;http://blogs.msdn.com/darioa/archive/2007/04/25/micro-framework-tripcomputer-sample.aspx&lt;/a&gt;. 
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Allego a questo post la presentazione "&lt;strong&gt;&lt;em&gt;Introduzione a Micro Framework&lt;/em&gt;&lt;/strong&gt;" (slides e registrazione) che illustrano alcuni dettagli aggiuntivi su Micro Framework ed i punti importanti della applicazione TripComputerSample. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2310439" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author><category term=".NET Framework" scheme="http://blogs.msdn.com/darioait/archive/tags/.NET+Framework/default.aspx" /><category term="Micro Framework" scheme="http://blogs.msdn.com/darioait/archive/tags/Micro+Framework/default.aspx" /><category term="Compact Framework" scheme="http://blogs.msdn.com/darioait/archive/tags/Compact+Framework/default.aspx" /><category term=".NET Framework 3.x" scheme="http://blogs.msdn.com/darioait/archive/tags/.NET+Framework+3.x/default.aspx" /><category term="Windows CE" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+CE/default.aspx" /><category term="Windows Embedded" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Embedded/default.aspx" /><category term="Windows Mobile" scheme="http://blogs.msdn.com/darioait/archive/tags/Windows+Mobile/default.aspx" /></entry><entry><title>Ink Analysis ed OCR con tecnologia Microsoft</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/01/04/ink-analysis-ed-ocr-con-tecnologia-microsoft.aspx" /><id>http://blogs.msdn.com/darioait/archive/2007/01/04/ink-analysis-ed-ocr-con-tecnologia-microsoft.aspx</id><published>2007-01-04T12:58:59Z</published><updated>2007-01-04T12:58:59Z</updated><content type="html">&lt;p&gt;L'sdk per il Tablet PC include Ink "&lt;a href="http://msdn2.microsoft.com/en-us/library/ms704040.aspx"&gt;Analysis API&lt;/a&gt;" che permette di fare handwriting recognition. 
&lt;/p&gt;&lt;p&gt;L'sdk include molti esempi tra cui lo "&lt;a href="http://msdn2.microsoft.com/en-us/library/ms704913.aspx"&gt;Scanned Paper Form Sample&lt;/a&gt;" che mostra come fare recognition da un foglio di carta compilato a mano. 
&lt;/p&gt;&lt;p&gt;Per il riconoscimento di moduli stampati può essere preferibile utilizzare una Api di OCR. 
&lt;/p&gt;&lt;p&gt;Tale funzione è realizzata da "Microsoft Office Document Imaging" che la espone tramite il "&lt;a href="http://msdn2.microsoft.com/en-us/library/aa203311(office.11).aspx"&gt;Microsoft Office Document Imaging Object Model&lt;/a&gt;". 
&lt;/p&gt;&lt;p&gt;Il riferimento di seguito illustra una procedura basic per eseguire l'OCR di un documento esistente: &lt;a href="http://msdn2.microsoft.com/en-us/library/aa203261(office.11).aspx"&gt;Using the Words Collection&lt;/a&gt;. 
&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1410392" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author></entry><entry><title>Windows Presentation Foundation: come iniziare</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/darioait/archive/2007/01/04/windows-presentation-foundation-come-iniziare.aspx" /><id>http://blogs.msdn.com/darioait/archive/2007/01/04/windows-presentation-foundation-come-iniziare.aspx</id><published>2007-01-04T12:53:56Z</published><updated>2007-01-04T12:53:56Z</updated><content type="html">&lt;p&gt;&lt;span style="color:#1f497d"&gt;Ecco un elenco di risorse utili per iniziare a sviluppare con Windows Presentation Foundation:
&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&amp;amp;DisplayLang=en"&gt;Microsoft® Windows® Software Development Kit for Windows Vista™&lt;/a&gt;&lt;span style="color:#1f497d"&gt;: è la versione + recente dell'SDK per windows Vista e per lo sviluppo con Framework 3. 
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=22b58b6c-8f98-40d0-880d-c3339c5da01e&amp;amp;DisplayLang=en"&gt;Windows SDK .NET Framework 3.0 Samples&lt;/a&gt;&lt;span style="color:#1f497d"&gt;: contiene esempi aggiuntivi sull'utilizzo delle tecnologie legate al framework 3.
&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Questo riferimento include esempi base, esempi specifici di utilizzo di ogni singola funzionalità e dimostrazioni complete sulle potenzialità di WPF.
&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f54f5537-cc86-4bf5-ae44-f5a1e805680d&amp;amp;DisplayLang=en"&gt;Visual Studio 2005 extensions for .NET Framework 3 (Nov CTP)&lt;/a&gt;&lt;span style="color:#1f497d"&gt;: è una preview delle funzioni che saranno aggiunte a visual studio 2005 per supportare lo sviluppo con WPF e WCF. Questo componente può già essere installato ed utilizzato agevolmente e sarà disponibile in versione finale (RTM) a breve.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Per lo sviluppo di interfacce WPF avanzate è possibile usare i nuovi prodotti "&lt;a href="http://www.microsoft.com/products/expression/en/expression-studio/default.mspx"/&gt;&lt;/span&gt;&lt;em&gt;Microsoft Expression Studio&lt;/em&gt;&lt;span style="color:#1f497d"&gt;" di cui:
&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx"&gt;Microsoft® Expression® Design (Dec CTP)&lt;/a&gt;&lt;span style="color:#1f497d"&gt;: supporta lo sviluppo di elementi grafici
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/products/expression/en/expression-blend/default.mspx"&gt;Microsoft Expression Blend (Beta 1)&lt;/a&gt;&lt;span style="color:#1f497d"&gt;: supporta lo sviluppo di "Windows User interfaces".
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1410378" width="1" height="1"&gt;</content><author><name>darioa</name><uri>http://blogs.msdn.com/members/darioa.aspx</uri></author></entry></feed>