<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Varie ed eventuali</title>
        <link>http://blogs.ugidotnet.org/PietroLibroBlog/category/Varie ed eventuali.aspx</link>
        <description>Varie ed eventuali</description>
        <language>it-IT</language>
        <copyright>Pietro Libro</copyright>
        <managingEditor>pietro.libro@libero.it</managingEditor>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Screen Resolution Debian (guest) su Hyper-V</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2017/03/12/screen-resolution-debian-guest-su-hyper-v.aspx</link>
            <description>&lt;p&gt;Se si ha una macchina virtuale Debian come guest su Hyper-V e si ha la necessità di cambiare la risoluzione dello schermo, dopo averle provate tutte, provare anche questa &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/1e3e389fa7c1_98F9/wlEmoticon-smile_2.png" /&gt;. &lt;/p&gt;  &lt;p&gt;Come riportato su&lt;a title="http://uglygizmo.blogspot.ch/2014/06/debian-screen-resolution-when-hyper-v.html" href="http://uglygizmo.blogspot.ch/2014/06/debian-screen-resolution-when-hyper-v.html" target="_blank"&gt; uglygizmo.blogspot.ch&lt;/a&gt; i passi da seguire sono veramente pochi, per convenienza li riporto qui:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Edit the grub configuration file, for example:  &lt;font face="Courier New"&gt;sudo vi /etc/default/grub&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT, and add "video=hyperv_fb:1680x1050" (or your custom resolution) in between the quotes. For example: &lt;font face="Courier New"&gt;GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1680x1050"&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;Save and exit  &lt;/li&gt;    &lt;li&gt;Run &lt;font face="Courier New"&gt;sudo update-grub&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;Restart your computer &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Nel mio caso finalmente sono riuscito ad impostare la risoluzione desiderata.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/102380.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2017/03/12/screen-resolution-debian-guest-su-hyper-v.aspx</guid>
            <pubDate>Sun, 12 Mar 2017 12:02:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2017/03/12/screen-resolution-debian-guest-su-hyper-v.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/102380.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/102380.aspx</trackback:ping>
        </item>
        <item>
            <title>JSON.Merge</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2014/08/29/json.merge.aspx</link>
            <description>&lt;p&gt;Un’interessante novità introdotta con la versione 6.0 release 4 di Json.NET è la possibilità di eseguire il &lt;em&gt;Merge&lt;/em&gt; (utilizzando 4 possibili “variazioni”) di oggetti &lt;em&gt;JObject&lt;/em&gt; e &lt;em&gt;Jarray&lt;/em&gt;. Un rapido esempio, tramite Web Api:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;[HttpPost]        
public void JsonStringPost([FromBody]string value)
{
    JObject jCar = JObject.Parse(value);
    JObject jOptional = JObject.Parse(@"{Optionals :['Air Conditioned','Smoker'] }");

    jCar.Merge(jOptional, new JsonMergeSettings() { MergeArrayHandling = MergeArrayHandling.Union });

    string jsonFormat = jCar.ToString();
    Car mergedCar =  jCar.ToObject&amp;lt;Car&amp;gt;(); 
}&lt;/pre&gt;

&lt;p&gt;Dove &lt;em&gt;l’Action&lt;/em&gt; “JsonStringPost” accetta una stringa tipo:&lt;/p&gt;

&lt;p&gt;"{ 'Brand': 'Ferrari','Model': 'f450 Modena','Optionals': [] }"&lt;/p&gt;

&lt;p&gt;Utilizzando, ad esempio il &lt;em&gt;Composer&lt;/em&gt; di strumenti come &lt;a href="http://www.telerik.com/fiddler" target="_blank"&gt;Fiddler2&lt;/a&gt; possiamo invocare il servizio:&lt;/p&gt;
&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/JSON.Merge_A854/image_5.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/JSON.Merge_A854/image_thumb_1.png" width="244" height="238" /&gt;&lt;/a&gt; 

&lt;p&gt;Per ottenere una nuova istanza di &lt;em&gt;Car&lt;/em&gt; con tutti gli &lt;em&gt;Optionals&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/JSON.Merge_A854/image_7.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/JSON.Merge_A854/image_thumb_2.png" width="244" height="74" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se il nostro servizio accetta direttamente un’istanza di oggetto invece di una stringa in formato JSON, il nostro codice cambia leggermente, come di seguito:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;[HttpPost]
public void JsonObjectPost([FromBody] Car carByPost)
{
    JObject jCar = JObject.FromObject(carByPost);

    JObject jOptional = JObject.Parse(@"{Optionals :['Air Conditioned','Smoker'] }");
    jCar.Merge(jOptional, new JsonMergeSettings() { MergeArrayHandling = MergeArrayHandling.Union });

    string jsonFormat = jCar.ToString();
    Car mergedCar = jCar.ToObject&lt;car&gt;();
}&lt;/car&gt;&lt;/pre&gt;

