<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>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 .   Come riportato su uglygizmo.blogspot.ch i passi da seguire sono veramente pochi, per convenienza li riporto qui:     Edit the grub configuration file, for example:  sudo vi /etc/default/grub    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: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1680x1050"    Save and exit      Run sudo update-grub    Restart your computer    Nel mio caso finalmente sono riuscito ad impostare la risoluzione desiderata.&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>Un’interessante novità introdotta con la versione 6.0 release 4 di Json.NET è la possibilità di eseguire il Merge (utilizzando 4 possibili “variazioni”) di oggetti JObject e Jarray. Un rapido esempio, tramite Web Api:  [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;(); 
}

Dove l’Action “JsonStringPost” accetta una stringa tipo:

"{ 'Brand': 'Ferrari','Model': 'f450 Modena','Optionals': [] }"

Utilizzando, ad esempio il Composer di strumenti come Fiddler2 possiamo invocare il servizio:
 

Per ottenere una nuova istanza di Car con tutti gli Optionals:



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:

[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();
}

Dove utilizziamo il metodo FromObject della classe JObject invece di Parse. Utilizzando Fiddler, passando come Body del messaggio la stringa (senza i doppi apici ad inizio e fine stringa)

{ 'Brand': 'Ferrari','Model': 'f450 Modena','Optionals': [] }

Otteniamo (ovviamente) lo stesso risultato dell’invocazione precedente. E’ possibile modificare il comportamento di “Merge” utilizzando l’enumerazione MergeArrayHandling. La classe Car (C#) è descritta nell’esempio, è la seguente:

public class Car
{
    public string Brand { get; set; }
    public string Model { get; set; }
    public string[] Optionals { get; set; }
}

La lista completa delle features aggiunte nel rilascio della versione 6.0 release 4 è disponibile qui.&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>Nuova release per Microsoft Enterprise Library. Tutti i dettagli del caso qui.&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>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 :   Lazio: Cultura e Turismo  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: http://www.futouring.eu.   Farmacie Italiane  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".   Istituti Scolastici Provincia di Roma  "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".   Roma ProvinciaWiFi  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".  Buon divertimento :-D.&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>Se domani non avete proprio nulla da fare :-) possiamo vederci a Codemotion 2013 Roma.     Una sessione introduttiva all’utilizzo del Framework ASP.NET Web Api per lo sviluppo di applicazioni RESTful.&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>Ultimamente mi trovo a lavorare su di un progetto che utilizza WCF e MSMQ. 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:     Cursori di MSMQ     Utilizzo di GetAllMessages     Utilizzo di GetEnumerator2     PowerShell     Performance Counter    Traducendo il tutto in righe di codice, per il punto 1) abbiamo:  public int CountByCursor()
{
    int count = 0;
    Cursor cursor = _messageQueue.CreateCursor();
    Message m = CursorPeekWithoutTimeout(cursor, PeekAction.Current);
    if (m != null)
    {
        count = 1;
        while ((m = CursorPeekWithoutTimeout(cursor, PeekAction.Next)) != null)
        {
            count++;
        }
        if (m != null) m.Dispose();
    }
    cursor.Dispose();
    return count;
}

private Message CursorPeekWithoutTimeout(Cursor cursor, PeekAction action)
{
    Message ret = null;

    try
    {
        ret = _messageQueue.Peek(new TimeSpan(1), cursor, action);
    }
    catch (MessageQueueException mqe)
    {
        if (mqe.MessageQueueErrorCode != MessageQueueErrorCode.IOTimeout)
        {
            throw;
        }
    }
    return ret;
}


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. 

Passiamo al punto 2):

 public int CountByGetAllMessages()
{
    return _messageQueue.GetAllMessages().Length;
}


Semplice e pulita, ma come vedremo a breve, le prestazioni scendono con l’aumentare dei messaggi in coda.

Punto 3), “GetMessageEnumerator2”:

var x = _messageQueue.GetMessageEnumerator2();
int counter = 0;
while (x.MoveNext())
{
    counter++;
}
return counter;

Sfruttiamo il MessageEnumerator ritornato dal metodo GetEnumerator2 ed iteriamo per spostare il cursore fino alla fine della coda.

Punto 4), “PowerShell” (in questo caso mi sono limitato a copiare del codice trovato in rete):

var path = string.Format(@"\\{0}\root\CIMv2", machine);

ManagementScope scope;

if (string.IsNullOrEmpty(username))
{
    scope = new ManagementScope(path);
}
else
{
    var options = new ConnectionOptions { Username = username, Password = password };
    scope = new ManagementScope(path, options);
}

scope.Connect();

if (queuePath.StartsWith(".\\")) queuePath = queuePath.Replace(".\\", string.Format("{0}\\", machine));

string queryString = String.Format("SELECT * FROM Win32_PerfFormattedData_msmq_MSMQQueue");
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("MessagesInQueue");
var x = messageCountEnumerable.First();

