<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Community Wall</title>
    <link>http://www.xedotnet.org/74/section.aspx</link>
    <description>Community Wall</description>
    <language>it-IT</language>
    <pubDate>Sun, 15 Nov 2009 07:34:44 GMT</pubDate>
    <lastBuildDate>Sun, 15 Nov 2009 07:34:44 GMT</lastBuildDate>
    <generator>Cuyahoga Website Framework</generator>
    <ttl>60</ttl>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/xedotnetwall" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>GDI &amp;ndash; Leak &amp;ndash; WinCE &amp;ndash; C#</title>
      <link>http://www.xedotnet.org/74/section.aspx/321</link>
      <description>&lt;p&gt;Suona strano avere dei memory leak in codice gestito ma sono molto più frequenti di quello che si possa pensare. Alcune settimane fà ho tenuto una sessione di code review presso un mio cliente e ho speso alcuni giorni a sistemare diversi memory leak su una programma scritto in C# per Windows CE.&lt;/p&gt; &lt;p&gt;Quello che bisogna tenere a mente che tutti gli oggetti GDI (Bitmap, Font, Brush, Pen, ecc.) di C# in realtà sono dei wrapper sopra oggetti Win32. Tali oggetti sono referenziati tramite Handle e &lt;u&gt;devono essere rilasciati.&lt;/u&gt; Il GC non lo fà per voi in modo automatico perchè semplicemente non li può gestire. Sopratutto nelle applicazioni mobile, in cui le risorse sono limitate, bisogna porre particolare attenzione a questo.&lt;/p&gt; &lt;p&gt;Durante la sessione di debug ho utilizzato questo tool (&lt;a href="http://www.nirsoft.net/utils/gdi_handles.html"&gt;GDIView&lt;/a&gt;) che mi ha aiutato a verificare quali handle non venivano rilasciati. &lt;/p&gt; &lt;p&gt;Alcuni consigli pratici:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Richiamare sempre il Dispose di tutti gli oggetti grafici utilizzati, meglio ancora usare sempre la keword “using” per richiamare sempre in modo implicito il Dispose, esempio: &lt;/li&gt;&lt;/ul&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; SolidBrush fillBrush = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SolidBrush(Color.White);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; graphImage.FillRectangle(fillBrush, 0, 0, UI_CLIENT_WIDTH, UI_HEIGHT);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; fillBrush.Dispose();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;// or&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt;(SolidBrush fillBrush = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SolidBrush(Color.White))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     graphImage.FillRectangle(fillBrush, 0, 0, UI_CLIENT_WIDTH, UI_HEIGHT);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quando si riassegna una Bitmap assicurarsi che l’oggetto precedente sia deallocato, esempio: &lt;/li&gt;&lt;/ul&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// wrong&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; picCapture.Image = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Bitmap(32, 32);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;// good&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(picCapture.Image != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     picCapture.Image.Dispose();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; picCapture.Image = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Bitmap(32, 32);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quando si utilizza una Image contenuta in una ImageList è bene ricordare quanto esposto su MSDN: “&lt;u&gt;The returned bitmap is a copy of the original image and should be disposed of using the Image.Dispose method.&lt;/u&gt;”. In altre parole tutte le get da una ImageList clonano una nuova immagine che deve essere rilasciata tramite un Dispose! 