&lt;p&gt;Dove utilizziamo il metodo &lt;em&gt;FromObject&lt;/em&gt; della classe &lt;em&gt;JObject&lt;/em&gt; invece di &lt;em&gt;Parse. &lt;/em&gt;Utilizzando Fiddler, passando come &lt;em&gt;Body&lt;/em&gt; del messaggio la stringa (senza i doppi apici ad inizio e fine stringa)&lt;/p&gt;

&lt;p&gt;{ 'Brand': 'Ferrari','Model': 'f450 Modena','Optionals': [] }&lt;/p&gt;

&lt;p&gt;Otteniamo (ovviamente) lo stesso risultato dell’invocazione precedente. E’ possibile modificare il comportamento di “Merge” utilizzando l’enumerazione &lt;em&gt;MergeArrayHandling. &lt;/em&gt;La classe &lt;em&gt;Car &lt;/em&gt;(C#) è descritta nell’esempio, è la seguente:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;public class Car
{
    public string Brand { get; set; }
    public string Model { get; set; }
    public string[] Optionals { get; set; }
}&lt;/pre&gt;

&lt;p&gt;La lista completa delle &lt;em&gt;features&lt;/em&gt; aggiunte nel rilascio della versione 6.0 release 4 è disponibile &lt;a href="http://james.newtonking.com/archive/2014/08/04/json-net-6-0-release-4-json-merge-dependency-injection" target="_blank"&gt;qui&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101880.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2014/08/29/json.merge.aspx</guid>
            <pubDate>Fri, 29 Aug 2014 13:30:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2014/08/29/json.merge.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101880.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101880.aspx</trackback:ping>
        </item>
        <item>
            <title>Enterprise Library 6</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/26/enterprise-library-6.aspx</link>
            <description>&lt;p&gt;Nuova release per Microsoft Enterprise Library. Tutti i dettagli del caso &lt;a href="http://msdn.microsoft.com/en-us/library/dn169621.aspx#sec8" target="_blank"&gt;qui.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101525.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/26/enterprise-library-6.aspx</guid>
            <pubDate>Fri, 26 Apr 2013 14:09:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/26/enterprise-library-6.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101525.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101525.aspx</trackback:ping>
        </item>
        <item>
            <title>Le (mie) prime Windows 8 App Store</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/24/le-mie-prime-windows-8-app-store.aspx</link>
            <description>&lt;p&gt;Alla fine, sono riuscito a pubblicare le mie  prime 4 applicazioni nello Store di Windows 8. L’obiettivo è raddopiare il numero entro la fine di maggio. Se avete voglia di provarle (sono tutte free) e indicarmi qualche suggerimento per le versioni future ed attuali, di seguito  link e nomi :&lt;/p&gt;  &lt;p&gt;&lt;img title="Lazio: Cultura e Turismo" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="132780[2]" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/LeprimeAppdiWindows8Store_7C3E/132780%5B2%5D_thumb_1.png" width="54" height="54" /&gt; &lt;a href="http://apps.microsoft.com/windows/app/lazio-cultura-e-turismo/22017e70-f81f-4fd4-89c9-e6ab0cc45f6c" target="_blank"&gt;Lazio: Cultura e Turismo&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;L'applicazione "Lazio: Cultura e Turismo", è un elenco dei Punti d'Interesse (POI) Culturali del Lazio: Musei, Statue, Monasteri, Dipinti, Abbazie, Castelli, Torri ecc....Per ogni POI è presente una descrizione in Italiano (eventualmente in Inglese), foto e geolocalizzazione. Il catalogo dati è mantenuto e fornito da "Lazio futouring", sito internet: &lt;a href="http://www.futouring.eu" target="_blank"&gt;http://www.futouring.eu.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="Farmacie Italiane" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="128786[1]" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/LeprimeAppdiWindows8Store_7C3E/128786%5B1%5D_6d53c596-3c82-4b54-a4bd-66f9f16a9511.png" width="54" height="54" /&gt; &lt;a href="http://apps.microsoft.com/windows/app/farmacie-italiane/493f771f-fb97-49c3-b970-7413e9daa6a0" target="_blank"&gt;Farmacie Italiane&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Elenco completo delle farmacie italiane aperte al pubblico, comprensivo di dati di localizzazione e geoloclalizzazione. I dati sono mantenuti e forniti tramite piattaforma"cloud" del "Ministero della Salute".&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="Istituti Scolastici Provincia di Roma" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="123924[1]" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/LeprimeAppdiWindows8Store_7C3E/123924%5B1%5D_a20b31c4-a9ef-4023-a59a-303041b9ab06.png" width="54" height="54" /&gt;&lt;a href="http://apps.microsoft.com/windows/app/istituti-scolastici-provincia-di/c08b0a24-0f93-4e05-8c2a-6a86b9b1af20" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://apps.microsoft.com/windows/app/istituti-scolastici-provincia-di/c08b0a24-0f93-4e05-8c2a-6a86b9b1af20" target="_blank"&gt;Istituti Scolastici Provincia di Roma&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;"Istituti Scolastici Provincia di Roma" Catalogo con geolocalizzazione degli istituti scolastici (superiori) della provincia di Roma. I dati base sono forniti dalla piattaforma "Open Data".&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="Roma ProvinciaWiFi" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="123362[1]" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/LeprimeAppdiWindows8Store_7C3E/123362%5B1%5D_thumb_1.png" width="54" height="54" /&gt;&lt;a href="http://apps.microsoft.com/windows/app/roma-provinciawifi/ed103394-e36d-4041-b8c0-0c80af20906d" target="_blank"&gt;Roma ProvinciaWiFi&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Individua facilmente apparati WiFi della provincia di Roma per l'accesso gratuito ad Internet. I dati di geolocalizzazione sono ottenuti tramite il "Portale Opendata della Provincia di Roma".&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Buon divertimento :-D.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101520.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/24/le-mie-prime-windows-8-app-store.aspx</guid>
            <pubDate>Wed, 24 Apr 2013 09:58:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/24/le-mie-prime-windows-8-app-store.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101520.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101520.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET Web Api a Codemotion Roma 2013</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/03/22/asp.net-web-api-a-codemotion-roma-2013.aspx</link>
            <description>&lt;p&gt;Se domani non avete proprio nulla da fare :-) possiamo vederci a Codemotion 2013 Roma.&lt;/p&gt;  &lt;p&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ASP.NETWebApiaCodemotionRoma2013_106C0/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ASP.NETWebApiaCodemotionRoma2013_106C0/image_thumb.png" width="437" height="228" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una sessione introduttiva all’utilizzo del Framework ASP.NET Web Api per lo sviluppo di applicazioni RESTful.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101485.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/03/22/asp.net-web-api-a-codemotion-roma-2013.aspx</guid>
            <pubDate>Fri, 22 Mar 2013 19:39:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/03/22/asp.net-web-api-a-codemotion-roma-2013.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101485.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101485.aspx</trackback:ping>
        </item>
        <item>
            <title>Modi diversi di recuperare il numero di messaggi in una coda MSMQ</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/01/28/modi-diversi-di-recuperare-il-numero-di-messaggi-in-una.aspx</link>
            <description>&lt;p&gt;Ultimamente mi trovo a lavorare su di un progetto che utilizza WCF e &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Message_Queuing" target="_blank"&gt;MSMQ&lt;/a&gt;. Una delle classiche operazioni quando si lavora con queste tecnologie è sicuramente recuperare il numero di messaggi presenti in una coda. Tra documentazione e ricerche su internet, alla fine si “scopre” che ci sono diversi metodi per risolvere lo stesso problema:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Cursori di MSMQ &lt;/li&gt;    &lt;li&gt;Utilizzo di GetAllMessages &lt;/li&gt;    &lt;li&gt;Utilizzo di GetEnumerator2 &lt;/li&gt;    &lt;li&gt;PowerShell &lt;/li&gt;    &lt;li&gt;Performance Counter &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Traducendo il tutto in righe di codice, per il punto 1) abbiamo:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CountByCursor()
{
    &lt;span class="kwrd"&gt;int&lt;/span&gt; count = 0;
    Cursor cursor = _messageQueue.CreateCursor();
    Message m = CursorPeekWithoutTimeout(cursor, PeekAction.Current);
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (m != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        count = 1;
        &lt;span class="kwrd"&gt;while&lt;/span&gt; ((m = CursorPeekWithoutTimeout(cursor, PeekAction.Next)) != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
        {
            count++;
        }
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (m != &lt;span class="kwrd"&gt;null&lt;/span&gt;) m.Dispose();
    }
    cursor.Dispose();
    &lt;span class="kwrd"&gt;return&lt;/span&gt; count;
}

&lt;span class="kwrd"&gt;private&lt;/span&gt; Message CursorPeekWithoutTimeout(Cursor cursor, PeekAction action)
{
    Message ret = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

    &lt;span class="kwrd"&gt;try&lt;/span&gt;
    {
        ret = _messageQueue.Peek(&lt;span class="kwrd"&gt;new&lt;/span&gt; TimeSpan(1), cursor, action);
    }
    &lt;span class="kwrd"&gt;catch&lt;/span&gt; (MessageQueueException mqe)
    {
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (mqe.MessageQueueErrorCode != MessageQueueErrorCode.IOTimeout)
        {
            &lt;span class="kwrd"&gt;throw&lt;/span&gt;;
        }
    }
    &lt;span class="kwrd"&gt;return&lt;/span&gt; ret;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;Sinceramente questo è il metodo che più non mi piace, sarà per la parola “Cursore”, sarà per la gestione dell’eccezione, sarà perchè la vedo poco pulita. &lt;/p&gt;

&lt;p&gt;Passiamo al punto 2):&lt;/p&gt;

&lt;pre class="csharpcode"&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CountByGetAllMessages()
{
    &lt;span class="kwrd"&gt;return&lt;/span&gt; _messageQueue.GetAllMessages().Length;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;Semplice e pulita, ma come vedremo a breve, le prestazioni scendono con l’aumentare dei messaggi in coda.&lt;/p&gt;

&lt;p&gt;Punto 3), “GetMessageEnumerator2”:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;var x = _messageQueue.GetMessageEnumerator2();
&lt;span class="kwrd"&gt;int&lt;/span&gt; counter = 0;
&lt;span class="kwrd"&gt;while&lt;/span&gt; (x.MoveNext())
{
    counter++;
}
&lt;span class="kwrd"&gt;return&lt;/span&gt; counter;&lt;/pre&gt;

&lt;p&gt;Sfruttiamo il &lt;em&gt;MessageEnumerator&lt;/em&gt; ritornato dal metodo &lt;em&gt;GetEnumerator2&lt;/em&gt; ed iteriamo per spostare il cursore fino alla fine della coda.&lt;/p&gt;

&lt;p&gt;Punto 4), “PowerShell” (in questo caso mi sono limitato a copiare del codice trovato in rete):&lt;/p&gt;