return x;


ed infine il punto 5) “Performance Counter”:

System.Diagnostics.PerformanceCounter backupQueueCounter = new System.Diagnostics.PerformanceCounter(
    "MSMQ Queue", "Messages in Queue", "queue_path");

return backupQueueCounter.NextValue();


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. 

Di seguito i risultati ottenuti (espressi in millisecondi, per le misure del tempo di esecuzione è stata utilizzata la classe System.Diagnostics.Stopwatcher):

Prima Iterazione


    
      #Msgs

      MSMQ Cursor

      GetAllMessages

      GetEnumerator2

      PowerShell

      Performance C.
    

    
      10.000

      449,816

      580,703

      36,37

      78,543

      351,86
    

    
      20.000

      928,18

      1.297,72

      78,16

      9,888

      0,462
    

    
      30.000

      1.340,44

      1.854,52

      137,82

      10,563

      1,121
    

    
      40.000

      1.769,73

      2.656,28

      194,652

      12,061

      3,187
    

    
      50.000

      2.188,74

      3.427,84

      190,672

      10,739

      0,452
    

    
      60.000

      2.631,29

      3.909,71

      231,995

      10,219

      0,364
    

    
      70.000

      3.006,52

      4.771,09

      264,112

      5.802,42

      0,462
    

    
      80.000

      3.469,49

      6.116,47

      309,691

      10,075

      0,545
    

    
      90.000

      4.000,00

      6.134,66

      372,885

      9,876

      0,435
    

    
      100.000

      4.544,33

      6.932,08

      424,196

      9,024

      0,41
    
  
 

Seconda Iterazione


    
      #Msgs

      MSMQ Cursor

      GetAllMessages

      GetEnumerator2

      PowerShell

      Performance C.
    

    
      10.000

      475,357

      609,866

      38,022

      285,978

      351,955
    

    
      20.000

      912,591

      1.315,49

      76,912

      10,453

      0,502
    

    
      30.000

      1.417,26

      2.066,92

      122,745

      11,156

      0,366
    

    
      40.000

      1.901,66

      2.718,64

      153,373

      9,947

      0,349
    

    
      50.000

      2.393,97

      3.386,43

      203,553

      10,962

      0,358
    

    
      60.000

      2.659,28

      4.546,84

      280,257

      9,832

      0,413
    

    
      70.000

      3.246,77

      4.938,01

      278,404

      11,664

      0,517
    

    
      80.000

      3.718,89

      5.881,67

      330,857

      13,688

      0,506
    

    
      90.000

      4.230,99

      6.677,00

      362,374

      10,155

      0,508
    

    
      100.000

      4.832,89

      7.585,19

      464,216

      16,495

      0,681
    
  
 

Terza Iterazione


    
      #Msgs

      MSMQ Cursor

      GetAllMessages

      GetEnumerator2

      PowerShell

      Performance C.
    

    
      10.000

      533,294

      621,392

      41,496

      79,286

      376,431
    

    
      20.000

      911,513

      1.338,41

      79,827

      9,354

      0,38
    

    
      30.000

      1.339,34

      2.123,46

      120,693

      12,969

      0,414
    

    
      40.000

      1.799,28

      2.658,01

      158,606

      9,423

      0,374
    

    
      50.000

      2.196,96

      3.221,87

      199,273

      10,413

      0,426
    

    
      60.000

      2.562,49

      4.140,15

      257,22

      8,81

      0,411
    

    
      70.000

      3.358,83

      4.715,56

      327,474

      14,808

      0,53
    

    
      80.000

      4.417,58

      6.690,44

      316,044

      17,334

      0,825
    

    
      90.000

      4.185,52

      6.229,67

      340,457

      11,773

      0,396
    

    
      100.000

      4.407,13

      6.658,46

      390,498

      12,944

      0,589
    
  
 

Dai risultati ottenuti si ottiene che l’utilizzo del “Performance Counter”, in caso di letture successive, sembrerebbe essere quello più efficiente. 

In attesa di altri giudizi ed approfondimenti :-).&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>Post promemoria: interessante ed abbondante elenco di Micro-Framework (completo di “motore di ricerca”) microjs.com&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>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.
Tutti i dettagli dell'agenda ed il link per l'iscrizione qui . &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>Dal post di ScottGu:   You can now browse, sync and build the source tree of ASP.NET MVC, Web API, and Razor on the http://aspnetwebstack.codeplex.com web-site.&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>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 DomusDotNet. Grazie a tutti i partecipanti!!! Attendiamo i vostri feedback! Al prossimo evento .    Da sinistra verso destra: Alessandro Mostarda e Massimo Bonanni, Giorgio Di Nardo, Nick, io , parte di coloro che hanno avuto la pazienza di ascoltarci .&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>