&lt;li&gt;Quando si utilizzano direttamente le funzioni native Win32 porre attenzione se queste ritornano una nuova istanza di una risorsa in memoria. Leggere attentamente la loro documentazione! 
&lt;li&gt;Ogni volta che si alloca memoria tramite funzioni native Win32 è &lt;u&gt;vostra responsabilità deallocarla.&lt;/u&gt; 
&lt;li&gt;Quando si crea un nuovo oggetto non gestito, salvare il riferimento (handle) in una variabile non accessibile dall’esterno. Se per qualsiasi motivo il riferimento viene sovrascritto non sarà più possibile deallocare correttamente la risorsa non gestita. &lt;/li&gt;&lt;/ul&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Wed, 04 Mar 2009 17:12:16 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Il vero programmatore &amp;hellip;affronta tutte le sfide</title>
      <link>http://www.xedotnet.org/74/section.aspx/320</link>
      <description>&lt;p&gt;&lt;a title="Defy All Challenges/" href="http://promotion.html.it/microsoft/defyallchallenges/" target="_blank"&gt;&lt;img title="SilverlightGame" style="display: inline; margin: 5px 0px 0px 10px" height="142" alt="SilverlightGame" src="http://blog.html.it/wp-content/edit.html.it_uploads/2009/02/defyallchallenges.png" width="240" align="right"&gt;&lt;/a&gt;"&lt;em&gt;&lt;font color="#808080"&gt;Il vero programmatore …affronta tutte le sfide&lt;/font&gt;&lt;/em&gt;" è questo il titolo di &lt;a title="Il vero programmatore &amp;hellip;affronta tutte le sfide" href="http://blog.html.it/16/02/2009/il-vero-programmatore-affronta-tutte-le-sfide/" target="_blank"&gt;un post&lt;/a&gt; su HTML.it che presenta un gioco (architettato da &lt;a title="Microsoft" href="http://www.microsoft.it" target="_blank"&gt;Microsoft&lt;/a&gt; e &lt;a title="HTML.it" href="http://www.html.it" target="_blank"&gt;HTML.it&lt;/a&gt;) e interamente sviluppato in &lt;a title="Silverlight" href="http://silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt; dove si ha la possibilità di vincere uno &lt;strong&gt;sconto del 40% su Visual Studio 2008 Professional con MSDN Premium.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Per giocare il link è il seguente: &lt;a title="Defy All Challanges" href="http://promotion.html.it/microsoft/defyallchallenges/" target="_blank"&gt;Defy All Challanges&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Il gioco vi permette di muovervi in questo ambiente alla ricerca di oggetti che vi permettarrno di avvicinarvi alla vicinta, ma per guadagnarveli dovrete rispondere a domande riguardanti Visual Studio e non solo. &lt;/p&gt; &lt;p&gt;Questo, oltre ad essere un gioco e un'oppurtunità per ricevere uno splendido premio, è un'ulteriore dimostrazioni delle possibilità che &lt;a title="Silverlight" href="http://silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt; offre.&lt;/p&gt;</description>
      <dc:creator>Andrea Dottor</dc:creator>
      <pubDate>Mon, 16 Feb 2009 11:20:18 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>System Meter Chart &amp;ndash; .Net Micro Framework</title>
      <link>http://www.xedotnet.org/74/section.aspx/319</link>
      <description>&lt;p&gt;Finalmente in questi giorni di “festa” sono riuscito a trovare qualche ora di calma da famiglia, figlie, clienti, rogne, ecc. per effettuare il porting del controllo &lt;a href="http://www.ugimobile.org/blogs/mircovanini/archive/2008/11/07/system-meter-chart-pda.aspx"&gt;System Meter Chart&lt;/a&gt; da .NET Compact Framework (CF) a .NET Micro Framework (MF). Questa è stata una buona occasione per “toccare con mano” le diversità tra i due ambienti per quello che riguarda la progettazione di user control. Il .NET MF supporta una versione ridotta (molto) di WPF e la gestione / progettazione dei controlli ovviamente è diversa tra i due ambienti. Nel caso specifico (.NET MF) ho implementato un Control (UIElement) che si espone come oggetto WPF.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img src="http://5ataga.bay.livefilestore.com/y1prGyAmHd_BXBXlIAHRPj2VMqFKqXh2scMFl4RlcAV1htDguV-mg0GgDlwR-l1BTUskq3UY3-ptjZ5d8qzU38hrQ/class.png"&gt; &lt;/p&gt; &lt;p&gt;Nelle applicazioni MF con presentation esistono due thread, il primo creato del programma per la gestione degli I/O, periferiche, ecc. mentre il secondo è creato ed utilizzato internamente dal CLR per le varie operazioni di UI (ridisegno degli elementi di UI come i controlli, le finestre, ecc.). Questo secondo thread è chiamato anche Dispatcher e il suo scopo è quello di accedere in modo “sicuro” ai vari elementi della UI. Per maggiori informazioni vi consiglio di leggere &lt;a href="http://blogs.msdn.com/netmfteam/archive/2008/03/04/using-the-dispatcher.aspx"&gt;'Using the Dispatcher’&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;L’esempio di utilizzo del controllo usa un timer per l’assegnazione di valori random da 0 a 100. Essendo il timer asincrono rispetto all’interfaccia utente, per le operazioni di invalidate interne del controllo, è necessario chiamare BeginInvoke&amp;nbsp; per far si che il controllo grafico sia acceduto dal thread principale. La scelta di BeginInvoke è preferibile rispetto a Invoke così da poter liberare il thread del timer al più presto senza attendere il termine dell’esecuzione del gestore dell’evento. &lt;/p&gt; &lt;p&gt;L’esempio utilizza i 5 tasti presenti nell’emulatore del .NET MF, in dettaglio:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Tasto Up abilita la visualizzazione in “Stick Mode”  &lt;li&gt;Tasto Down abilita la visualizzazione in “Line Mode”  &lt;li&gt;Tasto Left abilita la visualizzazione in “NoGrid”  &lt;li&gt;Tasto Right abilita la visualizzazione in “Grid”  &lt;li&gt;Tasto Select abilita / disablita la visualizzazione del Gradient &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Di seguito riporto alcune immagini delle modalità supportate dal controllo&lt;/p&gt; &lt;p&gt;&lt;img height="270" src="http://5ataga.bay.livefilestore.com/y1pvEsgywgD3TTzctK8U7XpV39Zy5xr2NN4NkVELp4fVmjidWAZxGev6PzqVdPz0xSTzxZKYnB2sDQ/view1.png" width="336"&gt; &lt;/p&gt; &lt;p&gt;&lt;img src="http://5ataga.bay.livefilestore.com/y1pZIYVUt7dEb-qNUS-7qv94xIg5apvsOkPXLmybvngOtZmT7_xbmEwEv5HjP84JElzP16KnKOwEC0/view2.png"&gt; &lt;/p&gt; &lt;p&gt;&lt;img src="http://5ataga.bay.livefilestore.com/y1p0GPymen4XEQExoNW4pUsPT7pfo7tpuVnbjTUbwbVK6_2NTexTvdkL0DtdIDMisnVbTfdJkhGo-Q/view3.png"&gt; &lt;/p&gt; &lt;p&gt;&lt;img src="http://5ataga.bay.livefilestore.com/y1p0kDGj9QZKP6IU-xb4ZEB8w6A6IyisW5-x_HuPGXbRLxfrYaKZzj7fMobAnwmWZ0BiudqkdVSe8E/view4.png"&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Non nego che sono sempre più entusiasta del MF, penso solo a quanto codice avrei dovuto scrivere per realizzare lo stesso controllo su un’altra tipo di scheda non MF magari con un compilatore C++ proprietario. Seconda osservazione, la portabilità del codice da una piattaforma MF all’altra, infatti nell’esempio non ho utilizzato nulla di proprietario della mia scheda &lt;a href="http://www.ghielectronics.com/details.php?id=107&amp;amp;sid=114"&gt;GHI&lt;/a&gt; ma solo chimate “standard” del MF 3.0. Come ultimo punto vorrei rimarcare l’integrazione del MF con Visual Studio,&amp;nbsp; si riesce a sviluppare ed eseguire il debugging dell’applicazione sia con l’emulatore che direttamente sulla scheda collegata via USB. Questo permette l’analisi sotto debugger di scenari che difficilmente sarebbero ripetibili tramite un emulatore e con una serie di comodità come solo i progammatori di Visual Studio sono abituati.&amp;nbsp; Ovviamente le schede che supportano MF non sono schede su cui la battaglia si gioca sui centesimi ma quello che da a disposizione MF ripaga anche il relativo costo. &lt;/p&gt; &lt;p&gt;In questo &lt;a href="http://cid-afd1bdc9b805cf1c.skydrive.live.com/self.aspx/BlogFiles/SystemMeterChartMF/SystemMeterChartMF.zip"&gt;link&lt;/a&gt; potete scaricare lo zip dei sorgenti del programma di esempio.&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Sat, 03 Jan 2009 17:16:32 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>DLL - Import</title>
      <link>http://www.xedotnet.org/74/section.aspx/318</link>
      <description>&lt;p&gt;Se dovete collegare codice nativo e/o Win32 API a C# / VB.NET consiglio vivamente questo &lt;a href="http://www.pinvoke.net/"&gt;sito&lt;/a&gt;.&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Sat, 06 Dec 2008 15:13:52 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Community Meeting - .NET Compact Framework</title>
      <link>http://www.xedotnet.org/74/section.aspx/317</link>
      <description>&lt;p&gt;Volevo ringraziare tutti i partecipanti, &lt;a href="http://www.xedotnet.org"&gt;Xe.Net&lt;/a&gt; ed &lt;a href="http://www.1nn0va.net/"&gt;1nn0va&lt;/a&gt; per l'opportunità che mi hanno concesso. A breve metterò in linea il materiale del meeting. &lt;/p&gt; &lt;p&gt;Come sempre un ringraziamento "speciale" ad &lt;a href="http://blog.boschin.it/Default.aspx"&gt;Andrea Boschin&lt;/a&gt; per il supporto materiale e morale.&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Sat, 06 Dec 2008 15:07:22 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>ActiveSync - GuestOnly</title>
      <link>http://www.xedotnet.org/74/section.aspx/316</link>
      <description>&lt;p&gt;Chi collega e scollega device tutto il giorno al proprio PC, si sarà chiesto se vi è la possibilità di disattivare la richiesta di creazione relazione da parte di ActiveSync. Sicuramente l'impostazione di relazione va bene per sincronizzare mail, appuntamenti, ecc. ma non sicuramente per le sessioni di debug.&lt;/p&gt; &lt;p&gt;Ecco allora la chiave del registry da modificare:&lt;/p&gt; &lt;p&gt;[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows CE Services]&lt;br&gt;"GuestOnly"=dword:1  &lt;p&gt;Ovviamente per ripristinare la richiesta di relazione basta impostare "GuestOnly a 0 (zero) &lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Sat, 06 Dec 2008 15:06:33 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>System Meter Chart PDA</title>
      <link>http://www.xedotnet.org/74/section.aspx/315</link>
      <description>&lt;p&gt;Durante lo sviluppo di un progetto mi sono imbattuto nella necessità di realizzare un controllo per PDA che rapresentasse l'andamento di un valore nel tempo. Come "fonte di ispirazione" ho utilizzato la visualizzazione della "cronologia utilizzo CPU" del task manager. &lt;/p&gt; &lt;p&gt;Dopo un pò di lavoro sono riuscito a "confezionare" un controllo che ne mima il comportamento. Ho esteso un pò il grafico prodotto permettendo la gestione dello stesso sia tramite line che stick. &lt;/p&gt; &lt;p&gt;Il controllo utilizza un sistema di&amp;nbsp; "Double Buffering" con una bitmap offline in cui viene effettivamente disegnato il grafico. Questo ovviamente per evitare il flickering che inevitabilmente sarebbe comparso. &lt;/p&gt; &lt;p&gt;Tutto questo perchè su .Net CF i controls non supportano il double buffer nativamente, per esempio in .Net è possibile attivarlo tramite il seguente codice:&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; EnableDoubleBuffering()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;    &lt;span style="color: #008000"&gt;// Set the value of the double-buffering style bits to true.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.SetStyle(ControlStyles.DoubleBuffer | &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;                  ControlStyles.UserPaint | &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;                  ControlStyles.AllPaintingInWmPaint,&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;                  &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.UpdateStyles();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Di seguito riporto un print screen del programma demo e il link in cui trovare il medesimo.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://edi8jg.bay.livefilestore.com/y1pTihNk2DSh8A8b4l5WsskF-fQbaSg8beMAqC9KkEEd-RSVCZvbMfLmss2DgP1xk7RR_tD5zak-Oo/SystemMeterChartPDA.png"&gt;&lt;img src="http://edi8jg.bay.livefilestore.com/y1pTihNk2DSh8A8b4l5WsskF-fQbaSg8beMAqC9KkEEd-RSVCZvbMfLmss2DgP1xk7RR_tD5zak-Oo/SystemMeterChartPDA.png"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-afd1bdc9b805cf1c.skydrive.live.com/self.aspx/BlogFiles/SystemMeterChartPDA.zip"&gt;Sorgenti Progetto di esempio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Buone "misurazioni" a tutti :)&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Fri, 07 Nov 2008 16:59:01 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>.NET Micro Framework V3.0 RC0 !</title>
      <link>http://www.xedotnet.org/74/section.aspx/312</link>
      <description>&lt;p&gt;Il team di .Net Micro Framework ha annunciato la disponibilità della RC0 del nuovo SDK 3.0 scaricabile da &lt;a href="http://connect.microsoft.com/netmf"&gt;Connect&lt;/a&gt;, di seguito riporto le novità saliente presenti nella RC0:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Supporto per VS 2008 SP1  &lt;li&gt;Supporto per Visual C# Express edition!!!  &lt;li&gt;File System (anche su emulatore!)  &lt;li&gt;Miglioramenti significativi per quanto riguarda DPWS  &lt;li&gt;Supporto per il WiFi (hw permettendo)  &lt;li&gt;Ottimizzazione delle performance  &lt;li&gt;Nuovi esempi e documentazione aggiornata&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Forse è la volta buona che butto via la mia Virtual Machine con VS2005 :)&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Tue, 07 Oct 2008 08:23:18 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>AddHeader - ISAPI</title>
      <link>http://www.xedotnet.org/74/section.aspx/310</link>
      <description>&lt;p&gt;Durante lo sviluppo di una ISAPI filter mi è capitata la necessità di creare una variabile server IIS durante la gestione della notifica SF_NOTIFY_AUTHENTICATION.  &lt;p&gt;Peccato che in questa notifica il parametro pvNotification passato da IIS sia di tipo PHTTP_FILTER_AUTHENT e non vi sia il modo di recuperare la struttura di tipo PHTTP_FILTER_PREPROC_HEADERS che contiene il metodo AddHeader.  &lt;p&gt;Dopo un po' di tentativi ho percorso questa strada:  &lt;p&gt;&amp;nbsp; &lt;p&gt;1. Definisco i seguenti typedef e define&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;#define&lt;/span&gt; MYISAPI_HEADER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #006080"&gt;"MYISAPI-HEADER:"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;#define&lt;/span&gt; HTTP_MYISAPI_HEADER    &lt;span style="color: #006080"&gt;"HTTP_MYISAPI_HEADER"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; typedef BOOL (WINAPI * PAddHeader) &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;               (&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;struct&lt;/span&gt; _HTTP_FILTER_CONTEXT * pfc,&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;                 LPSTR                         lpszName,&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;                 LPSTR                         lpszValue&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;               );&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;2. Nella notifica SF_NOTIFY_PREPROC_HEADERS creo una variabile server che contiene l'indirizzo del metodo AddHeader come nel codice seguente&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; TCHAR szTmp[256];&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; sprintf_s(szTmp, &lt;span style="color: #0000ff"&gt;sizeof&lt;/span&gt;(szTmp), &lt;span style="color: #006080"&gt;"%08lx"&lt;/span&gt;, ((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)-&amp;gt;AddHeader);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)-&amp;gt;HttpStatus == 0)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     TCHAR szValue[256];&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     DWORD dwValue = &lt;span style="color: #0000ff"&gt;sizeof&lt;/span&gt;(szValue);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     *szValue = 0;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     ((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)-&amp;gt;GetHeader(pfc, MYISAPI_HEADER, szValue, &amp;amp;dwValue);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(*szValue == 0)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         ((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)-&amp;gt;AddHeader(pfc, MYISAPI_HEADER, szTmp);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;(SF_STATUS_REQ_NEXT_NOTIFICATION);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;3. Nella notifica SF_NOTIFY_AUTHENTICATION utilizzo la variabile server creata precedentemente nella notifica SF_NOTIFY_PREPROC_HEADERS, eseguo il cast su il pointer a funzione definito nel typedef e la richiamo per impostare una nuova variabile server&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; TCHAR szValue[256];&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; DWORD dwValue = &lt;span style="color: #0000ff"&gt;sizeof&lt;/span&gt;(szValue);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; *szValue = 0;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; pfc-&amp;gt;GetServerVariable(pfc, HTTP_MYISAPI_HEADER, szValue, &amp;amp;dwValue);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(*szValue != 0)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         PAddHeader pHeader = (PAddHeader)strtoul(szTmp, NULL, 16);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(pHeader)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;            (pHeader)(pfc, MYISAPI_USER_ID_LDAP, W2A(pszUidLdap));    &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;(CException *e)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;         DumpException(e)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         e-&amp;gt;Delete();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Funziona :)&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Sat, 27 Sep 2008 10:39:11 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Expert .Net Micro Framework</title>
      <link>http://www.xedotnet.org/74/section.aspx/309</link>
      <description>&lt;p&gt;Dopo aver acquistato il kit di sviluppo &lt;a href="http://www.ghielectronics.com/details.php?id=107"&gt;GHI Electronics - Embedded Master Development System&lt;/a&gt; ho pensato bene di acquistare un libro dedicato al .NET Micro Framework. Devo dire che sul mercato non c'è tantissimo e alla fine ho deciso di acquistare il libro di &lt;a href="http://bloggingabout.net/blogs/jens/default.aspx"&gt;Jens Kühner&lt;/a&gt; - &lt;a href="http://www.apress.com/book/view/159059973x"&gt;Expert .Net Micro Framework&lt;/a&gt;. Devo dire la verità, sin dall'inizio mi è piaciuto. &lt;/p&gt; &lt;p&gt;Essendo un amante dei libri cartacei ricevere un libro con copertina rigida, rilegato in modo che non si sfaldi dopo le seconda lettura e stampato su della carta di qualità discreta fa solo che piacere. Oltre all'impressione "estetica" e "fisica" devo dire che è un buon libro, strutturato bene, che prende per mano il lettore e lo porta ad esaminare le varie parti del .Net Micro FW. &lt;/p&gt; &lt;p&gt;Si parte dalla genesi del Micro FW, ne descrive le varie parti costituenti e fà una rapida carellata sui kit di sviluppo attualmente disponibili. Questa è solo l'introduzione del libro, poi si passa alla "sostanza". Descrive in modo accurato la gestione delle varie porte hardware, il threading disponibile, la crittografia, la comunicazione via socket, per poi arrivare al DPWS (Device Profile for Web Service). Devo dire che forse è il capitolo che mi ha entusiasmato di più, anche se per poterlo utilizzare si deve scrivere un bel pò di codice.&lt;/p&gt; &lt;p&gt;Si arriva poi alla gestione della localizzazione e sopratutto alla parte di gestione grafica e di user interface. Anche questo capito è degno di nota sopratutto per i semplici ma efficaci esempi riportati.&lt;/p&gt; &lt;p&gt;Ultima parte ma non per questo meno importante è la gestione dell'emulazione hardware e dei relativi componenti. Ben scritta e documentata sopratutto negli esempi di implementazione di componenti per l'emulazione hardware.&lt;/p&gt; &lt;p&gt;Che dire ? Sicuramente è un libro ben fatto ed indispensabile per chi vuole partire ed approffondire lo sviluppo con .Net Micro FW. &lt;/p&gt; &lt;p&gt;Buona lettura a tutti &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:388374ba-fd13-47f6-9a15-e0698d169fd4" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tag: &lt;a href="http://technorati.com/tags/book" rel="tag"&gt;book&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.Net%20Micro%20FW" rel="tag"&gt;.Net Micro FW&lt;/a&gt;&lt;/div&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Sun, 14 Sep 2008 08:49:19 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Embedded Master Development System</title>
      <link>http://www.xedotnet.org/74/section.aspx/308</link>
      <description>&lt;p&gt;Finalmente è arrivata!&lt;/p&gt; &lt;p&gt;Alla fine mi sono deciso a comprarla (&lt;a href="http://www.ghielectronics.com/details.php?id=107"&gt;GHI Electronics - Embedded Master Development System&lt;/a&gt;), l'ho aperta da qualche giorno e devo dire che il rapporto qualità prezzo mi ha soddisfatto. La confezione si presenta scarna ma il "contenuto" è sicuramente all'altezza delle aspettative. &lt;/p&gt; &lt;p&gt;Dopo l'installazione del .NET Micro Framework ho ovviamente installato EmbeddedMasterSDK della scheda, non presente nella confezione ma scaricato dal sito. Il setup è andato al primo colpo senza intoppi e/o sorprese. La documentazione e gli esempi forniti nel SDK sono sufficientemente completi, anche se come al solito la documentazione non è mai abbastanza :)&lt;/p&gt; &lt;p&gt;Dopo un pò di prove con il .NET Micro Framework Deployment Tool sono riuscito a stabilire la connessione tra il PC e la scheda. L'unico intoppo l'ho trovato nell'installazione del Virtual Com Port Drive per la parte di debug, dopo vari tentati di collegamento andati a vuoto ho scoperto che dovevo cambiare il tempo di latenza (da 16 msec a 1 msec) nell'impostazioni della USB Serial Port.&lt;/p&gt; &lt;p&gt;Ho scaricato poi le varie patch sia del TinyBooter e del TinyCLR dal sito del costruttore della scheda e le ho installate senza grossi problemi. Gli steps per l'upgrade sono spiegati in dettaglio nella documentazione del SDK.&lt;/p&gt; &lt;p&gt;Ho poi caricati gli esempi forniti con SDK, compilati, distribuiti e debbugati direttamente sulla scheda. Anche l'emulatore fornito con SDK non è malaccio, tanta scena ma manca tutta la gestione degli I/O della scheda. Sarebbe stato comodo avere un sistema di emulazione degli I/O senza andare per forza su HW&lt;/p&gt; &lt;p&gt;Bene, adesso sono finalmente pronto a scrivere il mio primo programma su .NET Micro FW.&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Thu, 31 Jul 2008 07:07:26 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Premio STAGE.IT di Confindustria Padova</title>
      <link>http://www.xedotnet.org/74/section.aspx/301</link>
      <description>&lt;p&gt;Riporto anche in questa sede una notizia pubblicata in questo post&lt;br&gt;&lt;a title="http://dudevsit.blogspot.com/2008/03/vincitori-premio-stageit-di.html" href="http://dudevsit.blogspot.com/2008/03/vincitori-premio-stageit-di.html"&gt;http://dudevsit.blogspot.com/2008/03/vincitori-premio-stageit-di.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Ieri, 13 Marzo 2008, BEDIN Shop Systems srl e lo studente Eric Miotto sono stati premiati dall'ICT Lab di Confindustria Padova per lo stage a maggiore contenuto di innovazione realizzato nell'anno 2007, nel corso della 3a edizione del premio regionale STAGE.IT.&lt;/p&gt; &lt;p&gt;Il progetto vincitore del premio ha sfruttato il web service Amazon.com Simple Queue Service mediante Microsoft .Net Windows Communication Foundation (WCF). Trovate maggiori dettagli seguendo il &lt;a href="http://dudevsit.blogspot.com/2008/03/vincitori-premio-stageit-di.html"&gt;link al post originale&lt;/a&gt;.&lt;/p&gt;</description>
      <dc:creator>Davide Bedin</dc:creator>
      <pubDate>Fri, 14 Mar 2008 13:23:34 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>VS2008: Errore connessione a un dispositivo Windows CE senza ActiveSync</title>
      <link>http://www.xedotnet.org/74/section.aspx/291</link>
      <description>&lt;p&gt;Chi sviluppa su device Windows CE avrà sicuramente letto ed utilizzato la procedura per stabilire una connessione verso un dispositivo Windows CE senza ActiveSync riportata nel seguente articolo &lt;a href="http://msdn2.microsoft.com/it-it/library/ms228708(VS.80).aspx"&gt;(Procedura stabilire una connessione a un dispositivo Windows CE senza ActiveSync)&lt;/a&gt;. Niente da dire, anzi se non che dopo l'installazione di VS 2008 sullo stesso PC in cui è installato VS 2005 ogni tentativo di stabile una connessione verso il device riporta i seguenti errori:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;em&gt;&lt;strong&gt;VS 2005&lt;/strong&gt;&lt;/em&gt; &lt;/em&gt;Connection failed:0x8973151A&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;VS 2008&lt;/strong&gt; &lt;/em&gt;Connection failed: The version of Comman client running on the device is incompatible with the desktop. Boostrap the device with desktop compatible device binaries and try connectiong again.&lt;/p&gt; &lt;p&gt;Dopo alcuni tentativi e ricerche infruttuose su internet ho trovato il bandolo della matassa. La parte inerente il device emulator di VS 2008 non è installabile side by side, in altre parole la versione di VS 2005 viene sovrascritta da quella di VS 2008.&lt;/p&gt; &lt;p&gt;Per ovviare il problema basta copiare nel dispositivo i files aggiornati da VS 2008 contenuti nel percorso.&lt;/p&gt; &lt;p&gt;C: \Programmi\File comuni\Microsoft Shared\CoreCon\1.0\Target\wce400\&amp;lt;CPU&amp;gt;&lt;/p&gt;</description>
      <dc:creator>Mirco Vanini</dc:creator>
      <pubDate>Fri, 07 Dec 2007 17:03:19 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Rilasciata la versione 1.2 stabile di NHibernate</title>
      <link>http://www.xedotnet.org/74/section.aspx/277</link>
      <description>&lt;blockquote&gt; &lt;h3&gt;&lt;em&gt;03.05.2007&lt;/em&gt; - NHibernate 1.2.0.GA released!&lt;/h3&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;NHibernate 1.2 is now stable! The new production version has many improvements and features requested by our users in practically every functional area. &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=73818&amp;amp;package_id=73969" _base_href="http://www.hibernate.org/"&gt;&lt;font color="#0000ff"&gt;Download&lt;/font&gt;&lt;/a&gt; the release from Sourceforge and see the &lt;a href="http://sourceforge.net/project/shownotes.php?release_id=505581&amp;amp;group_id=73818" _base_href="http://www.hibernate.org/"&gt;&lt;font color="#0000ff"&gt;change log&lt;/font&gt;&lt;/a&gt; for details.&lt;/p&gt;&lt;/blockquote&gt;</description>
      <dc:creator>Moris Bozzetto</dc:creator>
      <pubDate>Thu, 03 May 2007 14:38:55 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Cuyahoga/NHibernate in medium trust support</title>
      <link>http://www.xedotnet.org/74/section.aspx/273</link>
      <description>&lt;p&gt;I siti che state sviluppando funzionano perfettamente in locale e dopo un deploy danno eccezioni&amp;nbsp;di sicurezza dopo il deploy? &lt;/p&gt; &lt;p&gt;Molti hoster stanno adottando le &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9e33ea25-666c-47fa-ac52-8d04785c4bd2&amp;amp;displaylang=en"&gt;guidelines&lt;/a&gt; di Microsoft per l'hosting di applicazioni asp.net 2.0, portando il trust a livello di esecuzione a medium. &lt;/p&gt; &lt;p&gt;Il Medium trust&amp;nbsp;è utile per eseguire più applicazioni in maniera isolata e, utilizzando il code access security, molte funzionalità del framework vanno abilitare esplicitamente nel .config creando specifici trust.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.Nhibernate.org"&gt;Nhibernate&lt;/a&gt;, alla base di &lt;a href="http://www.cuyahoga-project.org/"&gt;Cuyhahoga&lt;/a&gt;, "soffre" di questo limite. Dalla versione 1.2 il problema è stato risolto. Il responsabile è log4net che "potenzialmente" scrive files di log su file system.&lt;/p&gt; &lt;p&gt;Riferimenti:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Medium Trust level support&lt;/strong&gt;&lt;br&gt;&lt;a href="http://jira.nhibernate.org/browse/NH-442"&gt;http://jira.nhibernate.org/browse/NH-442&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Hibernate Forums Index -&amp;gt; NHibernate Users Topic: Security exception when creating Configuration instance&lt;/strong&gt;&lt;br&gt;&lt;a href="http://forum.hibernate.org/viewtopic.php?t=951781"&gt;http://forum.hibernate.org/viewtopic.php?t=951781&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;MSDN TV: Working with Medium Trust in ASP.NET&lt;/strong&gt;&lt;br&gt;&lt;a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20050317aspnetss/manifest.xml"&gt;http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20050317aspnetss/manifest.xml&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;How To: Use Medium Trust in ASP.NET 2.0&lt;br&gt;&lt;/strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998341.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms998341.aspx&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;ASP.NET 2.0 Hosting Deployment Guide&lt;/strong&gt;&lt;br&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9e33ea25-666c-47fa-ac52-8d04785c4bd2&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=9e33ea25-666c-47fa-ac52-8d04785c4bd2&amp;amp;displaylang=en&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;Security Guidelines for ASP.NET 2.0.&lt;br&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/PAGGuidelines0001.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/PAGGuidelines0001.asp&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;ASP.NET 2.0, AllowPartiallyTrustedCallers ed il medium trust&lt;/strong&gt;&lt;br&gt;http://blogs.aspitalia.com/daniele/post1667/ASP.NET-2.0-AllowPartiallyTrustedCallers-Medium-Trust.aspx  </description>
      <dc:creator>Marco Trova</dc:creator>
      <pubDate>Mon, 05 Mar 2007 08:43:54 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Rilasciato Cuyahoga 1.5.0</title>
      <link>http://www.xedotnet.org/74/section.aspx/268</link>
      <description>&lt;p&gt;&lt;strong&gt;&lt;font face="Georgia" color="#114411"&gt;Cuyahoga è un framework open source scritto in C# per la creazione di siti web, basato su NHibernate. &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Con la &lt;a href="http://www.cuyahoga-project.org/10/section.aspx/64"&gt;versione 1.5.0&lt;/a&gt; finalmente c'è il supporto ufficiale a .net 2.0.&amp;nbsp;&lt;/p&gt; &lt;p&gt;E' una versione intermedia che include il supporto al Castle IoC container per rendere cuyahoga estensibile e flessibile.&lt;/p&gt; &lt;p&gt;Io uso Cuyhaoga da un paio d'anni, perchè è semplice, efficente e completo (non ho bisogno di migliaia di moduli alla &lt;a href="http://www.dotnetnuke.com/"&gt;DNN&lt;/a&gt;, visto che devo svilupparli per i progetti &lt;img alt="smile_wink" src="http://spaces.live.com/rte/emoticons/smile_wink.gif"&gt;).&lt;/p&gt;</description>
      <dc:creator>Marco Trova</dc:creator>
      <pubDate>Wed, 14 Feb 2007 11:06:43 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Gemellaggio UgiDotNet - XeDotNet: Errata corrige</title>
      <link>http://www.xedotnet.org/74/section.aspx/260</link>
      <description>&lt;p&gt;Come sempre la sfiga ci mette lo zampino. Stamane prenotando il ristorante abbiamo scoperto che è chiuso per ferie fino a Sabato 27. Perciò su consiglio di Emanuele del Bono abbiamo deciso di optare per il ristorante "La Passeggiata", Via Don Tazzoli 2, Castellaro Lagusello. &lt;/p&gt; &lt;p&gt;L'appuntamento perciò rimane invariato: Uscita autostradale di Sirmione, ore 20:30. Al ristorante ci attendono "in preda al panico" per le 20:45. Menù di tutto rispetto!&lt;/p&gt; &lt;p&gt;Attualmente abbiamo prenotato per 20 persone. Chi si vuole aggregare all'ultimo minuto deve solo dirlo.&lt;/p&gt; &lt;p&gt;Link: &lt;a title="Gemellaggio UgiDotNet - XeDotNet: Errata corrige" href="http://blog.boschin.it/archive/2007/01/23/4729.aspx"&gt;Gemellaggio UgiDotNet - XeDotNet: Errata corrige&lt;/a&gt;&lt;/p&gt;</description>
      <dc:creator>Andrea Boschin</dc:creator>
      <pubDate>Tue, 23 Jan 2007 14:55:18 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Regalo voucher per esame di certificazione Microsoft [...reprise]</title>
      <link>http://www.xedotnet.org/74/section.aspx/257</link>
      <description>&lt;p&gt;Luca Del Tongo, che aveva per primo commentato il mio &lt;a href="http://www.xedotnet.org/74/section.aspx/256"&gt;post precedente&lt;/a&gt;&amp;nbsp;aggiudicandosi il voucher, mi ha comunicato poco fa di essere diventato un MSP Microsoft Student Partner e che, in quanto tale, ha diritto di sostenere gli esami di certificazione gratuitamente.&lt;/p&gt; &lt;p&gt;Quindi... rigiro l'offerta alla community! Fatevi sotto!&lt;/p&gt;</description>
      <dc:creator>Lorenzo Melato</dc:creator>
      <pubDate>Sat, 13 Jan 2007 16:34:56 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Regalo voucher per esame di certificazione Microsoft</title>
      <link>http://www.xedotnet.org/74/section.aspx/256</link>
      <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;L'anno scorso, durante il meeting &lt;a href="http://www.xedotnet.org"&gt;XE.NET&lt;/a&gt; in cui era ospite Lorenzo Barbieri per parlaci di Team System, ho ricevuto in regalo un voucher VUE per un esame di certificazione Microsoft. &lt;p&gt;Purtroppo a causa di troppi impegni e troppo lavoro, non sono riuscito a prepararmi per tempo e il voucher scade il 28/02/2007. &lt;p&gt;Quindi, se a qualcuno dovesse interessare, lo rimetto a disposizione della community... facciamo che il primo che lascia un commento con un recapito&amp;nbsp;si accaparra il tagliando. &lt;p&gt;Requisito essenziale: essere membri della community &lt;a href="http://www.xedotnet.org"&gt;XE.NET&lt;/a&gt;.&lt;/p&gt;</description>
      <dc:creator>Lorenzo Melato</dc:creator>
      <pubDate>Wed, 10 Jan 2007 18:44:14 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Gemellaggio UgiDotNet - XeDotNet</title>
      <link>http://www.xedotnet.org/74/section.aspx/254</link>
      <description>&lt;p&gt;Dopo una luuuuunghissiiima pausa torna finalmente la cena dell'Asino. Il 26/1/2007, in quel di Castellaro Lagusello si terrà un gemellaggio tra UgiDotNet e XeDotNet attorno ad un piatto adorno di Stracotto d'Asino, risotto con funghi e salamelle e quant'altro.&lt;/p&gt; &lt;p&gt;L'appuntamento è all'uscita di Sirmione alle ore 20:30. Da li i convenuti si sposteranno vero il ristorante "La Pesa", già teatro di altri duelli culinari&amp;nbsp;storici... &lt;/p&gt; &lt;p&gt;Chi vuole aggregarsi non ha che da dirlo... &lt;/p&gt; &lt;p&gt;Link: &lt;a title="http://blog.boschin.it/archive/2007/01/09/4727.aspx" href="http://blog.boschin.it/archive/2007/01/09/4727.aspx"&gt;http://blog.boschin.it/archive/2007/01/09/4727.aspx&lt;/a&gt;&lt;/p&gt;</description>
      <dc:creator>Andrea Boschin</dc:creator>
      <pubDate>Tue, 09 Jan 2007 19:36:58 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Grazie a tutti!</title>
      <link>http://www.xedotnet.org/74/section.aspx/251</link>
      <description>&lt;p&gt;Questo Natale lo ricorderò per molto, molto tempo. E' un Natale di cambiamenti e di crescita; è il mio primo Natale da sposato, ma è anche il primo Natale da Libero Professionista. &lt;/p&gt; &lt;p&gt;E' anche&amp;nbsp;il primo Natale di XeDotNet, che ritengo un'iniziativa veramente esaltante. In questo anno la nostra "piccola" community ci ha fatto diventare "grandi", e per quanto mi riguarda, ha fatto crescere la voglia di intraprendere la Libera Professione, forse perchè a contatto di persone entusiaste più che del proprio lavoro, della propria passione per tutto ciò che è sviluppo di soluzioni informatiche.&lt;/p&gt; &lt;p&gt;Con questo post volevo ringraziare tutti voi che avete letto, e con mio estremo piacere vedo che siete in tanti, i miei articoli.&lt;/p&gt; &lt;p&gt;E' grazie a tutti voi che sono stato premiato con la &lt;strong&gt;Visual Studio Team Suite Subscription&lt;/strong&gt;, che mi permetterà di tenermi aggiornato per un anno su tutti i prodotti Microsoft.&lt;/p&gt; &lt;p&gt;E' quindi con un ideale abbraccio che ringrazio tutti, ed auguro&amp;nbsp;Buon Natale a voi ed alle vostre famiglie!&lt;/p&gt;</description>
      <dc:creator>Davide Senatore</dc:creator>
      <pubDate>Thu, 21 Dec 2006 11:01:25 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>PDC 2007 a Los Angeles</title>
      <link>http://www.xedotnet.org/74/section.aspx/248</link>
      <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Da un post di &lt;a href="http://blogs.msdn.com/brada/archive/2006/12/12/pdc-2007-save-the-date.aspx" target="_blank"&gt;Brad Adams&lt;/a&gt; leggo l'annuncio della data e location della prossima &lt;a href="http://msdn.microsoft.com/events/pdc/" target="_blank"&gt;Professional Developer Conference&lt;/a&gt;, prevista per l'Ottobre 2007 a Los Angeles. &lt;br&gt;Manca ancora un po' di tempo ma è bene pensarci su, avendo partecipato alla edizione 2000, 2003 e 2005 posso confermare per esperienza personale che sono eventi che valgono ogni singolo centesimo.  &lt;p&gt;&lt;a href="http://dudevsit.blogspot.com/2006/12/pdc-2007.html"&gt;[riportato da questo post&lt;/a&gt;].&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:50e7e73d-5b36-4bc9-a606-9e5ab9cd7cbb" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/PDC" rel="tag"&gt;PDC&lt;/a&gt;, &lt;a href="http://technorati.com/tags/2007" rel="tag"&gt;2007&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ProfessionalDeveloperConference" rel="tag"&gt;ProfessionalDeveloperConference&lt;/a&gt;&lt;/div&gt;</description>
      <dc:creator>Davide Bedin</dc:creator>
      <pubDate>Wed, 13 Dec 2006 08:18:38 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>Offerta di Lavoro</title>
      <link>http://www.xedotnet.org/74/section.aspx/246</link>
      <description>&lt;p&gt;L'azienda presso cui lavoro ha iniziato una selezione per la ricerca di nuovo personale nel settore sviluppo del quale sono responsabile. I requisiti richiesti sono i seguenti:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Buona conoscenza ASP.NET 2.0&lt;/li&gt; &lt;li&gt;Linguaggio C# 2.0&lt;/li&gt; &lt;li&gt;SQL Server 2000/2005&lt;/li&gt; &lt;li&gt;Familiarità con paradigmi Object Oriented&lt;/li&gt; &lt;li&gt;Predisposizione al lavoro di gruppo&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;La sede di lavoro è Noventa di Piave e il contratto offerto è a tempo indeterminato. Il lavoro verterà sulla manutenzione e sviluppo di una soluzione esistente sullo sviluppo con&amp;nbsp;nuove tecnologie quali .NET Framework 3.0.&lt;/p&gt; &lt;p&gt;Per informazioni contattatemi sul mio &lt;a href="http://blog.boschin.it/" rel="tag"&gt;blog&lt;/a&gt;.&lt;/p&gt;</description>
      <dc:creator>Andrea Boschin</dc:creator>
      <pubDate>Thu, 07 Dec 2006 14:45:18 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>NHibernate Generics per NHibernate 1.0.3.0</title>
      <link>http://www.xedotnet.org/74/section.aspx/244</link>
      <description>&lt;p&gt;E' disponibile sul sito di&amp;nbsp; &lt;a href="http://www.ayende.com/projects/nhibernate-query-analyzer/downloads.aspx"&gt;Ayende Rahien&lt;/a&gt;&amp;nbsp;la nuova versione di Nhibernate Generics per la versione 1.0.3.0 di NHibernate&lt;/p&gt;</description>
      <dc:creator>Moris Bozzetto</dc:creator>
      <pubDate>Tue, 05 Dec 2006 14:51:03 GMT</pubDate>
      <category />
    </item>
    <item>
      <title>System Requirements for Windows Vista</title>
      <link>http://www.xedotnet.org/74/section.aspx/242</link>
      <description>&lt;blockquote&gt; &lt;p&gt;Fundamentally, Microsoft has created an operating system that scales with the hardware and requires much more from the PC to drive the new functionality and scenarios it delivers (versus previous versions of the operating system). In our testing, a system with 1GB RAM and a discrete (or dedicated) graphics card provides a decent Vista experience with some elements of the Aero interface. For optimal results with all the bells and whistles that Aero provides, I’d recommend configuring a system with at least 2GB of system ram and discrete graphics card.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;[&lt;a href="http://www.direct2dell.com/one2one/archive/2006/11/27/3782.aspx"&gt;Dell one2one&lt;/a&gt;]&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Dell ha condotto 100.000 ore di tests (52 anni) per la compatibilità, usabilità, invalidando in uso&amp;nbsp;tests esistenti.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;[&lt;a href="http://www.direct2dell.com/one2one/archive/2006/11/30/3872.aspx"&gt;Dell Testing of Windows Vista&lt;/a&gt;]&lt;/p&gt;</description>
      <dc:creator>Marco Trova</dc:creator>
      <pubDate>Sat, 02 Dec 2006 21:16:46 GMT</pubDate>
      <category />
    </item>
  </channel>
</rss>