&lt;pre class="csharpcode"&gt;var path = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;@"\\{0}\root\CIMv2"&lt;/span&gt;, machine);

ManagementScope scope;

&lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(username))
{
    scope = &lt;span class="kwrd"&gt;new&lt;/span&gt; ManagementScope(path);
}
&lt;span class="kwrd"&gt;else&lt;/span&gt;
{
    var options = &lt;span class="kwrd"&gt;new&lt;/span&gt; ConnectionOptions { Username = username, Password = password };
    scope = &lt;span class="kwrd"&gt;new&lt;/span&gt; ManagementScope(path, options);
}

scope.Connect();

&lt;span class="kwrd"&gt;if&lt;/span&gt; (queuePath.StartsWith(&lt;span class="str"&gt;".\\")) queuePath = queuePath.Replace("&lt;/span&gt;.\\&lt;span class="str"&gt;", string.Format("&lt;/span&gt;{0}\\&lt;span class="str"&gt;", machine));

string queryString = String.Format("&lt;/span&gt;SELECT * FROM Win32_PerfFormattedData_msmq_MSMQQueue&lt;span class="str"&gt;");
var query = new ObjectQuery(queryString);
var searcher = new ManagementObjectSearcher(scope, query);
IEnumerable&amp;lt;int&amp;gt; messageCountEnumerable =
    from ManagementObject queue in searcher.Get()
    select (int)(UInt64)queue.GetPropertyValue("&lt;/span&gt;MessagesInQueue");
