<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>Windows 8</title>
        <link>http://blogs.ugidotnet.org/PietroLibroBlog/category/Windows 8.aspx</link>
        <description>Windows 8</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>Le (mie) prime Windows 8 App Store (2)</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/06/03/le-mie-prime-windows-8-app-store-2.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/04/24/le-mie-prime-windows-8-app-store.aspx" target="_blank"&gt;L'obiettivo&lt;/a&gt; era di 8  App presenti su Windows Store  entro la fine di maggio, ma alla fine sono arrivato "solo" a 7. Le App che si aggiungono all'elenco precedente sono:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/app/roma-trova-hotel/51380d51-1d11-4df3-aee0-291d848d78c" target="_blank"&gt;Roma Trova Hotel&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;br /&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/app/impianti-sportivi-roma/02bfbfef-d91e-44c4-aa97-3ad8cf937c4b" target="_blank"&gt;Impianti Sportivi Roma&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;br /&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://apps.microsoft.com/windows/app/scuole-comunali-infanzia/f3129b2b-4aad-46cf-ac05-71cf52cc76b1" target="_blank"&gt;Scuole Comunali Infanzia Roma&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;br /&gt;  &lt;p&gt;Sono principalmente delle "App Catalogo" con funzionalità di ricerca (è stata l'occasione per utilizzare SQLite). Per alcune delle 7, saranno presto rilasciati degli aggiornamenti che aggiungeranno nuove funzionalità.  &lt;/p&gt;  &lt;p&gt;Critiche e consigli costruttivi sono sempre  ben accetti.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101573.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/06/03/le-mie-prime-windows-8-app-store-2.aspx</guid>
            <pubDate>Mon, 03 Jun 2013 09:11:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2013/06/03/le-mie-prime-windows-8-app-store-2.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101573.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101573.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 4.5 e WebSocket: Real Time e Two-Way (parte 2)</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/10/asp.net-4.5-e-websocket-real-time-e-two-way-parte-2.aspx</link>
            <description>&lt;p&gt;Nella &lt;a href="http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/07/asp.net-4.5-e-websocket-real-time-e-two-way-parte.aspx" target="_blank"&gt;prima parte&lt;/a&gt; dell’articolo abbiamo introdotto i &lt;em&gt;&lt;a href="en.wikipedia.org/wiki/WebSocket" target="_blank"&gt;WebSocket&lt;/a&gt;&lt;/em&gt; sviluppando una semplice applicazione composta da un client che invia dei messaggi di testo ad un server (&lt;em&gt;WebSocket Server&lt;/em&gt;), il quale risponde inviando un testo ed un numero che rappresenta la lunghezza del messaggio ricevuto. Nel post precedente abbiamo descritto con maggior dettaglio il codice lato  &lt;em&gt;client&lt;/em&gt; demandando a questa seconda parte maggiori approfondimenti relativamente alla parte  &lt;em&gt;server &lt;/em&gt;il cui codice è composto dalla semplice classe &lt;em&gt;WebSochetHandler.ashx&lt;/em&gt;, la quale implementa l’interfaccia &lt;em&gt;IHttpHandler,&lt;/em&gt; ragion per cui  è necessario scrivere del  codice per il metodo &lt;em&gt;ProcessRequest(HttpContext context)&lt;/em&gt;, per l’elaborazione delle richieste Web HTTP, e la proprietà  &lt;em&gt;IsReusable  &lt;/em&gt;che restituisce un valore che indica se sia possibile riciclare la stessa istanza di classe che implementa &lt;em&gt;IHttpHandler&lt;/em&gt; per una successiva richiesta.&lt;/p&gt;  &lt;p&gt;Per quanto concerne &lt;em&gt;IsReusable&lt;/em&gt;, non dovendo memorizzare nulla tra una richiesta e l’altra,  il codice è semplicemente:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsReusable
{
    get
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font color="#393925" size="3" face="Georgia"&gt;Mentre, per il metodo &lt;em&gt;ProcessRequest(…) &lt;/em&gt;abbiamo :&lt;em&gt; &lt;/em&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ProcessRequest(HttpContext context)
{
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (context.IsWebSocketRequest)
    {              
        context.AcceptWebSocketRequest(WebSocketRequestHandler);
    }
    &lt;span class="kwrd"&gt;else&lt;/span&gt;
    {
        context.Response.StatusCode = 400;
    }
}&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;pre class="csharpcode"&gt;&lt;font color="#393925" size="3" face="Georgia"&gt;Utilizzando la proprietà &lt;em&gt;IsWebSocketRequest&lt;/em&gt; verifichiamo che la richiesta entrante sia una richiesta &lt;em&gt;WebSocket&lt;/em&gt; valida, in caso positivo &lt;/font&gt;&lt;font color="#393925" size="3" face="Georgia"&gt;demandiamo la gestione della richiesta al metodo&lt;/font&gt;&lt;font color="#393925" size="3" face="Georgia"&gt; &lt;em&gt;WebSocketRequestHandler&lt;/em&gt; così definito:&lt;/font&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; async Task WebSocketRequestHandler(WebSocketContext webSocketContext)
{
    &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[MAX_MESSAGE_SIZE];
    WebSocket webSocket = webSocketContext.WebSocket;

    &lt;span class="kwrd"&gt;while&lt;/span&gt; (webSocket.State == WebSocketState.Open)
    {
        WebSocketReceiveResult result = await webSocket.ReceiveAsync(&lt;span class="kwrd"&gt;new&lt;/span&gt; ArraySegment&amp;lt;&lt;span class="kwrd"&gt;byte&lt;/span&gt;&amp;gt;(buffer), CancellationToken.None);

        &lt;span class="kwrd"&gt;switch&lt;/span&gt; (result.MessageType)
        {
            &lt;span class="kwrd"&gt;case&lt;/span&gt; WebSocketMessageType.Close:
                await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, &lt;span class="str"&gt;"Closed."&lt;/span&gt;, CancellationToken.None);
                &lt;span class="kwrd"&gt;break&lt;/span&gt;;
            &lt;span class="kwrd"&gt;case&lt;/span&gt; WebSocketMessageType.Binary:
                await webSocket.CloseAsync(WebSocketCloseStatus.InvalidMessageType, &lt;span class="str"&gt;"Not supported."&lt;/span&gt;, CancellationToken.None);
                &lt;span class="kwrd"&gt;break&lt;/span&gt;;
            &lt;span class="kwrd"&gt;case&lt;/span&gt; WebSocketMessageType.Text:
                &lt;span class="kwrd"&gt;int&lt;/span&gt; count = result.Count;

                &lt;span class="kwrd"&gt;while&lt;/span&gt; (result.EndOfMessage == &lt;span class="kwrd"&gt;false&lt;/span&gt;)
                {
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (count &amp;gt;= MAX_MESSAGE_SIZE)
                    {
                        &lt;span class="kwrd"&gt;string&lt;/span&gt; closeMessage = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"Maximum message size: {0} bytes."&lt;/span&gt;, MAX_MESSAGE_SIZE);
                        await webSocket.CloseAsync(WebSocketCloseStatus.MessageTooBig, closeMessage, CancellationToken.None);
                        &lt;span class="kwrd"&gt;return&lt;/span&gt;;
                    }

                    result = await webSocket.ReceiveAsync(&lt;span class="kwrd"&gt;new&lt;/span&gt; ArraySegment&amp;lt;&lt;span class="kwrd"&gt;byte&lt;/span&gt;&amp;gt;(buffer, count, buffer.Length), CancellationToken.None);
                    count += result.Count;
                }

                &lt;span class="kwrd"&gt;string&lt;/span&gt; receivedMessage = Encoding.UTF8.GetString(buffer, 0, count);
                &lt;span class="kwrd"&gt;string&lt;/span&gt; outputMessage = &lt;span class="str"&gt;"Text Length: "&lt;/span&gt; + receivedMessage.Length;

                await webSocket.SendAsync(&lt;span class="kwrd"&gt;new&lt;/span&gt; ArraySegment&amp;lt;&lt;span class="kwrd"&gt;byte&lt;/span&gt;&amp;gt;(Encoding.UTF8.GetBytes(outputMessage)), WebSocketMessageType.Text, &lt;span class="kwrd"&gt;true&lt;/span&gt;, CancellationToken.None);

                &lt;span class="kwrd"&gt;break&lt;/span&gt;;
        }
    }
}&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;In dettaglio, quando invochiamo il metodo &lt;em&gt;WebSocketRequestHandler&lt;/em&gt;, ASP.NET passa un’istanza della classe &lt;a href="http://msdn.microsoft.com/it-it/library/system.net.websockets.websocketcontext.aspx" target="_blank"&gt;WebSocketContext&lt;/a&gt; contenente informazioni quali l’URI utilizzato per stabilire la connessione (compresi i parametri della &lt;em&gt;Query String&lt;/em&gt;) e la collezione dei &lt;em&gt;cookies&lt;/em&gt; inviati. Per accedere ai metodi per la ricezione e l’invio dei dati è necessario accedere alla proprietà &lt;em&gt;WebSocket&lt;/em&gt; . A questo punto, utilizziamo la proprietà &lt;em&gt;State&lt;/em&gt; per verificare lo stato della connessione, rimanendo “in ciclo” finché la connessione rimane aperta. Per ricevere i dati utilizziamo il metodo &lt;em&gt;ReceiveAsync&lt;/em&gt; che accetta due parametri: un &lt;a href="http://msdn.microsoft.com/it-it/library/1hsbd92d.aspx" target="_blank"&gt;ArraySegment&lt;/a&gt; in cui scrivere i dati ricevuti (&lt;em&gt;buffer&lt;/em&gt;) ed un &lt;em&gt;Cancellation Token, &lt;/em&gt;nel nostro caso &lt;em&gt;CancellationToken.None&lt;/em&gt;. Il metodo ritorna un’istanza di &lt;a href="http://msdn.microsoft.com/it-it/library/system.net.websockets.websocketreceiveresult.aspx" target="_blank"&gt;WebSocketReceiveResult&lt;/a&gt;  che rappresenta il risultato di una singola operazione &lt;em&gt;ReceiveAsync&lt;/em&gt;. Tramite la proprietà &lt;em&gt;MessageType&lt;/em&gt; della classe risultato verifichiamo il tipo di messaggio:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;em&gt;Close: &lt;/em&gt;è stato inviato un &lt;em&gt;close frame &lt;/em&gt;(vedi prima parte). A questo punto il server partecipa &lt;em&gt;all’handshake&lt;/em&gt; di chiusura utilizzando il metodo &lt;em&gt;CloseAsync. &lt;/em&gt;Trattandosi di una normale chiusura, ci limitiamo ad utilizzare la voce &lt;em&gt;Normal &lt;/em&gt;dell’enumerativo &lt;em&gt;WebSocketCloseStatus.&lt;/em&gt; &lt;/li&gt;

  &lt;li&gt;&lt;em&gt;Binary:&lt;/em&gt; non supportato dalla nostra applicazione, pertanto iniziamo il processo di chiusura della connessione e specifichiamo al client che il tipo dati inviato non è supportato (utilizziamo l’apposito valore dell’enumerativo). &lt;/li&gt;

  &lt;li&gt;&lt;em&gt;Text: &lt;/em&gt;tramite la proprietà &lt;em&gt;EndOfMessage&lt;/em&gt;, entriamo in un &lt;em&gt;loop&lt;/em&gt; finché non abbiamo letto il contenuto dell’intero del messaggio (o non si raggiunge la dimensione massima del messaggio). Una volta ricevuto il messaggio, utilizzando &lt;em&gt;l’encoding&lt;/em&gt; opportuno (UTF8, per formati diversi è necessario  utilizzare il formato binario) “leggiamo” la stringa ed inviamo un testo con l’indicazione della lunghezza della stringa ricevuta tramite il metodo &lt;em&gt;SensAsync.&lt;/em&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Il terzo ed ultimo post della serie dedicato alla “costruzione della lavagna” condivisa tra client Web/Windows utilizzando i WebSocket e l’oggetto HTML &lt;em&gt;canvas&lt;/em&gt;.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101209.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/10/asp.net-4.5-e-websocket-real-time-e-two-way-parte-2.aspx</guid>
            <pubDate>Mon, 10 Sep 2012 23:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/09/10/asp.net-4.5-e-websocket-real-time-e-two-way-parte-2.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101209.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101209.aspx</trackback:ping>
        </item>
        <item>
            <title>DomusDotNet: ASP.NET Web API (Parte1)</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/07/05/domusdotnet-asp.net-web-api-parte1.aspx</link>
            <description>&lt;p&gt;Prima parte della serie dedicata ad ASP.NET Web API. Codice sorgente ed articolo completo su &lt;a href="http://www.domusdotnet.org/articoli/aspnet-web-api.aspx" target="_blank"&gt;DomusDotNet&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/101088.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/07/05/domusdotnet-asp.net-web-api-parte1.aspx</guid>
            <pubDate>Thu, 05 Jul 2012 08:12:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/07/05/domusdotnet-asp.net-web-api-parte1.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/101088.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/101088.aspx</trackback:ping>
        </item>
        <item>
            <title>Nuovo blog di MSDN&amp;hellip;</title>
            <link>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2011/08/17/nuovo-blog-di-msdnhellip.aspx</link>
            <description>&lt;p&gt;…per seguire tutte le novità su Windows 8: &lt;a href="http://blogs.msdn.com/b/b8/" target="_blank"&gt;Building Windows 8&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/100270.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Pietro Libro</dc:creator>
            <guid>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2011/08/17/nuovo-blog-di-msdnhellip.aspx</guid>
            <pubDate>Wed, 17 Aug 2011 07:22:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2011/08/17/nuovo-blog-di-msdnhellip.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/100270.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/100270.aspx</trackback:ping>
        </item>
    </channel>
</rss>