var x = messageCountEnumerable.First();

&lt;span class="kwrd"&gt;return&lt;/span&gt; x;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;ed infine il punto 5) “Performance Counter”:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;System.Diagnostics.PerformanceCounter backupQueueCounter = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Diagnostics.PerformanceCounter(
    &lt;span class="str"&gt;"MSMQ Queue"&lt;/span&gt;, &lt;span class="str"&gt;"Messages in Queue"&lt;/span&gt;, &lt;span class="str"&gt;"queue_path"&lt;/span&gt;);

&lt;span class="kwrd"&gt;return&lt;/span&gt; backupQueueCounter.NextValue();&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;Bene, ora quale usare ? Proviamo con un piccolo test: ad una coda privata aggiungiamo 10.000 messaggi per volta (all’interno di un ciclo) e proviamo ad utilizzare i metodi su descritti per recuperare il numero di messaggi presenti in coda (si suppone che tra un conteggio e l’altro nella coda non vengano aggiunti altri messaggi). Iteriamo il procedimento per tre volte. &lt;/p&gt;

&lt;p&gt;Di seguito i risultati ottenuti (espressi in millisecondi, per le misure del tempo di esecuzione è stata utilizzata la classe &lt;em&gt;System.Diagnostics.Stopwatcher&lt;/em&gt;):&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prima Iterazione&lt;/strong&gt;&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td width="80"&gt;#Msgs&lt;/td&gt;

      &lt;td width="80"&gt;MSMQ Cursor&lt;/td&gt;

      &lt;td width="35"&gt;GetAllMessages&lt;/td&gt;

      &lt;td width="65"&gt;GetEnumerator2&lt;/td&gt;

      &lt;td width="118"&gt;PowerShell&lt;/td&gt;

      &lt;td width="97"&gt;Performance C.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;10.000&lt;/td&gt;

      &lt;td width="80"&gt;449,816&lt;/td&gt;

      &lt;td width="35"&gt;580,703&lt;/td&gt;

      &lt;td&gt;36,37&lt;/td&gt;

      &lt;td&gt;78,543&lt;/td&gt;

      &lt;td&gt;351,86&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;20.000&lt;/td&gt;

      &lt;td width="80"&gt;928,18&lt;/td&gt;

      &lt;td width="35"&gt;1.297,72&lt;/td&gt;

      &lt;td&gt;78,16&lt;/td&gt;

      &lt;td&gt;9,888&lt;/td&gt;

      &lt;td&gt;0,462&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;30.000&lt;/td&gt;

      &lt;td width="80"&gt;1.340,44&lt;/td&gt;

      &lt;td width="35"&gt;1.854,52&lt;/td&gt;

      &lt;td&gt;137,82&lt;/td&gt;

      &lt;td&gt;10,563&lt;/td&gt;

      &lt;td&gt;1,121&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;40.000&lt;/td&gt;

      &lt;td width="80"&gt;1.769,73&lt;/td&gt;

      &lt;td width="35"&gt;2.656,28&lt;/td&gt;

      &lt;td&gt;194,652&lt;/td&gt;

      &lt;td&gt;12,061&lt;/td&gt;

      &lt;td&gt;3,187&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;50.000&lt;/td&gt;

      &lt;td width="80"&gt;2.188,74&lt;/td&gt;

      &lt;td width="35"&gt;3.427,84&lt;/td&gt;

      &lt;td&gt;190,672&lt;/td&gt;

      &lt;td&gt;10,739&lt;/td&gt;

      &lt;td&gt;0,452&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;60.000&lt;/td&gt;

      &lt;td width="80"&gt;2.631,29&lt;/td&gt;

      &lt;td width="35"&gt;3.909,71&lt;/td&gt;

      &lt;td&gt;231,995&lt;/td&gt;

      &lt;td&gt;10,219&lt;/td&gt;

      &lt;td&gt;0,364&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;70.000&lt;/td&gt;

      &lt;td width="80"&gt;3.006,52&lt;/td&gt;

      &lt;td width="35"&gt;4.771,09&lt;/td&gt;

      &lt;td&gt;264,112&lt;/td&gt;

      &lt;td&gt;5.802,42&lt;/td&gt;

      &lt;td&gt;0,462&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;80.000&lt;/td&gt;

      &lt;td width="80"&gt;3.469,49&lt;/td&gt;

      &lt;td width="35"&gt;6.116,47&lt;/td&gt;

      &lt;td&gt;309,691&lt;/td&gt;

      &lt;td&gt;10,075&lt;/td&gt;

      &lt;td&gt;0,545&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;90.000&lt;/td&gt;

      &lt;td width="80"&gt;4.000,00&lt;/td&gt;

      &lt;td width="35"&gt;6.134,66&lt;/td&gt;

      &lt;td&gt;372,885&lt;/td&gt;

      &lt;td&gt;9,876&lt;/td&gt;

      &lt;td&gt;0,435&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="80"&gt;100.000&lt;/td&gt;

      &lt;td width="80"&gt;4.544,33&lt;/td&gt;

      &lt;td width="35"&gt;6.932,08&lt;/td&gt;

      &lt;td&gt;424,196&lt;/td&gt;

      &lt;td&gt;9,024&lt;/td&gt;

      &lt;td&gt;0,41&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;
&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/Modidiversidirecuperareilnumerodimessagg_ABED/image_10.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/Modidiversidirecuperareilnumerodimessagg_ABED/image_thumb.png" width="244" height="148" /&gt;&lt;/a&gt; 

&lt;p&gt;&lt;strong&gt;Seconda Iterazione&lt;/strong&gt;&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td width="77"&gt;#Msgs&lt;/td&gt;

      &lt;td width="78"&gt;MSMQ Cursor&lt;/td&gt;

      &lt;td width="40"&gt;GetAllMessages&lt;/td&gt;

      &lt;td width="65"&gt;GetEnumerator2&lt;/td&gt;

      &lt;td width="118"&gt;PowerShell&lt;/td&gt;

      &lt;td width="97"&gt;Performance C.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;10.000&lt;/td&gt;

      &lt;td width="78"&gt;475,357&lt;/td&gt;

      &lt;td width="40"&gt;609,866&lt;/td&gt;

      &lt;td&gt;38,022&lt;/td&gt;

      &lt;td&gt;285,978&lt;/td&gt;

      &lt;td&gt;351,955&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;20.000&lt;/td&gt;

      &lt;td width="78"&gt;912,591&lt;/td&gt;

      &lt;td width="40"&gt;1.315,49&lt;/td&gt;

      &lt;td&gt;76,912&lt;/td&gt;

      &lt;td&gt;10,453&lt;/td&gt;

      &lt;td&gt;0,502&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;30.000&lt;/td&gt;

      &lt;td width="78"&gt;1.417,26&lt;/td&gt;

      &lt;td width="40"&gt;2.066,92&lt;/td&gt;

      &lt;td&gt;122,745&lt;/td&gt;

      &lt;td&gt;11,156&lt;/td&gt;

      &lt;td&gt;0,366&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;40.000&lt;/td&gt;

      &lt;td width="78"&gt;1.901,66&lt;/td&gt;

      &lt;td width="40"&gt;2.718,64&lt;/td&gt;

      &lt;td&gt;153,373&lt;/td&gt;

      &lt;td&gt;9,947&lt;/td&gt;

      &lt;td&gt;0,349&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;50.000&lt;/td&gt;

      &lt;td width="78"&gt;2.393,97&lt;/td&gt;

      &lt;td width="40"&gt;3.386,43&lt;/td&gt;

      &lt;td&gt;203,553&lt;/td&gt;

      &lt;td&gt;10,962&lt;/td&gt;

      &lt;td&gt;0,358&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;60.000&lt;/td&gt;

      &lt;td width="78"&gt;2.659,28&lt;/td&gt;

      &lt;td width="40"&gt;4.546,84&lt;/td&gt;

      &lt;td&gt;280,257&lt;/td&gt;

      &lt;td&gt;9,832&lt;/td&gt;

      &lt;td&gt;0,413&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;70.000&lt;/td&gt;

      &lt;td width="78"&gt;3.246,77&lt;/td&gt;

      &lt;td width="40"&gt;4.938,01&lt;/td&gt;

      &lt;td&gt;278,404&lt;/td&gt;

      &lt;td&gt;11,664&lt;/td&gt;

      &lt;td&gt;0,517&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;80.000&lt;/td&gt;

      &lt;td width="78"&gt;3.718,89&lt;/td&gt;

      &lt;td width="40"&gt;5.881,67&lt;/td&gt;

      &lt;td&gt;330,857&lt;/td&gt;

      &lt;td&gt;13,688&lt;/td&gt;

      &lt;td&gt;0,506&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;90.000&lt;/td&gt;

      &lt;td width="78"&gt;4.230,99&lt;/td&gt;

      &lt;td width="40"&gt;6.677,00&lt;/td&gt;

      &lt;td&gt;362,374&lt;/td&gt;

      &lt;td&gt;10,155&lt;/td&gt;

      &lt;td&gt;0,508&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="77"&gt;100.000&lt;/td&gt;

      &lt;td width="78"&gt;4.832,89&lt;/td&gt;

      &lt;td width="40"&gt;7.585,19&lt;/td&gt;

      &lt;td&gt;464,216&lt;/td&gt;

      &lt;td&gt;16,495&lt;/td&gt;

      &lt;td&gt;0,681&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;
&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/Modidiversidirecuperareilnumerodimessagg_ABED/image_12.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/Modidiversidirecuperareilnumerodimessagg_ABED/image_thumb_4.png" width="244" height="148" /&gt;&lt;/a&gt; 

&lt;p&gt;&lt;strong&gt;Terza Iterazione&lt;/strong&gt;&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="0" width="541" border="0"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td width="86"&gt;#Msgs&lt;/td&gt;

      &lt;td width="103"&gt;MSMQ Cursor&lt;/td&gt;

      &lt;td width="10"&gt;GetAllMessages&lt;/td&gt;

      &lt;td width="65"&gt;GetEnumerator2&lt;/td&gt;

      &lt;td width="118"&gt;PowerShell&lt;/td&gt;

      &lt;td width="161"&gt;Performance C.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;10.000&lt;/td&gt;

      &lt;td width="103"&gt;533,294&lt;/td&gt;

      &lt;td width="10"&gt;621,392&lt;/td&gt;

      &lt;td&gt;41,496&lt;/td&gt;

      &lt;td&gt;79,286&lt;/td&gt;

      &lt;td width="161"&gt;376,431&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;20.000&lt;/td&gt;

      &lt;td width="103"&gt;911,513&lt;/td&gt;

      &lt;td width="10"&gt;1.338,41&lt;/td&gt;

      &lt;td&gt;79,827&lt;/td&gt;

      &lt;td&gt;9,354&lt;/td&gt;

      &lt;td width="161"&gt;0,38&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;30.000&lt;/td&gt;

      &lt;td width="103"&gt;1.339,34&lt;/td&gt;

      &lt;td width="10"&gt;2.123,46&lt;/td&gt;

      &lt;td&gt;120,693&lt;/td&gt;

      &lt;td&gt;12,969&lt;/td&gt;

      &lt;td width="161"&gt;0,414&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;40.000&lt;/td&gt;

      &lt;td width="103"&gt;1.799,28&lt;/td&gt;

      &lt;td width="10"&gt;2.658,01&lt;/td&gt;

      &lt;td&gt;158,606&lt;/td&gt;

      &lt;td&gt;9,423&lt;/td&gt;

      &lt;td width="161"&gt;0,374&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;50.000&lt;/td&gt;

      &lt;td width="103"&gt;2.196,96&lt;/td&gt;

      &lt;td width="10"&gt;3.221,87&lt;/td&gt;

      &lt;td&gt;199,273&lt;/td&gt;

      &lt;td&gt;10,413&lt;/td&gt;

      &lt;td width="161"&gt;0,426&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;60.000&lt;/td&gt;

      &lt;td width="103"&gt;2.562,49&lt;/td&gt;

      &lt;td width="10"&gt;4.140,15&lt;/td&gt;

      &lt;td&gt;257,22&lt;/td&gt;

      &lt;td&gt;8,81&lt;/td&gt;

      &lt;td width="161"&gt;0,411&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;70.000&lt;/td&gt;

      &lt;td width="103"&gt;3.358,83&lt;/td&gt;

      &lt;td width="10"&gt;4.715,56&lt;/td&gt;

      &lt;td&gt;327,474&lt;/td&gt;

      &lt;td&gt;14,808&lt;/td&gt;

      &lt;td width="161"&gt;0,53&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;80.000&lt;/td&gt;

      &lt;td width="103"&gt;4.417,58&lt;/td&gt;

      &lt;td width="10"&gt;6.690,44&lt;/td&gt;

      &lt;td&gt;316,044&lt;/td&gt;

      &lt;td&gt;17,334&lt;/td&gt;

      &lt;td width="161"&gt;0,825&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;90.000&lt;/td&gt;

      &lt;td width="103"&gt;4.185,52&lt;/td&gt;

      &lt;td width="10"&gt;6.229,67&lt;/td&gt;

      &lt;td&gt;340,457&lt;/td&gt;

      &lt;td&gt;11,773&lt;/td&gt;

      &lt;td width="161"&gt;0,396&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td width="86"&gt;100.000&lt;/td&gt;

      &lt;td width="103"&gt;4.407,13&lt;/td&gt;

      &lt;td width="10"&gt;6.658,46&lt;/td&gt;

      &lt;td&gt;390,498&lt;/td&gt;

      &lt;td&gt;12,944&lt;/td&gt;

      &lt;td width="161"&gt;0,589&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;
&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/Modidiversidirecuperareilnumerodimessagg_ABED/image_14.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/Modidiversidirecuperareilnumerodimessagg_ABED/image_thumb_5.png" width="244" height="148" /&gt;&lt;/a&gt; 

&lt;p&gt;Dai risultati ottenuti si ottiene che l’utilizzo del “Performance Counter”, in caso di letture successive, sembrerebbe essere quello più efficiente. &lt;/p&gt;

&lt;p&gt;In attesa di altri giudizi ed approfondimenti :-).&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101412.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/01/28/modi-diversi-di-recuperare-il-numero-di-messaggi-in-una.aspx</guid>
            <pubDate>Mon, 28 Jan 2013 13:13:32 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/01/28/modi-diversi-di-recuperare-il-numero-di-messaggi-in-una.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101412.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101412.aspx</trackback:ping>
        </item>
        <item>
            <title>Elenco di Micro-Framework&amp;hellip;</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/21/elenco-di-micro-frameworkhellip.aspx</link>
            <description>&lt;p&gt;Post promemoria: interessante ed abbondante elenco di Micro-Framework (completo di “motore di ricerca”) &lt;a href="http://microjs.com" target="_blank"&gt;microjs.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101225.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/21/elenco-di-micro-frameworkhellip.aspx</guid>
            <pubDate>Fri, 21 Sep 2012 10:01:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/21/elenco-di-micro-frameworkhellip.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101225.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101225.aspx</trackback:ping>
        </item>
        <item>
            <title>DomusDotNet: ALM@Work</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/08/21/domusdotnet-almwork.aspx</link>
            <description>&lt;p&gt;Pubblicata l'agenda dell'evento ALM@Work organizzato da DomusDotNet per il 28 settembre 2012 presso la sede Microsoft di Roma, insieme a Matteo Emili e Gian Maria Ricci, MVP italiani di Visual Studio ALM.&lt;/p&gt;
&lt;p&gt;Tutti i dettagli dell'agenda ed il link per l'iscrizione &lt;a href="http://www.domusdotnet.org/eventi/almatwork.aspx"&gt;qui&lt;/a&gt; . &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101167.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/08/21/domusdotnet-almwork.aspx</guid>
            <pubDate>Tue, 21 Aug 2012 20:57:45 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/08/21/domusdotnet-almwork.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101167.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101167.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET MVC, Web API, Razor and Open Source</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/03/28/asp.net-mvc-web-api-razor-and-open-source.aspx</link>
            <description>&lt;p&gt;Dal post di &lt;a href="http://weblogs.asp.net/scottgu/archive/2012/03/27/asp-net-mvc-web-api-razor-and-open-source.aspx" target="_blank"&gt;ScottGu&lt;/a&gt;: &lt;/p&gt;  &lt;p&gt;&lt;em&gt;You can now browse, sync and build the source tree of ASP.NET MVC, Web API, and Razor on the &lt;/em&gt;&lt;a href="http://aspnetwebstack.codeplex.com"&gt;&lt;em&gt;http://aspnetwebstack.codeplex.com&lt;/em&gt;&lt;/a&gt;&lt;em&gt; web-site.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/100898.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/03/28/asp.net-mvc-web-api-razor-and-open-source.aspx</guid>
            <pubDate>Wed, 28 Mar 2012 13:00:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/03/28/asp.net-mvc-web-api-razor-and-open-source.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/100898.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/100898.aspx</trackback:ping>
        </item>
        <item>
            <title>DomusDotNet : We Want Web, grazie a tutti :-)</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/03/10/domusdotnet-wewantweb-grazie-a-tutti.aspx</link>
            <description>&lt;p&gt;Ieri 9/3/12 si è svolto l’evento WeWantWeb organizzato da DomusDotNet presso la sede Microsoft di Roma. Le sessioni sono state registrare e quanto prima pubblicheremo Slide, codice sorgente degli esempi e Video, sul sito di &lt;a href="http://www.domusdotnet.org/" target="_blank"&gt;DomusDotNet&lt;/a&gt;. Grazie a tutti i partecipanti!!! Attendiamo i vostri feedback! Al prossimo evento &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sorriso" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/wlEmoticon-smile_2.png" /&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000309_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Alessandro Mostarda e Massibo Bonanni" border="0" alt="Alessandro Mostarda e Massibo Bonanni" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000309_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000311_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Giorgio Di Nardo" border="0" alt="Giorgio Di Nardo" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000311_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000317_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Nicolò Carandini" border="0" alt="Nicolò Carandini" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000317_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000333_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Pietro Libro" border="0" alt="Pietro Libro" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000333_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000307_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WP_000307" border="0" alt="WP_000307" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/WP_000307_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Da sinistra verso destra: &lt;a href="http://www.alessandromostarda.com/" target="_blank"&gt;Alessandro Mostarda&lt;/a&gt; e &lt;a href="http://codetailor.blogspot.com/" target="_blank"&gt;Massimo Bonanni&lt;/a&gt;, Giorgio Di Nardo, &lt;a href="http://blogs.ugidotnet.org/Nick60/Default.aspx" target="_blank"&gt;Nick&lt;/a&gt;, io &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sorriso" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/wlEmoticon-smile_2.png" /&gt;, parte di coloro che hanno avuto la pazienza di ascoltarci &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sorriso" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/7226c6221ecf_11545/wlEmoticon-smile_2.png" /&gt;.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/100854.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/03/10/domusdotnet-wewantweb-grazie-a-tutti.aspx</guid>
            <pubDate>Sat, 10 Mar 2012 20:52:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/03/10/domusdotnet-wewantweb-grazie-a-tutti.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/100854.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/100854.aspx</trackback:ping>
        </item>
    </channel>
</rss>