﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>DotNetToscana News</title><link>http://www.dotnettoscana.org/</link><description>Resta sempre in contatto con le news di DotNetToscana</description><language>it-IT</language><managingEditor>staff@dotnettoscana.org</managingEditor><category>.NET User Group News</category><item><guid isPermaLink="true">http://www.dotnettoscana.org/sviluppare-a-360-con-visual-studio-2015.aspx</guid><link>http://www.dotnettoscana.org/sviluppare-a-360-con-visual-studio-2015.aspx</link><category>Evento</category><title>[Evento] Sviluppare a 360° con Visual Studio 2015</title><description>&lt;p&gt;Lunedì 21 Settembre 2015&lt;/p&gt;&lt;p&gt;
&lt;p&gt;Visual Studio 2015 è l'ambiente di sviluppo ideale per realizzare soluzioni destinate all'ecosistema Microsoft, ma non solo: dal desktop allo smartphone, passando per tablet, Web e IoT, abbiamo a disposizione soluzioni altamente integrate per gestire tutto il ciclo di vita di un'applicazione. Partendo dalla fase di analisi fino al deploy sui dispositivi piuttosto che su Azure, senza dimenticare i sistemi di controlli del codice sorgente, con Visual Studio 2015 abbiamo sempre un compagno di lavoro impareggiabile.&lt;/p&gt;
&lt;p&gt;In questo evento presenteremo le principali novità dell'ambiente di sviluppo (come i nuovi Breakpoint Settings, il debug delle lamba expression, i Diagnostic Tools, Code Analisys &amp;amp; Fix, ecc.) e illustreremo i nuovi costrutti dei linguaggi C# e VB.NET. Vedremo quindi come sfruttare tutti gli strumenti a disposizione nei più comuni scenari di sviluppo (Universal Windows Platform, Web, soluzioni Cross-Platform).&lt;/p&gt;
&lt;h4 data-content="description" data-description-type="html"&gt;&lt;a href="http://1drv.ms/1VbRsQu" target="_blank"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/h4&gt;
&lt;h4 style="margin-top: 10px;" data-content="description" data-description-type="html"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/h4&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://1drv.ms/1VbRsQu" target="_blank"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/p&gt;</description><pubDate>Thu, 24 Sep 2015 07:48:45 +0200</pubDate><a10:newsReferenceDate>21/09/2015 9:30</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/integrare-visual-studio-online-rest-api-service-hooks.aspx</guid><link>http://www.dotnettoscana.org/integrare-visual-studio-online-rest-api-service-hooks.aspx</link><category>Evento</category><title>[Evento] Integrare Visual Studio Online: Rest API &amp; Service Hooks</title><description>&lt;p&gt;Lunedì 17 Settembre 2015&lt;/p&gt;&lt;p&gt;
&lt;p style="text-align: justify;"&gt;Visual Studio Online, al pari della sua versione on-premise Team Foundation Server, fornisce moltissime funzionalità già incluse. Spesso, però, in scenari complessi la gestione del ciclo di vita del software richiede delle integrazioni con applicazioni o servizi esterni.&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;Ad esempio, potrebbe essere utile aggiungere un nuovo Work Item ad un nostro Team Project in modo automatico, magari in risposta ad un determinato evento. Oppure essere notificati dell’avverarsi di determinate condizioni (penso ad esempio ad una Build andata male). O ancora poter controllare il nostro account VSO tramite device mobili.&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;In questo webcast vedremo come poter integrare ed estendere Visual Studio Online grazie alle nuove funzionalità introdotte: le REST API ed i Service Hooks.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Iscrizione:&lt;/strong&gt;&lt;/h4&gt;
&lt;p style="text-align: justify;"&gt; &lt;/p&gt;
&lt;/p&gt;</description><pubDate>Thu, 10 Sep 2015 10:02:38 +0200</pubDate><a10:newsReferenceDate>17/09/2015 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/microsoft-mobile-camp-pisa-giugno-2015.aspx</guid><link>http://www.dotnettoscana.org/microsoft-mobile-camp-pisa-giugno-2015.aspx</link><category>Evento</category><title>[Evento] Microsoft Mobile Camp Pisa - Giugno 2015</title><description>&lt;p&gt;Lunedì 29 Giugno 2015&lt;/p&gt;&lt;p&gt;
&lt;p&gt;Durante l'evento verranno illustrate le novità di Windows 10, un sistema operativo che permette allo sviluppatore di realizzare app in grado di funzionare su diversi dispositivi: PC, Tablet, telefoni, XBox e molto altro. Verranno inoltre presentate, da un punto di vista tecnico, le novità legate alle diverse modalità di sviluppo di queste applicazioni.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://1drv.ms/1GNFl51" target="_blank"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/mobile-camp-pisa-giugno-2015-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 02 Jul 2015 22:36:47 +0200</pubDate><a10:newsReferenceDate>29/06/2015 9:30</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/cloud-load-testing-con-visual-studio-online.aspx</guid><link>http://www.dotnettoscana.org/cloud-load-testing-con-visual-studio-online.aspx</link><category>Evento</category><title>[Evento] Cloud Load Testing con Visual Studio Online</title><description>&lt;p&gt;Lunedì 4 Maggio 2015&lt;/p&gt;&lt;p&gt;
&lt;p style="text-align: justify;"&gt;Grazie a Visual Studio Online è possibile eseguire dei test di carico sulle nostre applicazioni per verificare la presenza di problemi di prestazioni all'aumento di carico. Finora per creare questo carico era necessario utilizzare risorse e configurare un proprio lab di test, con VSO invece si può utilizzare il test di carico basato su cloud per fornire macchine virtuali in grado di generare il carico di un numero elevato di utenti che accedono contemporaneamente alla propria applicazione.&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;Vediamo come creare questi test, come eseguirli e quali informazioni possiamo ricavare dagli esiti e dai risultati ottenuti.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;p style="text-align: justify;"&gt; &lt;/p&gt;
&lt;/p&gt;</description><pubDate>Mon, 11 May 2015 05:18:23 +0200</pubDate><a10:newsReferenceDate>02/02/2015 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/continuous-integration-con-visual-studio-online.aspx</guid><link>http://www.dotnettoscana.org/continuous-integration-con-visual-studio-online.aspx</link><category>Evento</category><title>[Evento] Continuous Integration con Visual Studio Online</title><description>&lt;p&gt;Lunedì 13 Aprile 2015&lt;/p&gt;&lt;p&gt;
&lt;p style="text-align: justify;"&gt;Più velocemente il nostro software viene deployato, più velocemente possiamo renderlo disponibile ai nostri clienti ed avere feedback a riguardo.&lt;/p&gt;
&lt;p&gt;Vedremo come deployare in modo semplice una nostra applicazione (anche sul cloud di Microsoft Azure) utilizzando gli strumenti che Visual Studio e Visual Studio Online ci mettono a disposizione.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h4 style="text-align: justify;"&gt;&lt;strong&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;p style="text-align: justify;"&gt; &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/GYweCkieztE?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Tue, 14 Apr 2015 07:21:58 +0200</pubDate><a10:newsReferenceDate>02/02/2015 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/gestione-del-codice-sorgente-con-visual-studio-online.aspx</guid><link>http://www.dotnettoscana.org/gestione-del-codice-sorgente-con-visual-studio-online.aspx</link><category>Evento</category><title>[Evento] Gestione del codice sorgente con Visual Studio Online</title><description>&lt;p&gt;Lunedì 2 Marzo 2015&lt;/p&gt;&lt;p&gt;
&lt;p style="text-align: justify;"&gt;Quando si sviluppa ci sono delle domande ricorrenti che vengono poste e che, spesso, vengono "risolte" con metodi anche piuttosto "fantasiosi":&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dove salvo i miei sorgenti? &lt;/li&gt;
&lt;li&gt;Come faccio a condividere in modo efficace ed efficiente il codice con gli altri? &lt;/li&gt;
&lt;li&gt;Come posso essere sicuro che anche in caso di problemi non perda nulla di quello che ho fatto? &lt;/li&gt;
&lt;li&gt;Posso sapere chi ha fatto cosa, quando e perchè?&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-content="description" data-description-type="html"&gt;Vediamo di rispondere a queste ed a molte altre domande riguardo la gestione del codice sorgente, utilizzando gli strumenti di Source Control e Version Control che ci mette a disposizione la suite di Visual Studio Online.&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h4 style="text-align: justify;"&gt;&lt;strong&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;p style="text-align: justify;"&gt; &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;Vediamo di rispondere a queste ed a molte altre domande riguardo la gestione del codice sorgente, utilizzando gli strumenti di Source Control e Version Control che ci mette a disposizione la suite di Visual Studio Online.&lt;/p&gt;&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/L31bigKW0nA?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Tue, 03 Mar 2015 08:43:23 +0100</pubDate><a10:newsReferenceDate>02/02/2015 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/introduzione-a-visual-studio-online.aspx</guid><link>http://www.dotnettoscana.org/introduzione-a-visual-studio-online.aspx</link><category>Evento</category><title>[Evento] Introduzione a Visual Studio Online</title><description>&lt;p&gt;Lunedì 2 Febbraio 2015&lt;/p&gt;&lt;p&gt;
&lt;p style="text-align: justify;"&gt;Visual Studio Online è uno strumento che fornisce molte funzionalità per l'ALM (Application Lifecycle management) e ad ogni release diventa sempre più completo, funzionale e davvero utile. Si tratta di una piattaforma completa e gratuita di strumenti per lo sviluppo e servizi utili per creare applicazioni multi-piattaforma, progettata per soddisfare i più alti requistiti a livello di disponibilità, scalabilità e complessità di sviluppo.&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;In questo webcast introduttivo, primo di una serie, vedremo quali sono le caratteristiche di questo strumento, impareremo come utilizzarlo per gestire il lavoro di ogni giorno e prenderemo confidenza con le sue funzionalità. Andremo infine alla scoperta delle nuove feature aggiunte alla suite.&lt;/p&gt;
&lt;h4 style="text-align: justify;"&gt;&lt;strong&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;p style="text-align: justify;"&gt; &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/CL0Krfkvzqc?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Tue, 03 Feb 2015 11:50:08 +0100</pubDate><a10:newsReferenceDate>02/02/2015 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/analizzare-le-performance-di-unapplicazione-aspnet-con-glimpse.aspx</guid><link>http://www.dotnettoscana.org/analizzare-le-performance-di-unapplicazione-aspnet-con-glimpse.aspx</link><category>Evento</category><title>[Evento] Webcast: Analizzare le performance di un'applicazione ASP.NET con Glimpse</title><description>&lt;p&gt;Lunedì 26 Gennaio 2015&lt;/p&gt;&lt;p&gt;
&lt;p&gt;In questo webcast mostreremo come  analizzare le performance del nostro sito ASP.NET utilizzando Glimpse. Una volta installato nel nostro progetto, Glimpse analizza tutte le chiamate Http che vengono eseguite durante la navigazione del sito visualizzando graficamente le varie operazioni che vengono eseguite sul server per verificare eventuali funzioni lente o ridondanti. Inoltre è possibile analizzare le query che vengono eseguite sul database con i vari tempi di esecuzione e i parametri che vengono passati. Insieme a Fiddler e la Developer Toolbar va a completare il toolkit di debug a supporto dello sviluppatore, senza bisogno di installare plugin sul browser. &lt;/p&gt;
&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/2rxjIvOez-4?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Tue, 03 Feb 2015 11:47:13 +0100</pubDate><a10:newsReferenceDate>26/01/2015 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/real-solutions-day.aspx</guid><link>http://www.dotnettoscana.org/real-solutions-day.aspx</link><category>Evento</category><title>[Evento] Real Solutions Day</title><description>&lt;p&gt;Lunedì 15 Dicembre 2014&lt;/p&gt;&lt;p&gt;
&lt;p&gt;Un evento che ha l'obiettivo di mostrare come sfruttare le diverse parti dell'ecosistema Microsoft per realizzare un prodotto completo, partendo dall'analisi fino alla pubblicazione. Discuteremo le scelte architetturali e progettuali che devono essere affrontate per trasformare questa idea in qualcosa di "vendibile". Il tutto dal punto di vista di noi Dev, quindi dando ampio spazio al codice.&lt;/p&gt;
&lt;p&gt;In particolare, mostreremo una soluzione che sfrutta Azure come strumento di content delivery attraverso i Media Services. Creeremo una serie di servizi sul cloud che si appoggiano a questi contenuti, e quindi applicazioni Web e mobile che vi accedono. L'idea è costruire il sistema nel corso di tutta la giornata, facendo in modo che ogni sessione sfrutti quello che è stato mostrato in quella precedente. Quindi un filo conduttore che lega strettamente tutti gli interventi, ciascuno dei quali affronta una parte del problema iniziale, avvicinandosi sempre di più alla soluzione finale. &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/real-solutions-day-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Dec 2014 10:42:50 +0100</pubDate><a10:newsReferenceDate>15/12/2014 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/abc-azure-best-contents.aspx</guid><link>http://www.dotnettoscana.org/abc-azure-best-contents.aspx</link><category>Evento</category><title>[Evento] ABC... Azure Best Contents</title><description>&lt;p&gt;Giovedì 9 Ottobre 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Microsoft Azure sta conoscendo una crescita inarrestabile, con aggiornamenti e nuove feature che si susseguono di rilascio in rilascio. Nel corso di questo evento affronteremo tematiche tecniche concrete: dalle novità dei Mobile Services all'approccio NoSQL di DocumentDB, dal nuovo servizio di Search all'utilizzo di cache con Redis. Mostreremo come districarsi fra il ricco ventaglio di funzionalità per capire quali fra gli strumenti offerti è il più adatto per ogni determinato contesto.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/abc-azure-best-contents-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 27 Oct 2014 14:10:08 +0100</pubDate><a10:newsReferenceDate>09/10/2014 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-tutto-su-aspnet-identity.aspx</guid><link>http://www.dotnettoscana.org/webcast-tutto-su-aspnet-identity.aspx</link><category>Evento</category><title>[Evento] Webcast: Tutto su ASP.NET Identity</title><description>&lt;p&gt;Lunedì 15 Settembre 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt;ASP.NET Identity è arrivato alla seconda release con tante novità. In questo webcast analizzeremo le nuove funzionalità fornite dal Framework di autenticazione. Una sessione pratica per affrontare argomenti come two-factor authentication via SMS o email, account lockout &amp;amp; confirmation, gestione dei ruoli. Infine, realizzeremo anche un provider di autenticazione custom basato su MySQL.&lt;/p&gt;
&lt;p style="margin: 0in; font-family: Calibri; font-size: 11pt;"&gt; &lt;/p&gt;
&lt;h4&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/tC1WyKnHlxM?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Tue, 14 Oct 2014 08:58:41 +0200</pubDate><a10:newsReferenceDate>19/06/2014 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-advanced-algorithms-2.aspx</guid><link>http://www.dotnettoscana.org/webcast-advanced-algorithms-2.aspx</link><category>Evento</category><title>[Evento] Webcast: Advanced Algorithms #2 - Radix Sort</title><description>&lt;p&gt;Lunedì 30 Giugno 2014&lt;/p&gt;&lt;p&gt;
&lt;p&gt;La maggioranza degli sviluppatori conosce i classici algoritmi di ordinamento basati su confronto come Insertion Sort, Quick Sort, Merge Sort e Heap Sort. Tuttavia pochi sanno che esistono anche algoritmi di ordinamento che non sono basati su confronto (Index Counting, Radix Sort) ma che sono incredibilmente piu' efficienti del Sort di sistema su particolari tipi di dato come interi e stringhe. &lt;/p&gt;
&lt;p&gt;In questo secondo webcast, scriveremo insieme partendo da zero alcuni di questi algortmi e analizzeremo le loro performance.&lt;/p&gt;
&lt;h4&gt;&lt;span style="font-family: arial, sans-serif; font-size: 16px;"&gt;&lt;br&gt;Descrizione della Serie&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Se sei un programmatore, scrivi codice per risolvere problemi! Nel 99% dei casi, riesci a trovare una soluzione e le performance soddisfano i requisiti.&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ma cosa fai quanto ti trovi di fronte ad un problema complesso?&lt;br&gt;&lt;/strong&gt;Cosa fai se non riesci a trovare una soluzione abbastanza veloce? &lt;br&gt;Ti arrendi dicendo "Non ho abbastanza competenze algoritmiche"?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Non sei stufo? Non hai voglia di colmare queste lacune?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Questa serie di WebCast ha l'obiettivo ambizioso di aiutarti a &lt;strong&gt;costruire competenze algoritmiche avanzate&lt;/strong&gt; e &lt;strong&gt;farti diventare un Top Coder&lt;/strong&gt;! In ogni lezione, risolveremo insieme un problema complesso per maturare nel tempo un arsenale di tecniche che potrai riutilizzare nell'affrontare qualunque tipo di problema.&lt;/p&gt;
&lt;p&gt;Scriveremo algoritmi che spesso non sono neanche affrontati in corsi universitari come Depth First Search, Breath First Search, Convex Hull, Kd-Trees, Max Flow, Radix Sort, Suffix Array ecc.&lt;/p&gt;
&lt;p&gt;Buon divertimento :)&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Tue, 14 Oct 2014 08:58:27 +0200</pubDate><a10:newsReferenceDate>24/06/2014 17:30</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-sviluppare-azure-mobile-services-con-net.aspx</guid><link>http://www.dotnettoscana.org/webcast-sviluppare-azure-mobile-services-con-net.aspx</link><category>Evento</category><title>[Evento] Webcast: Sviluppare Azure Mobile Services con .NET</title><description>&lt;p&gt;Giovedì 19 Giugno 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Non più solo Node.js: gli Azure Mobile Services permettono finalmente l'utilizzo di .NET come linguaggio per sviluppare il backend del servizio. Nel corso del webcast mostreremo gli strumenti che abbiamo a disposizione per creare questo tipo di servizi, quali sono le loro caratteristiche e come sfruttare alcuni scenari avanzati, dall'utilizzo della Dependency Injection al debug remoto.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://www.dotnettoscana.org/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="http://www.dotnettoscana.org/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/SrFmVDaikYg?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Mon, 23 Jun 2014 10:27:36 +0200</pubDate><a10:newsReferenceDate>19/06/2014 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/alm-deep-dive-with-tfs-2013.aspx</guid><link>http://www.dotnettoscana.org/alm-deep-dive-with-tfs-2013.aspx</link><category>Evento</category><title>[Evento] ALM Deep dive with TFS 2013</title><description>&lt;p&gt;Venerdì 30 Maggio 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p style="text-align: justify;"&gt;&lt;span&gt;Applicare metodologie di Application Lifecycle Management significa gestire il ciclo di vita delle applicazioni in modo predicibile, ripetibile, agile, consistente, semplice e con qualità. Microsoft da parecchi anni fornisce delle soluzioni software per l'ALM, ma mai si era arrivati ad avere prodotti completamente integrati per tutte le fasi dell'ALM come con la versione 2013 di Team Foundation Server e Visual Studio Online.  &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;DotNetToscana dedica un'intera giornata all'argomento: analizzeremo le nuove funzionalità offerte e mostreremo come realizzare, on-premises e on-cloud, un sistema di gestione completo. Vedremo inoltre come utilizzare gli strumenti a disposizione per fornire soluzioni di Continuos Integration e Continuos Delivery ed infine scoprire come è semplice poter sviluppare applicazioni, anche mobile, che si interfacciano con le API del nostro TFS.  &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/alm-deep-dive-with-tfs-2013-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 05 Jun 2014 07:31:33 +0200</pubDate><a10:newsReferenceDate>30/05/2014 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-creare-app-per-office-365-e-sharepoint-2013-con-aspnet-mvc-5.aspx</guid><link>http://www.dotnettoscana.org/webcast-creare-app-per-office-365-e-sharepoint-2013-con-aspnet-mvc-5.aspx</link><category>Evento</category><title>[Evento] Creare App per Office 365 e SharePoint 2013 con ASP.NET MVC 5</title><description>&lt;p&gt;Lunedì 28 Aprile 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;In questo Webcast organizzato da DotNetToscana ci occuperemo del nuovo “App-Model” introdotto dalla nuova versione di Office 365 e da SharePoint 2013. Dopo un’introduzione sulle particolarità del modello e sulle tecniche di base, mostreremo com’è possibile sfruttare le nostre conoscenze di ASP.NET MVC 5 e SQL Azure, per scrivere un’App che interagisca con i servizi e i contenuti offerti da SharePoint e che funzioni sul Cloud ed on-premises.&lt;/p&gt;
&lt;p&gt;Per l'occasione avremo un ospite di eccezione: Giuseppe Marchi (SharePoint MVP)&lt;/p&gt;
&lt;h3&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; border-image: none; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/rU6lJ_wlZEQ?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agenda:&lt;/strong&gt;&lt;/p&gt;
&lt;table style="border-color: black; text-align: center;" border="1" cellspacing="1" cellpadding="5"&gt;
&lt;tbody&gt;
&lt;tr style="background-color: #eceeed;"&gt;&lt;th width="100"&gt;Ora&lt;/th&gt;&lt;th style="text-align: justify;"&gt;Sessione&lt;/th&gt;&lt;th width="150"&gt;Speaker&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p align="center"&gt;17:00 - 18:00&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p align="left"&gt;&lt;strong&gt;Creare App per Office 365 e SharePoint 2013 con ASP.NET MVC 5&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p align="center"&gt;Emanuele Bartolesi&lt;br&gt;&amp;amp;&lt;br&gt;Giuseppe Marchi [MVP]&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt; &lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Giuseppe Marchi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nato a Pesaro nel maggio del 1983, Peppe è uno dei fondatori di Dev4Side S.r.l. (&lt;a href="http://www.dev4side.com/"&gt;&lt;span style="color: #0066cc;"&gt;www.dev4side.com&lt;/span&gt;&lt;/a&gt;) società partner Microsoft di sviluppo software con sede a Milano, dove svolge attività di gestione progettuale, sviluppo e formazione sulle principali tecnologie Microsoft.&lt;br&gt;Ha una laurea in Comunicazione Digitale ed una in Tecnologie dell’Informazione e della Comunicazione, conseguite presso l’Università di Milano.&lt;br&gt;Ha scritto, come co-autore, il libro “Pocket C#” edito da Apogeo, articoli per riviste specializzate e articoli on-line sul .NET Framework e SharePoint per alcune delle community italiane di sviluppo su piattaforma Microsoft. &lt;br&gt;Dalla sua nascita, è membro attivito e promotore della community italiana &lt;a href="http://www.sharepointcommunity.it/"&gt;&lt;span style="color: #0066cc;"&gt;www.sharepointcommunity.it&lt;/span&gt;&lt;/a&gt;, per la quale scrive articoli tecnici e partecipa ad eventi in qualità di speaker.&lt;br&gt;Da 4 anni è Microsoft MVP sulla categoria SharePoint Server, per il suo attivo contributo per la community italiana di sviluppatori SharePoint.&lt;br&gt;Assieme a tutto ciò, cresce e cura con passione il suo sito personale &lt;a href="http://www.peppedotnet.it/"&gt;&lt;span style="color: #0066cc;"&gt;www.peppedotnet.it&lt;/span&gt;&lt;/a&gt; arricchendolo di articoli e contenuti tecnici su SharePoint, cercando sempre di lasciare un pò di spazio per la famiglia, gli amici e il calcio.&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Mon, 05 May 2014 09:28:49 +0200</pubDate><a10:newsReferenceDate>24/04/2014 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-advanced-algorithms-1.aspx</guid><link>http://www.dotnettoscana.org/webcast-advanced-algorithms-1.aspx</link><category>Evento</category><title>[Evento] Webcast: Advanced Algorithms #1 - Union/Find on Disjoint-set Data Structures</title><description>&lt;p&gt;Lunedì 24 Marzo 2014&lt;/p&gt;&lt;p&gt;
&lt;p&gt;Il problema che affronteremo in questo primo webcast e' quello di costruire una struttura dati (&lt;strong&gt;disjoint-set&lt;/strong&gt;) in grado di eseguire in modo efficiente le seguenti due operazioni su un insieme di elementi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connettere due elementi tra di loro (&lt;strong&gt;Union&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;Dire se due elementi sono connessi (&lt;strong&gt;Find&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Scriveremo insieme partendo da zero diversi algoritmi e misureremo come scalano al crescere della dimensione del problema per concludere mostrando una applicazione pratica nel contesto della computer graphics.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;h3&gt; &lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; border-image: none; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;iframe src="//www.youtube.com/embed/vDotBqwa0AE?rel=0" width="420" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span style="font-family: arial, sans-serif; font-size: 16px;"&gt;&lt;br&gt;Descrizione della Serie&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Se sei un programmatore, scrivi codice per risolvere problemi! Nel 99% dei casi, riesci a trovare una soluzione e le performance soddisfano i requisiti.&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ma cosa fai quanto ti trovi di fronte ad un problema complesso?&lt;br&gt;&lt;/strong&gt;Cosa fai se non riesci a trovare una soluzione abbastanza veloce? &lt;br&gt;Ti arrendi dicendo "Non ho abbastanza competenze algoritmiche"?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Non sei stufo? Non hai voglia di colmare queste lacune?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Questa serie di WebCast ha l'obiettivo ambizioso di aiutarti a &lt;strong&gt;costruire competenze algoritmiche avanzate&lt;/strong&gt; e &lt;strong&gt;farti diventare un Top Coder&lt;/strong&gt;! In ogni lezione, risolveremo insieme un problema complesso per maturare nel tempo un arsenale di tecniche che potrai riutilizzare nell'affrontare qualunque tipo di problema.&lt;/p&gt;
&lt;p&gt;Scriveremo algoritmi che spesso non sono neanche affrontati in corsi universitari come Depth First Search, Breath First Search, Convex Hull, Kd-Trees, Max Flow, Radix Sort, Suffix Array ecc.&lt;/p&gt;
&lt;p&gt;Buon divertimento :)&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Sat, 29 Mar 2014 23:56:31 +0100</pubDate><a10:newsReferenceDate>24/03/2014 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-fare-soldi-con-le-app-guida-pratica-allin-app-purchase-con-windows-phone-8.aspx</guid><link>http://www.dotnettoscana.org/webcast-fare-soldi-con-le-app-guida-pratica-allin-app-purchase-con-windows-phone-8.aspx</link><category>Evento</category><title>[Evento] Webcast - Fare soldi con le app: guida pratica all'In-App Purchase con Windows Phone 8</title><description>&lt;p&gt;Lunedì 17 Marzo 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;In questo Webcast organizzato da DotNetToscana ci occuperemo di In-App Purchase in Windows Phone 8: mostreremo con un esempio pratico i passaggi necessari per creare prodotti che possono essere acquistati come pacchetti aggiuntivi alla nostra app, sia in versione "consumable" (crediti di gioco, vite aggiuntive, carburante, ecc.) sia in versione "durable" (livelli gioco aggiuntivi, armi speciali, temi, ecc.).&lt;br&gt;Vedremo quindi come utilizzare questa feature di Windows Phone 8 per aumentare le vendite derivanti dalle app.&lt;/p&gt;
&lt;/p&gt;</description><pubDate>Wed, 19 Mar 2014 14:21:45 +0100</pubDate><a10:newsReferenceDate>17/03/2014 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/webcast-webapi-20-costruire-e-utilizzare-servizi-per-le-app.aspx</guid><link>http://www.dotnettoscana.org/webcast-webapi-20-costruire-e-utilizzare-servizi-per-le-app.aspx</link><category>Evento</category><title>[Evento] Webcast: WebAPI 2.0 - costruire e utilizzare servizi per le app</title><description>&lt;p&gt;Lunedì 3 Febbraio 2014&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Nel primo Webcast organizzato da DotNetToscana, ci occuperemo di WebAPI 2.0: mostreremo come creare servizi Web, partendo dalle caratteristiche più comuni fino alle funzionalità avanzate, illustreremo alcuni scenari tipici e analizzeremo i problemi che bisogna affrontare durante la progettazione. Vedremo quindi come utilizzare questi servizi nelle nostre app, sviluppando codice riutilizzabile sulle diverse piattaforme, così da massimizzare la produttività.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 24 Feb 2014 09:30:52 +0100</pubDate><a10:newsReferenceDate>03/02/2014 17:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/to-the-web-and-beyond-with-visual-studio-2013.aspx</guid><link>http://www.dotnettoscana.org/to-the-web-and-beyond-with-visual-studio-2013.aspx</link><category>Evento</category><title>[Evento] To the Web and Beyond with Visual Studio 2013</title><description>&lt;p&gt;Lunedì 16 Dicembre 2013&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Le novità di ASP .NET (e non solo) introdotte con Visual Studio 2013 rendono sempre più interessante lo sviluppo di applicazioni Web: MVC 5, WebAPI 2.0 e SingalR 2.0 ci permettono di realizzare applicazioni sempre più moderne e ricche di funzionalità. Nel corso della giornata mostreremo tutti i nuovi scenari che abbiamo a disposizione sfruttando le caratteristiche di Visual Studio 2013 rivolte al mondo Web. Ma faremo anche un passo più in là, illustrando come questi strumenti possano essere integrati persino nelle nostre applicazioni client, per arricchirle di funzionalità.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dotnettoscana.org/to-the-web-and-beyond-with-visual-studio-2013-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px; border-image: none;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 20 Dec 2013 08:39:46 +0100</pubDate><a10:newsReferenceDate>16/12/2013 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/mobile-services-il-back-end-universale-per-le-tue-app.aspx</guid><link>http://www.dotnettoscana.org/mobile-services-il-back-end-universale-per-le-tue-app.aspx</link><category>Evento</category><title>[Evento] Mobile Services: il back-end universale per le tue app</title><description>&lt;p&gt;Martedì 8 Ottobre 2013&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Gli Azure Mobile Services offrono una ricca serie di strumenti grazie ai quali possiamo realizzare un back-end unico per le nostre app, siano esse Windows, Web, Windows Store, Windows Phone, iOS oppure Android. DotNetToscana dedica un'intera giornata all'argomento: analizzeremo tutte le funzionalità offerte e mostreremo come realizzare un sistema di gestione foto con autenticazione, salvataggio dei dati sul cloud e notifiche push, quindi accederemo ad esso dalle diverse piattaforme supportate, così da mostrare la grande versatilità di questa soluzione. &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; border-image: none; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/mobile-services-il-back-end-universale-per-le-tue-app-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; border-image: none; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sat, 26 Oct 2013 15:50:39 +0200</pubDate><a10:newsReferenceDate>08/10/2013 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/mvvm-lab-with-windows-8-windows-phone.aspx</guid><link>http://www.dotnettoscana.org/mvvm-lab-with-windows-8-windows-phone.aspx</link><category>Evento</category><title>[Evento] MVVM Lab with Windows 8 &amp; Windows Phone</title><description>&lt;p&gt;Sabato 15 Giugno 2013&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Il pattern Model-View-ViewModel è il compagno ideale per lo sviluppo di app Windows Store e Windows Phone. DotNetToscana dedicherà un'intera giornata a questo argomento, con un laboratorio guidato durante il quale mostreremo quando conviene adottarlo (e come) nella realizzazione delle nostre app.&lt;/p&gt;
&lt;p&gt;In serata si terrà la consueta event dinner: la community si riunirà per una cena di fine evento aperta a tutti coloro che lo desiderano (partecipanti all’evento e non e loro parenti, amici, conoscenti).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ATTENZIONE&lt;/strong&gt;: trattandosi di un laboratorio, il numero di posti disponibili è &lt;strong&gt;limitato&lt;/strong&gt;, quindi affrettati, iscriviti subito!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Requisiti software: &lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data la natura della giornata, orientata alla prova sul campo di quanto verrà illustrato, i partecipanti devono obbligatoriamente &lt;strong&gt;portare il proprio PC&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Per lo sviluppo di app su Windows 8, è necessario utilizzare Visual Studio 2012 oppure &lt;a href="http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-for-windows-8" target="_blank"&gt;Visual Studio 2012 Express for Windows 8&lt;/a&gt;. Per lavorare su Windows Phone, assicurarsi di avere installato il &lt;a href="http://developer.windowsphone.com/en-us/downloadsdk" target="_blank"&gt;Windows Phone SDK 8.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Poiché l'installazione dei requisiti software indicati può richiedere diverso tempo, ti consigliamo di preparare il tuo PC in anticipo, in modo che il giorno dell'evento tu possa essere subito pronto a scrivere codice insieme a noi!&lt;/p&gt;
&lt;h4&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/h4&gt;
&lt;h4 style="margin-top: 10px;"&gt;&lt;a href="/mvvm-lab-with-windows-8-windows-phone-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/h4&gt;
&lt;/p&gt;</description><pubDate>Tue, 06 Aug 2013 19:26:23 +0200</pubDate><a10:newsReferenceDate>15/06/2013 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/javascript-full-immersion.aspx</guid><link>http://www.dotnettoscana.org/javascript-full-immersion.aspx</link><category>Evento</category><title>[Evento] JavaScript Full Immersion</title><description>&lt;p&gt;Sabato 20 Aprile 2013&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Se nel libro dei Guinness World Records ci fosse un posto per i linguaggi di programmazione, JavaScript occuperebbe sicuramente quel posto, dato che è il linguaggio &lt;strong&gt;sviluppato nel minor tempo&lt;/strong&gt; possibile, uno dei più &lt;strong&gt;diffusi&lt;/strong&gt; al mondo, il più &lt;strong&gt;acclamato&lt;/strong&gt; ma al tempo stesso il più &lt;strong&gt;odiato&lt;/strong&gt;. Il linguaggio con il quale &lt;strong&gt;ogni sviluppatore web&lt;/strong&gt; che si rispetti &lt;strong&gt;deve avere a che fare&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DotNetToscana&lt;/strong&gt; dedica una giornata intera a questo&lt;strong&gt; incredibile linguaggio&lt;/strong&gt; e lo fa con un &lt;strong&gt;ospite d'onore&lt;/strong&gt;, direttamente dal Team del &lt;a title="V8 JavaScript Engine" href="http://code.google.com/p/v8/"&gt;V8 JavaScript Engine&lt;/a&gt; di Google, &lt;strong&gt;Massimiliano Mantione&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In serata si terrà la consueta &lt;/span&gt;&lt;strong&gt;event dinner&lt;/strong&gt;&lt;span&gt;: la community si riunirà per una &lt;/span&gt;&lt;strong&gt;cena di fine evento aperta a tutti&lt;/strong&gt;&lt;span&gt; coloro che lo desiderano (partecipanti all’evento e non e loro parenti, amici, conoscenti).&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt; &lt;/h4&gt;
&lt;/p&gt;</description><pubDate>Thu, 13 Jun 2013 07:44:30 +0200</pubDate><a10:newsReferenceDate>20/04/2013 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/windows-8-e-windows-phone-tutto-quello-che-avreste-voluto-sapere-sullaccesso-ai-dati.aspx</guid><link>http://www.dotnettoscana.org/windows-8-e-windows-phone-tutto-quello-che-avreste-voluto-sapere-sullaccesso-ai-dati.aspx</link><category>Evento</category><title>[Evento] Windows 8 e Windows Phone: tutto quello che avreste voluto sapere sull'accesso ai dati* (*e non avete mai osato chiedere)</title><description>&lt;p&gt;Sabato 18 Maggio 2013&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Le app Windows Store e Windows Phone 8 non forniscono un supporto nativo alla connessione verso i database. Come possiamo allora utilizzare una sorgente dati in queste due piattaforme? Nel corso della giornata, cercheremo di dare una risposta a questa domanda, mostrando quattro alternative che abbiamo a disposizione: servizi basati su WebAPI, Mobile Services, database locali con SQLite e SkyDrive.&lt;/p&gt;
&lt;p&gt;In serata si terrà la consueta event dinner: la community si riunirà per una cena di fine evento aperta a tutti coloro che lo desiderano (partecipanti all’evento e non e loro parenti, amici, conoscenti). &lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/windows-8-e-windows-phone-tutto-quello-che-avreste-voluto-sapere-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 21 May 2013 20:40:20 +0200</pubDate><a10:newsReferenceDate>18/05/2013 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/determinare-se-lapplicazione-%C3%A8-in-esecuzione-sotto-kids-corner.aspx</guid><link>http://www.dotnettoscana.org/determinare-se-lapplicazione-%C3%A8-in-esecuzione-sotto-kids-corner.aspx</link><category>Tip</category><title>[Tip] Determinare se l'applicazione è in esecuzione sotto Kid's corner </title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Kid's Corner (l'angolo dei bambini) è la nuova feature pensata per i più piccoli ed introdotta con Windows Phone 8. La maggior parte dei bambini è attirata dagli smartphone, e spesso agli adulti non resta altro che accontentarli scongiurando l' invio di mail o di chiamate ad amici e colleghi :D&lt;/p&gt;
&lt;p&gt;Kid's Corner permette la configurazione di una nuova pagina Start apposita per i più piccoli. In questa sezione sono visibili solamente le applicazioni, video e musica selezionate.&lt;br /&gt;  &lt;br /&gt;In questa modalità potrebbe essere opportuno semplificare la User Experience o rimuovere eventuali feature non adatte ai più piccoli. Per determinare se l'applicazione sta girando sotto Kid's Corner si usa la proprietà &lt;strong&gt;Modes&lt;/strong&gt; della classe &lt;strong&gt;ApplicationProfile&lt;/strong&gt;. Il valore deve essere confrontato con l'enumerazione &lt;strong&gt;ApplicationProfileModes&lt;/strong&gt;, che può assumere i seguenti valori&lt;/p&gt;
&lt;p&gt;• Default: l'applicazione sta girando nello scenario normale&lt;br /&gt;• Alternate: l'applicazione sta girando sotto Kid's Corner.&lt;/p&gt;
&lt;p&gt;Ecco un esempio&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;//using Windows.Phone.ApplicationModel;
 
if (ApplicationProfile.Modes == ApplicationProfileModes.Alternate)
{
   //Kid's Corner
}
&lt;/pre&gt;</description><pubDate>Thu, 25 Apr 2013 12:58:58 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/determinare-il-livello-di-batteria-residuo.aspx</guid><link>http://www.dotnettoscana.org/determinare-il-livello-di-batteria-residuo.aspx</link><category>Tip</category><title>[Tip] Determinare il livello di batteria residuo</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Con il rilascio di Windows Phone 8 è stata introdotta una API per ottenere informazioni sullo stato della batteria del device. E' possibile conoscere la percentuale e il tempo restante della batteria. La classe &lt;strong&gt;Battery&lt;/strong&gt;, facente parte del namespace &lt;strong&gt;Windows.Phone.Devices.Power&lt;/strong&gt;, espone il metodo &lt;strong&gt;GetDefault()&lt;/strong&gt; che ritorna l'istanza della batteria del device.&lt;/p&gt;
&lt;p&gt;La classe fornisce anche le seguenti proprietà:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;RemainingChargePercent, &lt;/em&gt;che restituisce la percentuale di carica restante della batteria;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;RemainingDischargeTime,&lt;/em&gt; che restituisce il tempo residuo approssimativo della batteria;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E l'evento&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;RemainingChargePercentChanged&lt;/em&gt;, che occorre ogni volta che il valore della percentuale della batteria viene decrementato del 1%.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ecco un esempio per ricavare la percentuale di carica restante della batteria e del tempo restante approssimativo:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;var percent = string.Format("{0} %", Battery.GetDefault().RemainingChargePercent);

var remainingTime = string.Format("{0} minutes", Battery.GetDefault().RemainingDischargeTime.TotalMinutes);
&lt;/pre&gt;
&lt;p&gt;Mentre, per registrare un handle per l'evento &lt;em&gt;RemainingChargePercentChanged&lt;/em&gt;, dobbiamo scrivere:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;Battery.GetDefault().RemainingChargePercentChanged += RemainingChargePercentChanged;

void RemainingChargePercentChanged(object sender, object e)
{
    // ...
}
&lt;/pre&gt;</description><pubDate>Sun, 17 Mar 2013 22:00:19 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/determinare-il-tipo-di-risoluzione-in-windows-phone-8.aspx</guid><link>http://www.dotnettoscana.org/determinare-il-tipo-di-risoluzione-in-windows-phone-8.aspx</link><category>Tip</category><title>[Tip] Determinare il tipo di risoluzione in Windows Phone 8</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Windows Phone 8 supporta device con 3 tipi di risoluzione:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WVGA 480x800 (15:9)&lt;/li&gt;
&lt;li&gt;WXGA 768x1280 (15:9)&lt;/li&gt;
&lt;li&gt;720p 720x1280 (16:9)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La risoluzione WVGA è l'unica supportata dai dispositivi con Windows Phone 7.1. Un aspetto interessante, che risalta subito, è il rapporto d'aspetto diverso tra le risoluzioni WVGA, WXGA (15:9) e la risoluzione 720p (16:9). Esistono alcuni scenari dove potrebbe essere necessario determinare il tipo di risoluzione del device. Per ottenere questa informazione si confronta la proprietà &lt;strong&gt;ScaleFactor:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;if (App.Current.Host.Content.ScaleFactor == 100)
{
	//WVGA
}
else if (App.Current.Host.Content.ScaleFactor == 160)
{
	//WXGA
}
else if (App.Current.Host.Content.ScaleFactor == 150)
{
	//720p
}
&lt;/pre&gt;</description><pubDate>Tue, 19 Feb 2013 18:04:11 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/academic-tour-a-lap-around-windows-8-windows-phone.aspx</guid><link>http://www.dotnettoscana.org/academic-tour-a-lap-around-windows-8-windows-phone.aspx</link><category>Evento</category><title>[Evento] Academic Tour: A lap around Windows 8 &amp; Windows Phone</title><description>&lt;p&gt;Venerdì 1 Febbraio 2013&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Una giornata dedicata a Windows 8 e Windows Phone: nel corso delle varie sessioni capiremo come cambia il modo di sviluppare applicazioni, quali sono i nuovi strumenti che abbiamo a disposizione per la creazione di app e quali sono le best pratices da seguire. Per rimanere sempre al passo coi tempi in un mondo in continua evoluzione. Vedremo infine come realizzare librerie portabili che possano essere utilizzate per condividere il codice fra le app sviluppate per le due piattaforme.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/academic-tour-a-lap-around-windows-8-windows-phone-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 06 Feb 2013 00:35:22 +0100</pubDate><a10:newsReferenceDate>01/02/2013 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/supportare-le-lock-screen-notifications.aspx</guid><link>http://www.dotnettoscana.org/supportare-le-lock-screen-notifications.aspx</link><category>Tip</category><title>[Tip] Supportare le Lock Screen Notifications</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Su Windows Phone 7, le notifiche sulla lock screen sono limitate alle chiamate, agli sms, alle e-mail e al calendario. Windows Phone 8, invece, permette la visualizzazione delle notifiche di applicazioni di terze parti. L' utente può decidere di abilitare fino a 5 applicazioni per le notifiche di quick status (icone) ed una per le notifiche di status (testuali) tra le applicazioni che le supportano.&lt;/p&gt;
&lt;p&gt;Questa feature si basa sulle notifiche tile. Non occorre scrivere codice. Le informazioni visualizzate sulla lock screen vengono prese direttamente dalla Default Tile.&lt;/p&gt;
&lt;p&gt;Per supportare le lock screen notifications, è necessario modificare il file &lt;em&gt;WMAppManifest.xml&lt;/em&gt; con l'editor di testo (tasto destro sul file, scegliere &lt;strong&gt;OpenWith&lt;/strong&gt; e selezione &lt;strong&gt;Source Code(Text Editor) With Encoding&lt;/strong&gt;). Individuare l'elemento &lt;strong&gt;&amp;lt;Extensions&amp;gt;&lt;/strong&gt; (se non è presente aggiungerlo sotto l'elemento &lt;strong&gt;&amp;lt;Tokens&amp;gt;&lt;/strong&gt;) ed inserire:&lt;/p&gt;
&lt;pre class="brush: xml"&gt;&amp;lt;Extensions&amp;gt;
      &amp;lt;Extension ExtensionName="LockScreen_Notification_IconCount" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" /&amp;gt;
      &amp;lt;Extension ExtensionName="LockScreen_Notification_TextField" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" /&amp;gt;
&amp;lt;/Extensions&amp;gt;
&lt;/pre&gt;
&lt;p&gt;In questo esempio, vengono supportate sia le notifiche di quick status (&lt;em&gt;LockScreen_Notification_IconCount&lt;/em&gt;) sia quelle testuali (&lt;em&gt;LockScreen_Notification_TextField&lt;/em&gt;). A seconda di cosa vogliamo supportare, dobbiamo inserire l'elemento corrispondente.&lt;/p&gt;
&lt;p&gt;E' necessario aggiungere anche l'icona da visualizzare. L'immagine deve essere formato PNG, 38x38 pixel con supporto alla trasparenza. Una volta preparata l'icona, apriamo nuovamente il file &lt;em&gt;WMAppManifest.xml&lt;/em&gt; con l'editor...</description><pubDate>Sat, 02 Feb 2013 22:50:51 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/introduzione-a-signalr.aspx</guid><link>http://www.dotnettoscana.org/introduzione-a-signalr.aspx</link><category>Articolo</category><title>[Articolo] Introduzione a SignalR</title><description>&lt;p data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: Base - Autore: &lt;a href="mailto:ulisse640@excite.it" target="_blank"&gt;Stefano Marchisio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SignalR&lt;/strong&gt; è una nuova libreria sviluppata da due ragazzi che lavorano in Microsoft (anche se al momento non è ancora rilasciata in versione ufficiale). Inizieremo spiagando la motivazione per la quale è stata creata, poi passeremo ad elencare le principali caratteristiche tecniche.&lt;/p&gt;
&lt;p&gt;Poniamoci innanzi tutto una domanda: &lt;em&gt;perché una nostra applicazione necessita del real-time, e come possiamo fare per implementarlo?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block;" src="/Data/Sites/1/images/Real_Time.png" alt="" width="400" height="245" /&gt;&lt;/p&gt;
&lt;p&gt;Un'applicazione necessita del real-time perché ci sono situazioni in cui i dati visualizzati devono essere aggiornati costantemente (in modalita &lt;strong&gt;push&lt;/strong&gt;). Un caso emblematico può essere quello delle quotazioni di borsa. Per poter rispondere alla seconda parte della domanda, invece, dobbiamo chiederci un'altra cosa: &lt;em&gt;ci troviamo dinnanzi ad un'applicazione web?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il web è basato sul protocollo &lt;strong&gt;HTTP&lt;/strong&gt;, che per sua natura è &lt;strong&gt;request/response&lt;/strong&gt;. Pertanto, ci troviamo ad utilizzare un protocollo unidirezionale senza stato (ovvero che non permette di fare delle chiamate push server-to-client in maniera nativa). Per utilizzare una modalità &lt;strong&gt;push&lt;/strong&gt;, quindi, dobbiamo ricorrere ad alcuni workaround.&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block;" src="/Data/Sites/1/images/Periodic_Polling.jpg" alt="" width="600" height="155" /&gt;&lt;img style="margin: 5px auto; display: block;" src="/Data/Sites/1/images/Long_Polling.jpg" alt="" width="600" height="155" /&gt;&lt;img style="margin: 5px auto; display: block;" src="/Data/Sites/1/images/WebSocket.jpg" alt="" width="600" height="155" /&gt;&lt;/p&gt;
&lt;p&gt;La caratteristica base del &lt;em&gt;periodic polling&lt;/em&gt;, è quella di fare richieste per...</description><pubDate>Tue, 22 Jan 2013 09:55:37 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/nosql-revolution.aspx</guid><link>http://www.dotnettoscana.org/nosql-revolution.aspx</link><category>Evento</category><title>[Evento] NoSQL Revolution</title><description>&lt;p&gt;Sabato 15 Dicembre 2012&lt;/p&gt;&lt;p&gt;
&lt;h4&gt;Descrizione&lt;/h4&gt;
&lt;p&gt;Per molti anni, il &lt;strong&gt;modello relazionale&lt;/strong&gt; ha avuto un ruolo predominante e largamente consolidato nella gestione ed organizzazione dei dati.&lt;/p&gt;
&lt;p&gt;Con l'evolvere dei &lt;strong&gt;sistemi distribuiti&lt;/strong&gt;, si è presentata la necessità di gestire volumi di dati tali da costringere alla ricerca di soluzioni che garantissero performance molto più elevate attraverso la scalabilità verticale, ma anche e soprattutto la &lt;strong&gt;scalabilità&lt;/strong&gt; orizzontale e l'adozione di un modello di persistenza specifico.&lt;/p&gt;
&lt;p&gt;In questo evento analizzeremo le prospettive offerte dai sistemi di database che vengono comunemente ricondotti al &lt;strong&gt;movimento NoSQL&lt;/strong&gt;: dopo un’introduzione sul modello relazionale e sulle sue caratteristiche, approfondiremo la conoscenza dei database non relazionali e dei principi sui quali si basano.&lt;/p&gt;
&lt;p&gt;La sessione teorica sarà seguita da &lt;strong&gt;esempi real-world&lt;/strong&gt; nei quali verranno affrontati alcuni scenari d'uso con &lt;strong&gt;RavenDB&lt;/strong&gt; e &lt;strong&gt;Redis&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;In serata si terrà la consueta &lt;strong&gt;event dinner&lt;/strong&gt;: la community si riunirà per una &lt;strong&gt;cena di fine evento aperta a tutti&lt;/strong&gt; coloro che lo desiderano (partecipanti all’evento e non e loro parenti, amici, conoscenti).&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/nosql-revolution-photo-gallery.aspx"&gt;&lt;img style="border: 0px currentColor; margin-right: 5px; margin-left: 5px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 20 Dec 2012 22:48:58 +0100</pubDate><a10:newsReferenceDate>15/12/2012 9:00</a10:newsReferenceDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/avvio-automatico-tramite-uri-association.aspx</guid><link>http://www.dotnettoscana.org/avvio-automatico-tramite-uri-association.aspx</link><category>Tip</category><title>[Tip] Avvio automatico tramite URI association</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone 8 è possibile avviare un' applicazione da un'altra utilizzando la tecnica degli &lt;strong&gt;URI association&lt;/strong&gt;. Lo scenario successivo all'invocazione di un URI cambia in base alle applicazioni installate nel dispositivo. Nel caso di più applicazioni associate allo stesso URI sarà &lt;strong&gt;sempre&lt;/strong&gt; (non esiste il concetto di applicazione di default) l'utente a scegliere quale utilizzare selezionandola tra le applicazioni proposte. Se esiste solo un'applicazione associata all' URI invocato, quest' ultima viene avviata automaticamente, mentre se nel telefono non ci sono applicazioni associate viene data all' utente la possibilità di sceglierne una tra quelle presenti nel marketplace.&lt;/p&gt;
&lt;p&gt;Un tipico URI scheme è il seguente: &lt;/p&gt;
&lt;pre class="brush: csharp"&gt;dotnetoscana:ShowTips?TipID=2&lt;/pre&gt;
&lt;p&gt;La parte che precede i ":" si chiama &lt;strong&gt;URI scheme name&lt;/strong&gt;. E' questa la parte che caratterizza lo URI scheme e a cui l'applicazione si registra.&lt;/p&gt;
&lt;p&gt;L'URI scheme name può essere una qualsiasi stringa compresa tra i 2 e i 39 caratteri che comprende numeri., lettere minuscole e i caratteri "." e "-". Per ovvie ragioni non può contenere il carattere ":". Sono tuttavia vietati gli URI scheme name predefiniti. Per la lista completa riferirsi a &lt;a href="http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207065(v=vs.105).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207065(v=vs.105).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Per associare un URI alla nostra applicazione dobbiamo aprire il file &lt;strong&gt;WMAppManifest.xml&lt;/strong&gt; con l'editor di testo, identificare la sezione &lt;strong&gt;Extensions&lt;/strong&gt; ed aggiungere l'elemento &lt;strong&gt;Protocol&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class="brush: xml"&gt;&amp;lt;Extensions&amp;gt;
  &amp;lt;Protocol Name="dotnetoscana"NavUriFragment="encodedLaunchUri=%s"TaskID="_default"/&amp;gt;
...</description><pubDate>Wed, 19 Dec 2012 16:39:10 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/utilizzare-i-launcher-per-pubblicizzare-le-proprie-applicazioni.aspx</guid><link>http://www.dotnettoscana.org/utilizzare-i-launcher-per-pubblicizzare-le-proprie-applicazioni.aspx</link><category>Tip</category><title>[Tip] Utilizzare i Launcher per pubblicizzare la propria applicazione</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ricevere feedback fa sempre piacere. Se positivi possono essere gratificanti, se negativi ci possono aiutare a migliorare. La percentuale di utenti che lascia la sua recensione non è alta. &lt;br /&gt;Per invogliare l'utente a dare il proprio giudizio ci viene in aiuto il &lt;a href="http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.tasks.marketplacereviewtask(v=vs.105).aspx" target="_blank"&gt;MarketplaceReviewTask&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Questo launcher apre il Marketplace sulla pagina contenete le recensioni della nostra applicazione. Ecco un esempio:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;MarketplaceReviewTask reviewTask = new MarketplaceReviewTask();
reviewTask.Show();
&lt;/pre&gt;
&lt;p&gt;Se siamo interessati a pubblicizzare anche le altre nostre applicazioni, il &lt;a href="http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.tasks.marketplacesearchtask(v=vs.105).aspx" target="_blank"&gt;MarketplaceSearchTask&lt;/a&gt; fa al caso nostro. Questo launcher avvia una ricerca nel Marketplace utilizzando come chiave di ricerca il valore passato nella proprietà &lt;strong&gt;SearchTerms&lt;/strong&gt;. Un possibile scenario è l'utilizzo del nome dell' autore come chiave di ricerca in modo da pubblicizzare le sue applicazioni.&lt;/p&gt;
&lt;p&gt;Ecco qui un esempio:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;MarketplaceSarchTask searchTask= new MarketplaceSearchTask();
searchTask.SearchTerms = "dotnettoscana";
searchTask.Show();
&lt;/pre&gt;
&lt;p&gt;Entrambi i launcher causano la disattivazione della applicazione.&lt;/p&gt;</description><pubDate>Wed, 12 Dec 2012 00:23:46 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/aggiungere-lo-splash-screen-in-wp8.aspx</guid><link>http://www.dotnettoscana.org/aggiungere-lo-splash-screen-in-wp8.aspx</link><category>Tip</category><title>[Tip] Aggiungere lo Splash Screen in WP8</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Dopo aver creato un nuovo progetto per Windows Phone 8 con Visual Studio 2012, alcuni sviluppatori di WP7 potrebbero rimanere sorpresi dall'assenza del file &lt;em&gt;SplashScreenImage.jpg&lt;/em&gt;. Nei progetti con target 7.0 e 7.1, infatti, questo file veniva creato automaticamente rappresentando l'immagine di default dello splash screen.&lt;/p&gt;
&lt;p&gt;In genere non è necessario utilizzare una schermata iniziale. Windows Phone 8 carica le applicazioni rapidamente. Per questo l' utilizzo dello Splash Screen è sconsigliato. L' utilizzo dello Splash Screen è giustificato solo se la vostra applicazione è insolitamente lenta a caricare o se avete l' esigenza di aggiungere un marchio distintivo.&lt;/p&gt;
&lt;p&gt;Per aggiungere uno splash screen personalizzato alle app Windows Phone 8, è necessario aggiungere natualmente al nostro progetto un file &lt;strong&gt;SplashScreenImage.jpg&lt;/strong&gt; di dimensionie &lt;strong&gt;768×1280&lt;/strong&gt;. Il sistema provvederà a scalarlo per le altre risoluzioni. Se, invece, vogliamo adattarlo perfettamente, è possibile inserire un file per ogni risoluzione, rinominandoli nel seguente modo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SplashScreenImage.Screen-WVGA.jpg&lt;/li&gt;
&lt;li&gt;SplashScreenImage.Screen-WXGA.jpg&lt;/li&gt;
&lt;li&gt;SplashScreenImage.Screen-720p.jpg&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il file &lt;em&gt;SplashScreemImage.jpg&lt;/em&gt; si deve trovare nella root della cartella del progetto.&lt;/p&gt;</description><pubDate>Thu, 06 Dec 2012 13:50:19 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/abilitare-il-fast-app-resume.aspx</guid><link>http://www.dotnettoscana.org/abilitare-il-fast-app-resume.aspx</link><category>Tip</category><title>[Tip] Abilitare il Fast App Resume</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="http://it.linkedin.com/pub/ubaldo-felloni/2b/a77/60" target="_blank"&gt;Ubaldo Felloni&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Con Mango è stata introdotta la funzionalità fast app switch. Questa funzionalità, alla quale si accede premendo per qualche secondo il tasto back, mostra l'elenco delle ultime applicazioni disattivate. La selezione di una di queste applicazioni permette la sua riattivazione dal punto in cui è stata disattivata.&lt;/p&gt;
&lt;p&gt;Spesso, però, l'utente ripristina l'applicazione tramite pressione della Tile o delle icone nella schermata della lista delle applicazioni. Questi eventi causano l'avvio di una nuova istanza dell'applicazione, anche se essa è già aperta. Con WP8 è stata introdotta la funzionalità fast app resume. Pur rimanendo il comportamento di default quello delle applicazioni WP7, questa funzionalità, se attivata, permette di avere un flusso più simile alle applicazioni di Windows 8, permettendo l'eventuale riattivazione della applicazione al tap sulla Tile o sulla icona nella schermata della lista delle applicazioni.&lt;/p&gt;
&lt;p&gt;Per abilitare questa funzionalità, è necessario aprire con un editor di testo il file &lt;strong&gt;WMAppManifest.xml&lt;/strong&gt;, individuare il tag &lt;strong&gt;&amp;lt;DefaultTask&amp;gt;&lt;/strong&gt; ed aggiungere l'attributo &lt;strong&gt;ActivationPolicy&lt;/strong&gt; con valore &lt;strong&gt;Resume&lt;/strong&gt;:&lt;/p&gt;
&lt;pre class="brush: xml"&gt;&amp;lt;Tasks&amp;gt;
     &amp;lt;DefaultTask Name="_default" NavigationPage="MainPage.xaml"ActivationPolicy="Resume"/&amp;gt;
&amp;lt;/Tasks&amp;gt;
&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;</description><pubDate>Wed, 28 Nov 2012 11:53:33 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/complexity-of-simple-algorithms-and-net-data-structures.aspx</guid><link>http://www.dotnettoscana.org/complexity-of-simple-algorithms-and-net-data-structures.aspx</link><category>Articolo</category><title>[Articolo] Complexity of simple algorithms and .NET data structures</title><description>&lt;p data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: Base - Autore: &lt;a href="http://www.linkedin.com/in/luigiberrettini" target="_blank"&gt;Luigi Berrettini&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In this article I would like to provide a short reference about complexity of simple algorithms and .NET data structures.&lt;/p&gt;
&lt;h4&gt;Classes of commonly encountered time complexities&lt;/h4&gt;
&lt;p&gt;&lt;img title="Classes of commonly encountered time complexities" src="/Data/Sites/1/images/data_structures/01.png" alt="Classes of commonly encountered time complexities" width="800" height="374" /&gt;&lt;/p&gt;
&lt;h4&gt;Time complexity of operations on common data structures&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;img title="Time complexity of operations on common data structures" src="/Data/Sites/1/images/data_structures/02.png" alt="Time complexity of operations on common data structures" width="800" height="589" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img title="Time complexity of operations on common data structures" src="/Data/Sites/1/images/data_structures/03.png" alt="Time complexity of operations on common data structures" width="800" height="522" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;Data structure choice criteria&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;img title="Data structure choice criteria" src="/Data/Sites/1/images/data_structures/04.png" alt="Data structure choice criteria" width="800" height="534" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;Complexity of sorting algorithms and revursive functions&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;img title="Complexity of sorting algorithms and revursive functions" src="/Data/Sites/1/images/data_structures/05.png" alt="Complexity of sorting algorithms and revursive functions" width="644" height="590" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here follow the implementations of some sorting algorithms and both a singly linked list and a doubly linked list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/Data/Sites/1/media/articles/general/SortingAlgorithms.zip" target="_blank"&gt;SortingAlgorithms.cs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/Data/Sites/1/media/articles/general/SinglyLinkedList.zip" target="_blank"&gt;SinglyLinkedList.cs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/Data/Sites/1/media/article...</description><pubDate>Tue, 27 Nov 2012 16:26:45 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/natural-user-interface-con-kinect-e-gadgeteer.aspx</guid><link>http://www.dotnettoscana.org/natural-user-interface-con-kinect-e-gadgeteer.aspx</link><category>Evento</category><title>[Evento] Natural User Interface con Kinect e .NET Gadgeteer</title><description>&lt;p&gt;Sabato 10 Novembre 2012&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/natural-user-interface-con-kinect-e-net-gadgeteer-photo-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/natural-user-interface-con-kinect-e-net-gadgeteer-video-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/video.png" alt="" width="16" height="16"&gt;Video Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 19 Nov 2012 13:50:35 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/natural-user-interface-con-kinect-e-net-gadgeteer-video-gallery.aspx</guid><link>http://www.dotnettoscana.org/natural-user-interface-con-kinect-e-net-gadgeteer-video-gallery.aspx</link><category>Evento</category><title>[Evento] Natural User Interface con Kinect e.NET Gadgeteer Video Gallery</title><description>&lt;p&gt;Le Natural User Interface rendono possibili nuove modalità di interazione con il computer e con i dispositivi. Durante la giornata abbiamo creato un robot basato su .NET Gadgeteer e abbiamo mostrato come utilizzare Kinect per comandarlo tramite semplici movimenti della braccia.&lt;/p&gt;&lt;p&gt;Se non avete partecipato all'evento, ecco cosa vi siete persi:&lt;/p&gt;</description><pubDate>Mon, 19 Nov 2012 10:02:55 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/asynchronous-programming-lab.aspx</guid><link>http://www.dotnettoscana.org/asynchronous-programming-lab.aspx</link><category>Evento</category><title>[Evento] Asynchronous Programming Lab</title><description>&lt;p&gt;Sabato 13 Ottobre 2012&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/asynchronous-programming-lab-photo-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Oct 2012 18:16:14 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/logging-di-un-servizio-wcf.aspx</guid><link>http://www.dotnettoscana.org/logging-di-un-servizio-wcf.aspx</link><category>Tip</category><title>[Tip] Logging di un servizio WCF</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;em&gt;&lt;a href="mailto:marco.minerva@gmail.com" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In caso di problemi di comunicazione con un servizio WCF, spesso il logging delle attività permette di capire facilmente cosa non funziona. Per abilitarlo, è sufficiente aggiungere la seguente sezione nel file &lt;em&gt;web.config&lt;/em&gt;:&lt;/p&gt;
&lt;pre class="brush: xml"&gt;&amp;lt;system.diagnostics&amp;gt;
  &amp;lt;sources&amp;gt;
    &amp;lt;source name="System.ServiceModel"
            switchValue="Information, ActivityTracing"
            propagateActivity="true"&amp;gt;
      &amp;lt;listeners&amp;gt;
        &amp;lt;add name="traceListener"
            type="System.Diagnostics.XmlWriterTraceListener"
            initializeData= "Execution.svclog" /&amp;gt;
      &amp;lt;/listeners&amp;gt;
    &amp;lt;/source&amp;gt;
  &amp;lt;/sources&amp;gt;
&amp;lt;/system.diagnostics&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Con tale configurazione, le attività del servizio saranno registrate nel file &lt;em&gt;Execution.svclog&lt;/em&gt;, che potrà essere aperto con il &lt;strong&gt;Microsoft Service Trace Viewer&lt;/strong&gt;. Da notare che gli switch che abbiamo specificato fanno sì che venga generata una grande quantità di messaggi di log, quindi il file assumerà rapidamente notevoli dimensioni. Si consiglia quindi di utilizzare tali impostazioni solo in fase di test.&lt;/p&gt;
&lt;p&gt;Fonte: &lt;a href="http://msdn.microsoft.com/en-us/library/ms733025.aspx" target="_blank"&gt;Configure Tracing&lt;/a&gt; su MSDN&lt;/p&gt;</description><pubDate>Tue, 23 Oct 2012 20:03:44 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/introduzione-a-arcgis-api-for-javascript.aspx</guid><link>http://www.dotnettoscana.org/introduzione-a-arcgis-api-for-javascript.aspx</link><category>Articolo</category><title>[Articolo] Introduzione a ArcGIS API for JavaScript</title><description>&lt;p data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: Base - Autore: &lt;a href="mailto:ulisse640@excite.it" target="_blank"&gt;Stefano Marchisio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Con l'avvento del &lt;strong&gt;Web 2.0&lt;/strong&gt;, abbiamo visto nascere nuove tipologie di applicazioni. Tra queste spiccano le &lt;strong&gt;mapping application&lt;/strong&gt;, ed i due principali fornitori sono &lt;a href="http://maps.google.com" target="_blank"&gt;Google Maps &lt;/a&gt;e &lt;a href="http://www.bing.com/maps/" target="_blank"&gt;Bing Maps&lt;/a&gt;. Con questi framework è possibile &lt;strong&gt;creare mappe&lt;/strong&gt; sulle quali vengono poi inseriti degli oggetti geometrici (punti, linee, poligoni, etc...), che rappresentano punti di interesse. Le coordinate geografiche, e gli eventuali dati associati, vengono di solito lette da un servizio ad hoc. Con questi due Framework (di solito) si ha inoltre la possibilità di poter scegliere tra 3 sfondi base.&lt;/p&gt;
&lt;p&gt;Il presente articolo vuole focalizzare l'attenzione sull'esistenza di altri fornitori analoghi. Seppur meno conosciuti, essi mettono a disposizione prodotti che permettono di sviluppare applicazioni con qualità e funzionalità analoghe (se non addirittura superiori). &lt;a href="http://www.esri.com/" target="_blank"&gt;ESRI&lt;/a&gt; è per l'appunto uno di questi, ed ha creato il framework &lt;strong&gt;ArcGIS API for JavaScript&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/" target="_blank"&gt;ArcGIS API for JavaScript&lt;/a&gt; è un Framework &lt;strong&gt;browser based &lt;/strong&gt;e permette di sviluppare mapping application utilizzando &lt;strong&gt;HTML 5&lt;/strong&gt; e &lt;strong&gt;JavaScript&lt;/strong&gt;.  Il "pattern di base" consiste nel definire la mappa che vogliamo implementare, attraverso una struttura a layer.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img title="I layer di un'applicazione ArcGIS" src="/Data/Sites/1/images/ArcGIS_Layer.png" alt="I layer di un'applicazione ArcGIS" width="638" height="432" /&gt;&lt;/p&gt;
&lt;p&gt;Come si può intuire, oltre ad una immagine di base, esistono diversi strati che definiscono i dettagli richiesti. In ques...</description><pubDate>Tue, 23 Oct 2012 12:49:18 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/utilizzare-sqlite-in-unapplicazione-windows-store.aspx</guid><link>http://www.dotnettoscana.org/utilizzare-sqlite-in-unapplicazione-windows-store.aspx</link><category>Articolo</category><title>[Articolo] Utilizzare SQLite in un'applicazione Windows Store</title><description>&lt;p data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: Intermedio - Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;WinRT non comprende il namespace &lt;strong&gt;System.Data&lt;/strong&gt;: non offre supporto per la &lt;strong&gt;connessione diretta&lt;/strong&gt; a&lt;strong&gt; database&lt;/strong&gt;, e quindi neanche &lt;strong&gt;Entity Framework&lt;/strong&gt;. D'altra parte, neppure &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=17876" target="_blank"&gt;SQL Compact&lt;/a&gt; può essere utilizzato con le Windows Store apps. La conseguenza è che, per accedere ad un database, dobbiamo passare attraverso servizi &lt;strong&gt;WCF&lt;/strong&gt;, &lt;strong&gt;Azure&lt;/strong&gt;, ecc.&lt;/p&gt;
&lt;p&gt;Se la nostra applicazione ha bisogno di un &lt;strong&gt;database locale&lt;/strong&gt;, su file, possiamo però utilizzare &lt;strong&gt;&lt;a href="http://www.sqlite.org/index.html" target="_blank"&gt;SQLite&lt;/a&gt;&lt;/strong&gt;, di cui è stata rilasciata da qualche tempo la &lt;strong&gt;versione ufficiale per WinRT&lt;/strong&gt;, con supporto alle architetture &lt;strong&gt;x86&lt;/strong&gt;, &lt;strong&gt;x64&lt;/strong&gt; e &lt;strong&gt;ARM&lt;/strong&gt;. Tale release è pienamente compatibile con le Windows Store apps, quindi passa la certificazione (a differenza di quanto avveniva con le versioni iniziali).&lt;/p&gt;
&lt;h4&gt;Installazione&lt;/h4&gt;
&lt;p&gt;Il modo più semplice per aggiungere il supporto a SQLite in Visual Studio 2012  è tramite il comando &lt;strong&gt;Extensions and Updates&lt;/strong&gt; del menu &lt;strong&gt;Tools&lt;/strong&gt;. E' sufficiente cercare &lt;em&gt;sqlite&lt;/em&gt; e scaricare il pacchetto &lt;strong&gt;SQLite for Windows Runtime&lt;/strong&gt;:&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img title="La finestra Extensions and Update di Visual Studio 2012" src="/Data/Sites/1/images/Extensions_and_Updates.png" alt="La finestra Extensions and Update di Visual Studio 2012" width="800" height="369" /&gt; &lt;/p&gt;
&lt;p&gt;Dobbiamo ora aggiungere la Reference a SQLite nella nostra applicazione Windows Store. Facciamo clic destro sul nome del progetto nel &lt;strong&gt;Solution Explorer&lt;/strong&gt; e selezioniamo il comando &lt;strong&gt;Add Referen...</description><pubDate>Mon, 08 Oct 2012 21:24:50 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/autocompleteextender-modalpopupextender-su-chrome.aspx</guid><link>http://www.dotnettoscana.org/autocompleteextender-modalpopupextender-su-chrome.aspx</link><category>Tip</category><title>[Tip] AutoCompleteExtender all'interno di un ModalPopupExtender su Chrome</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;em&gt;&lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il browser Chrome ha un comportamento anomalo se utilizziamo l'&lt;a href="http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx" target="_blank"&gt;AutoCompleteExtender&lt;/a&gt; dell'&lt;a href="http://ajaxcontroltoolkit.codeplex.com/" target="_blank"&gt;AJAX Control Toolkit&lt;/a&gt; all'interno di un &lt;a href="http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx" target="_blank"&gt;ModalPopupExtender&lt;/a&gt;: in questo caso, infatti, la lista con i suggerimenti compare dietro il popup, anche se tutte le proprietà z-index sono impostate correttamente. Per risolvere il problema, basta aggiungere un DIV nella pagina:&lt;/p&gt;
&lt;pre class="brush: html"&gt;&amp;lt;div id="AutoCompleteDiv"/&amp;gt;&lt;/pre&gt;
&lt;p&gt;E quindi impostare l'ID del DIV nella proprietà CompletionListElementID dell'&lt;a href="http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx" target="_blank"&gt;AutoCompleteExtender&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="brush: html"&gt;&amp;lt;ajaxToolkit:AutoCompleteExtender ... CompletionListElementID="AutoCompleteDiv" /&amp;gt;&lt;/pre&gt;
&lt;p&gt; In tal modo, la lista dei suggerimenti verrà visualizzata all'interno del DIV specificato, e anche su Chrome apparirà in modo corretto.&lt;/p&gt;</description><pubDate>Thu, 27 Sep 2012 13:34:56 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/mostrare-unimmagine-contenuta-in-un-array-di-byte.aspx</guid><link>http://www.dotnettoscana.org/mostrare-unimmagine-contenuta-in-un-array-di-byte.aspx</link><category>Tip</category><title>[Tip] Mostrare un'immagine contenuta in un array di byte</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il seguente metodo permette di mostrare un'immagine in un controllo &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.image(v=win.10).aspx" target="_blank"&gt;Image&lt;/a&gt; di una Windows Store App partendo da un array di byte:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;private async Task LoadImage(Image imageControl, byte[] buffer)
{
    InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream();
    DataWriter writer = new DataWriter(ms.GetOutputStreamAt(0));
    writer.WriteBytes(buffer);
    await writer.StoreAsync();

    BitmapImage image = new BitmapImage();
    await image.SetSourceAsync(ms);
    imageControl.Source = image;
}&lt;/pre&gt;
&lt;p&gt;Per un utilizzo più generale, è possibile trasformare questa routine in un extension method dell'oggetto &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.image(v=win.10).aspx" target="_blank"&gt;Image&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 24 Sep 2012 20:30:57 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/serializzare-le-variabili-di-tipo-uri.aspx</guid><link>http://www.dotnettoscana.org/serializzare-le-variabili-di-tipo-uri.aspx</link><category>Tip</category><title>[Tip] Serializzare le variabili di tipo Uri</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il tipo di dato &lt;a href="http://msdn.microsoft.com/en-us/library/system.uri.aspx" target="_blank"&gt;Uri&lt;/a&gt; non dispone di un costruttore senza parametri, quindi non può essere serializzato in XML. Per aggirare questa limitazione, dobbiamo utilizzare una proprietà di "appoggio" di tipo String:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;[XmlIgnore]
public Uri Uri { get; set; }

[XmlElement("Uri")]
public string UriString
{
    get { return Uri != null ? Uri.AbsoluteUri : null; }
    set { Uri = value != null ? new Uri(value) : null; }
}
&lt;/pre&gt;
&lt;p&gt;In questo modo, la proprietà &lt;strong&gt;Uri&lt;/strong&gt; non viene serializzata, e al suo posto salviamo il valore di &lt;strong&gt;UriString&lt;/strong&gt;. Quando poi, in fase di deserializzazione, viene invocato il setter di &lt;strong&gt;UriString&lt;/strong&gt;, la proprietà &lt;strong&gt;Uri&lt;/strong&gt; sarà automaticamente valorizzata.&lt;/p&gt;</description><pubDate>Sun, 15 Jul 2012 11:34:37 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/2-coding-day.aspx</guid><link>http://www.dotnettoscana.org/2-coding-day.aspx</link><category>Evento</category><title>[Evento] Coding Day di DotNetToscana</title><description>&lt;p&gt;Sabato 30 Giugno 2012&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/2-coding-day-photo-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/2-coding-day-video-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/video.png" alt="" width="16" height="16"&gt;Video Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 08 Jul 2012 23:06:55 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/creazione-di-widget-con-jquery-mobile.aspx</guid><link>http://www.dotnettoscana.org/creazione-di-widget-con-jquery-mobile.aspx</link><category>Articolo</category><title>[Articolo] Creazione di Widget con jQuery Mobile</title><description>&lt;p data-content-category="Articolo" data-content="news"&gt;&lt;em&gt;Livello: Intermedio - Autore: &lt;a href="mailto:ulisse640@excite.it" target="_blank"&gt;Stefano Marchisio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In questo articolo descriveremo alcune estensioni di &lt;a href="http://jquerymobile.com/" target="_blank"&gt;jQuery Mobile&lt;/a&gt;. Non essendo un articolo introduttivo, è consigliato che il lettore abbia una conoscenza minima di cos'è e cosa fa jQuery Mobile. Come nel fratello maggiore jQuery, anche in jQuery Mobile troviamo il concetto di &lt;strong&gt;widget&lt;/strong&gt;. Un widget è essenzialmente una combinazione di markup e codice Javascript che trasforma un pezzo di HTML in un componente interettivo.  Al contrario di jQuery, in cui un widget viene istanziato e abilitato usando una chiamata Javascript, con jQuery mobile un widget viene definito dichiarando sul &lt;strong&gt;tag HTML&lt;/strong&gt; che lo dovrà contenere un attributo come il seguente: &lt;strong&gt;data-role="nomewidget"&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class="brush: html"&gt;&amp;lt;ul data-role="listview" data-theme="g"&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href="acura.html"&amp;gt;Acura&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href="audi.html"&amp;gt;Audi&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;a href="bmw.html"&amp;gt;BMW&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Sarà poi l’infrastruttura di jQuery Mobile che a runtime (quando il plugin viene inizializzato) effettuerà il &lt;strong&gt;parsing della pagina HTML&lt;/strong&gt; cercando determinati attributi, per poi agganciare la porzione di codice Javascript che costituisce il widget.&lt;/p&gt;
&lt;p&gt;Questo è il modo più semplice per creare un widget, ma possiamo realizzare la stessa cosa via codice. La porzione di codice Javascript che &lt;strong&gt;definisce&lt;/strong&gt; un widget è dichiarata tramite il metodo &lt;strong&gt;$.widget()&lt;/strong&gt;. Esso accetta una serie di parametri, tra cui un oggetto Javascript che definisce la logica del widget. All'interno di tale oggetto troveremo sia d metodi custom definiti da noi, sia i metodi privati che servono per intercettare alcuni eventi (&lt;strong&gt;create&lt;/strong&gt;, &lt;strong&gt;init&lt;/s...</description><pubDate>Thu, 05 Jul 2012 22:26:36 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/contenuto-dinamico-con-jquery-mobile.aspx</guid><link>http://www.dotnettoscana.org/contenuto-dinamico-con-jquery-mobile.aspx</link><category>Articolo</category><title>[Articolo] Contenuto dinamico con jQuery Mobile</title><description>&lt;p data-content-category="Articolo" data-content="news"&gt;&lt;em&gt;Livello: Intermedio - Autore: &lt;a href="mailto:ulisse640@excite.it" target="_blank"&gt;Stefano Marchisio&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In questo articolo evidenzieremo alcune delle problematiche che si devono affrontare quando si sviluppano &lt;strong&gt;applicazioni dinamiche&lt;/strong&gt; con &lt;a href="http://jquerymobile.com/" target="_blank"&gt;jQuery Mobile&lt;/a&gt; (ovvero, applicazioni il cui contenuto è caricato in modo dinamico attraverso una chiamata AJAX). Non essendo un articolo introduttivo, è consigliato che il lettore abbia una conoscenza minima di cos'è e cosa fa jQuery Mobile.&lt;/p&gt;
&lt;p&gt;Con jQuery Mobile si possono sviluppare due tipi di applicazioni:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Applicazioni singola pagina&lt;/li&gt;
&lt;li&gt;Applicazioni multi pagina (external page)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quello che segue, vale per entrambi i casi.&lt;/p&gt;
&lt;p&gt;Se il contenuto di una pagina è &lt;strong&gt;statico&lt;/strong&gt;, possiamo inserirlo direttamente nel &lt;strong&gt;markup HTML&lt;/strong&gt;. Se, invece, il contenuto è &lt;strong&gt;dinamico&lt;/strong&gt;, è necessario effettuare una chiamata &lt;strong&gt;AJAX&lt;/strong&gt; che richiede al server dati in formato &lt;strong&gt;JSON&lt;/strong&gt;, per poi applicare un template a ciò che è stato restituito. Nulla di strano: probabilmente abbiamo già avuto modo di implementare un'architettura simile nelle nostre applicazioni.&lt;/p&gt;
&lt;p&gt;Purtroppo però c'e' un &lt;strong&gt;problema&lt;/strong&gt;: gli stili sono applicati correttamente nel caso di pagine statiche, ma non se lavoriamo con pagine dinamiche. Scopo di questo articolo è vedere perché avviene ciò, e come possiamo fare per risolvere il problema.&lt;/p&gt;
&lt;p&gt;Fra gli eventi generati da jQuery Mobile, c'è anche l'evento &lt;strong&gt;create&lt;/strong&gt;: è proprio da esso che parte il processo mediante il quale &lt;strong&gt;vengono applicati gli stili&lt;/strong&gt;. Purtroppo, questo evento di default viene invocato &lt;strong&gt;una sola volta&lt;/strong&gt; all'inizio (quando la pagina viene caricata). Di conseguenza, se la chiamata AJAX è agganciata ed un evento succesivo (quale per esempio &lt;strong&gt;pagechange&lt;/...</description><pubDate>Mon, 25 Jun 2012 19:23:35 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/suspensionmanager-e-passaggio-di-oggetti-al-metodo-navigate.aspx</guid><link>http://www.dotnettoscana.org/suspensionmanager-e-passaggio-di-oggetti-al-metodo-navigate.aspx</link><category>Tip</category><title>[Tip] Suspension Manager e passaggio di oggetti al metodo Navigate</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Quando creiamo un'applicazione Metro Style con Visual Studio 2012 RC e utilizziamo i template &lt;a href="http://go.microsoft.com/fwlink/?LinkId=234226" target="_blank"&gt;Grid App&lt;/a&gt; o &lt;a href="http://go.microsoft.com/fwlink/?LinkId=234228" target="_blank"&gt;Split App&lt;/a&gt;, oppure aggiungiamo un oggetto di tipo &lt;a href="http://go.microsoft.com/fwlink/?LinkId=234237" target="_blank"&gt;Basic Page&lt;/a&gt; al nostro progetto, tra i file inseriti in automatico nella soluzione c'è anche il &lt;strong&gt;&lt;a href="http://code.msdn.microsoft.com/windowsapps/ApplicationData-sample-fb043eb2/sourcecode?fileId=43552&amp;amp;pathId=6033729" target="_blank"&gt;Suspension Manager&lt;/a&gt;&lt;/strong&gt;, una classe che può essere utilizzata per &lt;strong&gt;salvare lo stato dell'applicazione in caso di sospensione&lt;/strong&gt;, compresa la storia di navigazione tra le pagine e i parametri che sono passati ad esse. Quando avviamo un'applicazione precedentemente sospesa, il &lt;strong&gt;Suspension Manager&lt;/strong&gt; ne ripristina lo stato e ci riporta automaticamente nell'ultima pagina che abbiamo visualizzato.&lt;/p&gt;
&lt;p&gt;Per fare questo, tra le altre cose il Suspension Manager &lt;strong&gt;salva&lt;/strong&gt; anche i &lt;strong&gt;parametri&lt;/strong&gt; che sono passati ad una pagina quando si naviga verso di essa con il metodo &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh702394.aspx" target="_blank"&gt;Navigate&lt;/a&gt;&lt;/strong&gt; (la pagina di destinazione riceve tali parametri nel metodo &lt;strong&gt;LoadState&lt;/strong&gt;). Per approfondire i dettagli del suo funzionamento, è possibile fare riferimento all'articolo &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh986968.aspx" target="_blank"&gt;Manage app lifecycle and state&lt;/a&gt; su MSDN.&lt;/p&gt;
&lt;p&gt;Il metodo Navigate accetta un parametro object, quindi in linea teorica è possibile &lt;strong&gt;passare&lt;/strong&gt; ad una pagina un &lt;strong&gt;qualunque oggetto&lt;/strong&gt; della nostra applicazione. C'è per...</description><pubDate>Sat, 23 Jun 2012 13:41:35 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/i-caller-information-attribute-di-net-45.aspx</guid><link>http://www.dotnettoscana.org/i-caller-information-attribute-di-net-45.aspx</link><category>Articolo</category><title>[Articolo] I Caller Information Attribute di .NET 4.5</title><description>&lt;p data-content-category="Articolo" data-content="news"&gt;&lt;em&gt;Livello: Base - Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Una delle novità di .NET 4.5 è rappresentata dai &lt;a href="http://msdn.microsoft.com/en-us/library/hh534540(VS.110).aspx" target="_blank"&gt;Caller Information Attribute&lt;/a&gt;, una serie di attributi che permettono di &lt;strong&gt;recuperare informazioni sul chiamante&lt;/strong&gt; di un metodo: il nome della proprietà o del metodo di provenienza, il percorso completo del file sorgente e il numero della linea di codice da cui tale metodo è stato richiamato. Queste informazioni sono utili per tracing, debug e sistemi di logging.&lt;/p&gt;
&lt;p&gt;Il loro utilizzo è molto semplice:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public void GetCallerInfo([CallerMemberName] string memberName = "",
                          [CallerFilePath] string sourceFilePath = "",
                          [CallerLineNumber] int sourceLineNumber = 0)
{
    /* memberName è il nome del chiamante;
     * sourceFilePath è il percorso completo del file sorgente;
     * sourceLineNumber è il numero della riga di codice che ha invocato GetCallerInfo
     */
}
&lt;/pre&gt;
&lt;p&gt;I Caller Information Attribute (definiti nel namespace &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices(VS.110).aspx" target="_blank"&gt;System.Runtime.CompilerServices&lt;/a&gt;) sono applicati a &lt;strong&gt;parametri opzionali&lt;/strong&gt; di un metodo, ciascuno dei quali deve avere un &lt;strong&gt;valore di default&lt;/strong&gt;: quando il metodo viene invocato, se il chiamante omette questi argomenti, essi saranno valorizzati in base all'attributo corrispondente. Ad esempio:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public void Method1()
{
    GetCallerInfo();

    /* I parametri di GetCallerInfo assumeranno questi valori:
     * memberName = Method1
     * sourceFilePath = C:\Users\Marco\Documents\Visual Studio 2012\Projects\CallerInfoAttribute\CallerInfoAttribute\Test.cs
     * sourceLineNumber = 42
     */
}
&lt;/pre&gt;...</description><pubDate>Sun, 17 Jun 2012 22:36:40 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/start-something-tour-windows-8-e-windows-phone-75_2.aspx</guid><link>http://www.dotnettoscana.org/start-something-tour-windows-8-e-windows-phone-75_2.aspx</link><category>Evento</category><title>[Evento] Start Something! Tour – Windows 8 e Windows Phone 7.5</title><description>&lt;p&gt;&lt;a href="/start-something-tour-photo-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 14 Jun 2012 21:19:44 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/aprire-i-link-del-controllo-webbrowser-con-il-browser-di-wp7.aspx</guid><link>http://www.dotnettoscana.org/aprire-i-link-del-controllo-webbrowser-con-il-browser-di-wp7.aspx</link><category>Tip</category><title>[Tip] Aprire i link del controllo WebBrowser con il browser di Windows Phone</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Se facciamo clic su un collegamento visualizzato all'interno di un controllo &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.webbrowser(VS.92).aspx" target="_blank"&gt;WebBrowser&lt;/a&gt; nella nostra applicazione WP7, la pagina di destinazione sarà aperta all'interno del controllo stesso. Se, invece, vogliamo che la pagina sia aperta con il browser esterno di Windows Phone, dobbiamo utilizzare l'evento &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.webbrowser.navigating(VS.92).aspx" target="_blank"&gt;Navigating&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;private void webBrowser_Navigating(object sender, NavigatingEventArgs e)
{
    e.Cancel = true;
    WebBrowserTask task = new WebBrowserTask();
    task.Uri = e.Uri;
    task.Show();
}
&lt;/pre&gt;
&lt;p&gt;In questo gestore, annulliamo la navigazione verso la nuova pagina, ma subito dopo creiamo un oggetto di tipo &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.webbrowsertask(VS.92).aspx" target="_blank"&gt;WebBrowserTask&lt;/a&gt;, per avviare il browser di Windows Phone e farlo puntare alla pagina specificata nella sua proprietà &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.webbrowsertask.uri(VS.92).aspx" target="_blank"&gt;Uri&lt;/a&gt;. Infine, richiamando il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.webbrowsertask.show(VS.92).aspx" target="_blank"&gt;Show&lt;/a&gt; visualizziamo il browser, che apparirà in prima piano.&lt;/p&gt;</description><pubDate>Tue, 12 Jun 2012 22:34:14 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/relazione-ecosistema-windows-phone.aspx</guid><link>http://www.dotnettoscana.org/relazione-ecosistema-windows-phone.aspx</link><category>Articolo</category><title>[Articolo] Relazione ecosistema Windows Phone</title><description>&lt;p&gt;Livello: Base - Autore: &lt;a href="mailto:giovanni.tomaino@gmail.com"&gt;Giovanni Tomaino&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Un'attenta analisi sull'ecosistema Windows Phone, che prende in esame le app pubblicate dagli studenti del Master in &lt;em&gt;Sviluppo Applicazioni Mobili&lt;/em&gt; tenuto all'Università di Pisa nell'anno 2012. Tutti i dati sono aggiornati ad Aprile 2012.&lt;/p&gt;</description><pubDate>Mon, 11 Jun 2012 17:38:41 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/aggiungere-i-suggerimenti-di-ricerca-nelle-applicazioni-metro.aspx</guid><link>http://www.dotnettoscana.org/aggiungere-i-suggerimenti-di-ricerca-nelle-applicazioni-metro.aspx</link><category>Articolo</category><title>[Articolo] Aggiungere i suggerimenti di ricerca nelle applicazioni Metro</title><description>&lt;p&gt;Livello: Intermedio - Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Visual Studio 2012 dispone di un template grazie a cui possiamo aggiungere con grande facilità un &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh464906.aspx#search_contract" target="_blank"&gt;Search Contract&lt;/a&gt; nelle nostre applicazioni Metro: è suficiente selezionare l'elemento &lt;strong&gt;Search Contract&lt;/strong&gt; dalla finestra di dialogo &lt;strong&gt;Add New Item&lt;/strong&gt; per inserire nel progetto una pagina di ricerca predefinita, aggiungere la &lt;em&gt;declaration&lt;/em&gt; per il Search e definire automaticamente nel file &lt;em&gt;App.xaml.cs &lt;/em&gt;il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.onsearchactivated" target="_blank"&gt;OnSearchActivated&lt;/a&gt;, che viene invocato quando si avvia una ricerca.&lt;/p&gt;&lt;p&gt;Non viene creato, invece, il codice necessario per mostrare i &lt;strong&gt;suggerimenti di ricerca&lt;/strong&gt; durante la digitazione. Si tratta, comunque, di una funzionalità&lt;strong&gt; molto semplice&lt;/strong&gt; da implementare.&lt;/p&gt;</description><pubDate>Tue, 05 Jun 2012 07:58:05 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/controllare-il-tipo-di-visualizzazione.aspx</guid><link>http://www.dotnettoscana.org/controllare-il-tipo-di-visualizzazione.aspx</link><category>Tip</category><title>[Tip] Controllare il tipo di visualizzazione (Fullscreen, Snapped o Filled)</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Se la risoluzione dello schermo è di 1366x768 pixel o superiore, Windows 8 permette di utilizzare la modalità &lt;strong&gt;Snap&lt;/strong&gt;, con cui è possibile &lt;a href="http://www.eightforums.com/tutorials/4439-metro-multitasking-run-two-metro-apps-same-time.html" target="_blank"&gt;visualizzare due applicazioni affiancate&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nelle nostre applicazioni &lt;strong&gt;Metro Style&lt;/strong&gt;, dobbiamo quindi sapere quando si verifica un cambiamento di visualizzazione, perché dobbiamo adattare di conseguenza l'interfaccia (ad esempio, nascondendo o riposizionando alcuni controlli). Per fare questo, dobbiamo gestire l'evento &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.core.corewindow.sizechanged" target="_blank"&gt;SizeChanged&lt;/a&gt; sull'oggetto &lt;a href="http://msdn.microsoft.com/it-IT/library/windows/apps/windows.ui.xaml.window.current" target="_blank"&gt;Window.Current&lt;/a&gt; (che rappresenta la finestra corrente dell'applicazione): &lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public MainPage()
{
    this.InitializeComponent();

    Windows.UI.ViewManagement.Window.Current.SizeChanged += WindowSizeChanged;            
}        

private void WindowSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
    var viewState = Windows.UI.ViewManagement.ApplicationView.Value;

    /* 
     * viewState contiene lo stato di visualizzazione corrente:
     * 
     * ApplicationViewState.Filled
     * ApplicationViewState.FullScreenLandscape
     * ApplicationViewState.FullScreenPortrait
     * ApplicationViewState.Snapped
     * 
    */            
}
&lt;/pre&gt;
&lt;p&gt;Quando la dimensione della finestra cambia, viene generato l'evento &lt;strong&gt;WindowSizeChanged&lt;/strong&gt;. Al suo interno, accediamo alla proprietà statica &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.applicationview.value" target="_blan...</description><pubDate>Mon, 04 Jun 2012 13:39:47 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/fez-robot-kit.aspx</guid><link>http://www.dotnettoscana.org/fez-robot-kit.aspx</link><category>Articolo</category><title>[Articolo] FEZ Robot Kit</title><description>&lt;p style="text-align: left;" data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: Base - Autore: &lt;em&gt;&lt;a href="mailto:ulisse640@excite.it" target="_blank"&gt;Stefano Marchisio&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Introduzione&lt;/h4&gt;
&lt;p&gt;In questo articolo illustreremo come costruire un semplice robot usando lo starter kit &lt;strong&gt;GHI FEZ Robot Kit&lt;/strong&gt;, disponibile su &lt;a href="http://www.ghielectronics.com/catalog/product/140" target="_blank"&gt;http://www.ghielectronics.com/catalog/product/140&lt;/a&gt;.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img title="FEZ Robot Kit" src="/Data/Sites/1/images/1-ghi-fez-robot-kit-mini.jpg" alt="FEZ Robot Kit" width="143" height="131" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;All'interno di questo Starter Kit possiamo trovare tutto il necessario (è essenzialmente una scatola di montaggio). Infatti, oltre ad una scheda .NET Micro Framework &lt;strong&gt;FEZ Mini&lt;/strong&gt; (di colore rosso), è presente una schedina aggiuntiva, di colore blu, sulla quale montarla. Essa è dotata di tutto ciò che serve per &lt;strong&gt;controllare i 2 motori&lt;/strong&gt;; troveremo, inoltre, i connettori ai quali andranno collegati i motori e i sensori di distanza. In questo modo, l'utilizatore deve solo montare le varie parti senza dover acquistare componenti aggiuntivi (tranne nel caso voglia implementare funzionalità particolari). Nel nostro caso, non usiamo i sensori presenti nello Starter Kit per misurare le distanze, ma adottiamo 2 sensori &lt;strong&gt;GP2Y0A21 - distance detector&lt;/strong&gt;, che forniscono una precisione maggiore.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img title="GP2Y0A21 - distance detector" src="/Data/Sites/1/images/2-distance-detector-sensor.jpg" alt="GP2Y0A21 - distance detector" width="125" height="100" /&gt;&lt;/p&gt;
&lt;p&gt;Fatta questa breve premessa, è necessario dire che all'interno dello Starter Kit non è presente nessun software (tranne una brevissima demo), per cui siamo noi che, una volta montato il tutto, dobbiamo scrivere un programma che per far muovere il robot. Nella sezione &lt;strong&gt;Downloads&lt;/strong&gt; della pagina...</description><pubDate>Wed, 30 May 2012 08:49:14 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/report-tabellari-con-doddlereport.aspx</guid><link>http://www.dotnettoscana.org/report-tabellari-con-doddlereport.aspx</link><category>Tip</category><title>[Tip] Report tabellari con DoddleReport</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;em&gt;&lt;a href="mailto:dariochini@yahoo.it" target="_blank"&gt;Dario Chini&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Se avete bisogno di generare report derivanti da dati del vostro database, &lt;strong&gt;DoddleReport&lt;/strong&gt; potrebbe fare a caso vostro. Punto di forza di questa libreria è la semplicità di implementazione e la possibilità di generare report in Excel, PDF, HTML e CSV.&lt;/p&gt;
&lt;p&gt;DoddleReport è in grado di generare report partendo da qualunque sorgente dati che implementi l'interfaccia &lt;a href="http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.aspx" target="_blank"&gt;IEnumerable&lt;/a&gt; (quindi praticamente ogni collezione .NET). Si può trovare su &lt;a href="http://doddlereport.codeplex.com/" target="_blank"&gt;http://doddlereport.codeplex.com&lt;/a&gt;, oppure può essere scaricato tramite &lt;strong&gt;NuGet&lt;/strong&gt;. In quest'ultimo caso, è necessario cercare il package corrispondente al formato che si vuole usare (ad esempio, &lt;em&gt;DoodleReport.iTextSharp&lt;/em&gt;, &lt;em&gt;DoodleReport.OpenXml&lt;/em&gt;, ecc.).&lt;/p&gt;
&lt;p&gt;Il suo utilizzo è davvero molto semplice. Ad esempio, supponiamo di dover inviare via mail un file Excel con i dati recuperati utilizzando Entity Framework. Per prima cosa, recuperiamo la nostra sorgente dati:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;var data = Convert.ToInt32(DateTime.Now.AddDays(-31).ToString("yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture));
var query = context.VIEW_DAY.Where(w =&amp;gt; w.DAY &amp;gt;= data);&lt;/pre&gt;
&lt;p&gt;Poi, creiamo il report assegnando i dati ed indicando il writer da utilizzare:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;var reportData = new Report(query.ToReportSource(), new DoddleReport.OpenXml.ExcelReportWriter());&lt;/pre&gt;
&lt;p&gt;Possiamo ora utilizzare l'oggetto &lt;strong&gt;reportData&lt;/strong&gt; per creare l'allegato ed inviarlo via mail:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;// Scrive il report in un MemoryStream e crea l'allegato 
using(MailMessage mail = new MailMessage())
{
  using(MemoryStream mstream = new MemoryStream()) 
  {
    mail.From = n...</description><pubDate>Fri, 25 May 2012 07:50:47 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/polarizzazione-di-un-led.aspx</guid><link>http://www.dotnettoscana.org/polarizzazione-di-un-led.aspx</link><category>Articolo</category><title>[Articolo] Polarizzazione di un LED</title><description>&lt;p data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: Base - Autore: &lt;em&gt;&lt;a href="mailto:ulisse640@excite.it" target="_blank"&gt;Stefano Marchisio&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Introduzione&lt;/h4&gt;
&lt;p&gt;La prima cosa che si nota quando ci si avvicina a .NET Micro Framework è che, lavorando a &lt;strong&gt;basso livello con porte GPIO/IO&lt;/strong&gt; sulle quali sono connessi sensori, o più in generale componenti elettronici, è necessario avere qualche &lt;strong&gt;conoscenza di base di elettronica&lt;/strong&gt;. Con l'uscita di .NET Gadgeteer quest'ostacolo è stato notevolmente mitigato. Con Gadgeteer, infatti, ci troviamo ad operare con moduli che vengono connessi a una schedina madre tramite semplici cavi di connessione. A livello di codice ci troviamo poi ad operare con degli oggetti ad alto livello nei quali il concetto di porte di GPIO/IO è nascosto (o meglio è incapsulato all'interno di questi oggetti ad alto livello). Pertanto, anche una persona che non ha nessuna conoscenza di elettronica può fin da subito iniziare a costruire una semplice applicazione.&lt;/p&gt;
&lt;p&gt;In questo articolo illustreremo alcuni concetti base per la programmazione con .NET Micro Framework, ed in particolar modo cosa si deve fare per &lt;strong&gt;collegare un&lt;/strong&gt; &lt;strong&gt;LED&lt;/strong&gt; ad un pin di  una scheda. Analogamente, vedremo cosa non si deve fare, ovvero collegare direttamente un relè o un motore ad un pin (e perché).&lt;/p&gt;
&lt;p&gt;La prima cosa da dire è che le schede Micro Framework sono componenti con un&lt;strong&gt; costo molto contenuto&lt;/strong&gt; (oltre ad avere una dimensione ridotta). Per questo motivo, sono pressoché&lt;strong&gt; assenti meccanismi di protezione&lt;/strong&gt; sui vari pin: collegare ad un pin di GPIO/IO un sensore vuole dire andare direttamente sul pin del processore. Questo comporta che, nel caso commettiamo un errore, non solleviamo solamente un'eccezione, ma rischiamo di danneggiare in modo irreparabile il processore, bruciandolo. Per questo motivo è necessario prestare particolare attenzione alle connessioni.&lt;/p&gt;
&lt;p&gt;Quando si parla di segna...</description><pubDate>Thu, 24 May 2012 21:56:54 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/net-micro-framework-presenta-gadgeteer.aspx</guid><link>http://www.dotnettoscana.org/net-micro-framework-presenta-gadgeteer.aspx</link><category>Evento</category><title>[Evento] .NET Micro Framework presenta Gadgeteer</title><description>&lt;p&gt;Sabato 12 Maggio 2012&lt;/p&gt;&lt;p&gt;Una giornata dedicata a .NET Micro Framework e in particolare a Gadgeteer, una piattaforma hardware e software per la progettazione e lo sviluppo di applicazioni destinate a dispositivi embedded&lt;/p&gt;&lt;p&gt;&lt;a href="/materiale.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/Download.gif" alt="" width="16" height="16"&gt;Materiale&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/net-micro-framework-presenta-gadgeteer-photo-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/photo.png" alt="" width="16" height="16"&gt;Photo Gallery&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="/net-micro-framework-presenta-gadgeteer-video-gallery.aspx"&gt;&lt;img style="margin-right: 5px; margin-left: 5px; border: 0px;" src="/Data/Sites/1/images/video.png" alt="" width="16" height="16"&gt;Video Gallery&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 17 May 2012 23:47:46 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/net-micro-framework-presenta-gadgeteer-video-gallery.aspx</guid><link>http://www.dotnettoscana.org/net-micro-framework-presenta-gadgeteer-video-gallery.aspx</link><category>Evento</category><title>[Evento] .NET Micro Framework presenta Gadgeteer Video Gallery</title><description>&lt;p&gt;Nel corso della giornata abbiamo parlato delle numerose possiblità di utlizzo della piattaforma .NET Gadgeteer. Gli argomenti presentati ci sono serviti per introdurre la costruzione di &lt;strong&gt;Rover&lt;/strong&gt;, un cingolato che si muove tramite comandi inviati via Bluetooth, e scappa se identifica una sorgente di luce.&lt;/p&gt;&lt;p&gt;Se non avete partecipato all'evento, ecco cosa vi siete persi:&lt;/p&gt;</description><pubDate>Wed, 16 May 2012 08:05:18 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/utilizzare-loggetto-fileopenpicker-per-selezionare-un-file.aspx</guid><link>http://www.dotnettoscana.org/utilizzare-loggetto-fileopenpicker-per-selezionare-un-file.aspx</link><category>Articolo</category><title>[Articolo] Utilizzare l'oggetto FileOpenPicker per selezionare un file</title><description>&lt;p&gt;Livello: Base - Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Quando nelle nostre applicazioni WinRT abbiamo bisogno di selezionare un file, dobbiamo utilizzare l'oggetto &lt;a href="http://msdn.microsoft.com/library/windows/apps/BR207847" target="_blank"&gt;FileOpenPicker&lt;/a&gt;, che rappresenta la versione per Windows 8 del controllo &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.aspx" target="_blank"&gt;OpenFileDialog&lt;/a&gt; di .NET. Esso restituisce uno &lt;a href="http://msdn.microsoft.com/library/windows/apps/BR227171" target="_blank"&gt;StorageFile&lt;/a&gt; grazie al quale è possibile accedere al file che è stato selezionato.&lt;/p&gt;</description><pubDate>Sun, 13 May 2012 18:50:08 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/recuperare-i-link-di-una-pagina-web.aspx</guid><link>http://www.dotnettoscana.org/recuperare-i-link-di-una-pagina-web.aspx</link><category>Tip</category><title>[Tip] Recuperare i link di una pagina Web</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il seguente metodo utilizza la libreria &lt;a href="http://htmlagilitypack.codeplex.com/" target="_blank"&gt;HtmlAgilityPack&lt;/a&gt; per recuperare una pagina Web ed estrarre tutti i collegamenti definiti in essa:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public static void ExtractLinks(string url)
{
    HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load(url);
    foreach (HtmlAgilityPack.HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
    {
        var href = link.Attributes["href"].Value;
        Console.WriteLine(href);
    }
}
&lt;/pre&gt;</description><pubDate>Thu, 10 May 2012 22:27:10 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/verificare-lesitenza-di-un-file.aspx</guid><link>http://www.dotnettoscana.org/verificare-lesitenza-di-un-file.aspx</link><category>Tip</category><title>[Tip] Verificare l'esistenza di un file</title><description>&lt;p data-content="news" data-content-category="Tip"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;WinRT non dispone di un metodo come &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx" target="_blank"&gt;File.Exists&lt;/a&gt;, per verificare se un certo file esiste. Il modo raccomandato in tale situazione è tentare di recuperarlo e gestire l'eccezione &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.filenotfoundexception.aspx" target="_blank"&gt;FileNotFoundException&lt;/a&gt;. Sì può però definire un semplice Extension Method che esegue tale controllo, senza dover ogni volta verificare l'eccezione:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public static class FileExtensions
{
    public async static Task&amp;lt;StorageFile&amp;gt; TryGetFileAsync(this IStorageFolder folder, string fileName)
    {
        try
        {
            var file = await folder.GetFileAsync(fileName);
            return file;
        }
        catch (FileNotFoundException)
        {
            return null;
        }
    }
}&lt;/pre&gt;
&lt;p&gt;Il metodo &lt;strong&gt;TryGetFileAsync&lt;/strong&gt; restituisce lo &lt;a href="http://msdn.microsoft.com/library/windows/apps/BR227171" target="_blank"&gt;StorageFile&lt;/a&gt; con il nome specificato, se è presente nello &lt;a href="http://msdn.microsoft.com/library/windows/apps/BR227230" target="_blank"&gt;StorageFolder&lt;/a&gt;, oppure &lt;strong&gt;null&lt;/strong&gt;, se non esiste. L'utilizzo è molto semplice:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;var tempFolder = ApplicationData.Current.TemporaryFolder;
var file = await tempFolder.TryGetFileAsync("test.txt");    // in un metodo async.
if (file == null)
{
    // Il file specificato non esiste.
}
else
{
    // La variabile "file" contiene un riferimento al file desiderato.
}
&lt;/pre&gt;</description><pubDate>Mon, 07 May 2012 21:39:47 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/arrotondare-al-numero-specificato-di-posizioni-decimali.aspx</guid><link>http://www.dotnettoscana.org/arrotondare-al-numero-specificato-di-posizioni-decimali.aspx</link><category>Tip</category><title>[Tip] Arrotondare al numero specificato di posizioni decimali</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;em&gt;&lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/ee435943.aspx" target="_blank"&gt;Math.Round&lt;/a&gt; del .NET Micro Framework consente solo l'arrotondamento all'intero più vicino. Manca un overload con cui poter arrotondare ad un numero specificato di posizioni decimali. E' però molto semplice realizzare un metodo che implementa tale funzionalità:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public static double Round(double number, int decimals)
{
    var exp = System.Math.Pow(10, decimals);
    var n = number * exp;
    return System.Math.Round(n) / exp;
}&lt;/pre&gt;
&lt;p&gt;L'utilizzo è immediato:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;var temp = 22.7394565;           
var rounded = Round(temp, 2);   // Restituisce 22.74
&lt;/pre&gt;</description><pubDate>Sat, 05 May 2012 16:22:14 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/avviare-il-browser-di-metro-dalla-propria-applicazione.aspx</guid><link>http://www.dotnettoscana.org/avviare-il-browser-di-metro-dalla-propria-applicazione.aspx</link><category>Tip</category><title>[Tip] Avviare il browser di Metro dalla propria applicazione</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Nelle nostre applicazioni, spesso abbiamo le necessità di aprire il browser per navigare su una pagina Internet. Solitamente, questa funzionalità si realizza utilizzando il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx" target="_self"&gt;Process.Start&lt;/a&gt;, che però non è disponibile nelle applicazioni Metro.&lt;/p&gt;
&lt;p&gt;Per aprire una pagina Internet, quindi, dobbiamo ricorrere all'apposito &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh701484.aspx" target="_blank"&gt;Launcher&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;public async void OpenWebPage(string url)
{
    await Windows.System.Launcher.LaunchUriAsync(new Uri(url));
} 
&lt;/pre&gt;
&lt;p&gt;Il metodo &lt;strong&gt;LaunchUriAsync&lt;/strong&gt; restituisce un &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br206598.aspx" target="_self"&gt;IAsyncOperation&amp;lt;bool&amp;gt;&lt;/a&gt; con cui è possibile sapere se l'operazione è andata a buon fine.&lt;/p&gt;</description><pubDate>Sat, 05 May 2012 10:34:16 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/recuperare-la-posizione-con-windows-8-prima-parte.aspx</guid><link>http://www.dotnettoscana.org/recuperare-la-posizione-con-windows-8-prima-parte.aspx</link><category>Articolo</category><title>[Articolo] Recuperare la posizione con Windows 8 (prima parte)</title><description>&lt;p&gt;Livello: Base - Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Windows 8 offre un &lt;strong&gt;supporto&lt;/strong&gt; nativo alla &lt;strong&gt;geolocalizzazione&lt;/strong&gt;: le applicazioni &lt;strong&gt;Metro&lt;/strong&gt; &lt;strong&gt;Style&lt;/strong&gt;, siano esse scritte in HTML5, C++ oppure C#/VB, possono utilizzare le funzioni del sistema operativo per &lt;strong&gt;recuperare la posizione corrente&lt;/strong&gt;, in termini di latitudine, longitudine e altitudine, e offrire così contenuti &lt;a href="http://en.wikipedia.org/wiki/Location_awareness" target="_blank"&gt;location-aware&lt;/a&gt;, ovvero che dipendono dalla posizione in cui ci si trova. In questo articolo, realizzeremo un'applicazione C# in grado di accedere a tali informazioni.&lt;/p&gt;</description><pubDate>Mon, 09 Apr 2012 12:42:36 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/async-e-await-con-c-5.aspx</guid><link>http://www.dotnettoscana.org/async-e-await-con-c-5.aspx</link><category>Articolo</category><title>[Articolo] async e await con C# 5</title><description>&lt;p data-content="news" data-content-category="Articolo"&gt;&lt;em&gt;Livello: avanzato - Autore: &lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Le nuove parole chiave &lt;a href="http://msdn.microsoft.com/en-us/library/hh156513(VS.110).aspx" target="_blank"&gt;async&lt;/a&gt; e &lt;a href="http://msdn.microsoft.com/en-us/library/hh156528(VS.110).aspx" target="_blank"&gt;await&lt;/a&gt;, introdotte con .NET 4.5, semplificano enormemente la &lt;strong&gt;scrittura&lt;/strong&gt; di &lt;strong&gt;codice asicrono&lt;/strong&gt;. Consideriamo il seguente esempio:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;private void btnDoWork_Click(object sender, EventArgs e)
{
    label1.Text = GetResult();
    MessageBox.Show("Elaborazione terminata.", "Esito operazione", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private string GetResult()
{
    // Simula una elaborazione che dura diversi secondi
    // (potrebbe essere la lettura di un file, l'accesso ad un risorsa di rete, ecc.).
    System.Threading.Thread.Sleep(10000);
    return DateTime.Now.ToString();
}
&lt;/pre&gt;
&lt;p&gt;Il metodo &lt;strong&gt;GetResult&lt;/strong&gt; effettua una &lt;a href="http://msdn.microsoft.com/en-us/library/d00bd51t.aspx" target="_blank"&gt;Thread.Sleep&lt;/a&gt; per simulare un'elaborazione della durata di 10 secondi, quindi restituisce la data e ora corrente. Quando premiamo il pulsante, richiamiamo questo metodo per mostrare il suo valore di ritorno in una Label, quindi visualizziamo una MessageBox per notificare il completamento dell'operazione.&lt;/p&gt;
&lt;p&gt;L'elaborazione è &lt;strong&gt;sincrona&lt;/strong&gt;, quindi la nostra applicazione sarà &lt;strong&gt;completamente bloccata&lt;/strong&gt; dal momento in cui premiamo il pulsante, fino al termine del metodo &lt;strong&gt;GetResult&lt;/strong&gt;: non potremo interagire con l'interfaccia, e neppure spostare la finestra.&lt;/p&gt;
&lt;p&gt;Grazie alle parole chiave &lt;strong&gt;async&lt;/strong&gt; e &lt;strong&gt;await&lt;/strong&gt; di C#5, trasformare questa elaborazione nella corrispondente versione asincrona è semplicissimo. Dobbiamo solo introdurre alcune piccole modifiche nell'ev...</description><pubDate>Sun, 25 Mar 2012 20:59:40 +0200</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/wp7-3d-lab.aspx</guid><link>http://www.dotnettoscana.org/wp7-3d-lab.aspx</link><category>Evento</category><title>[Evento] WP7 3D Game Lab</title><description>&lt;p&gt;&lt;strong&gt;&lt;a href="/materiale.aspx"&gt;Slide e codice delle sessioni&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;</description><pubDate>Sat, 24 Mar 2012 12:44:58 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/wp7-3d-game-lab-photo-gallery.aspx</guid><link>http://www.dotnettoscana.org/wp7-3d-game-lab-photo-gallery.aspx</link><category>Evento</category><title>[Evento] WP7 3D Game Lab Photo Gallery</title><description>&lt;p data-content="news" data-content-category="Evento"&gt;Ecco le foto scattate durante il &lt;a href="/wp7-3d-game-lab-photo-gallery.aspx"&gt;WP7 3D Game Lab&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 20 Mar 2012 13:34:47 +0100</pubDate></item><item><guid isPermaLink="true">http://www.dotnettoscana.org/data-e-ora-nel-fuso-orario-corrente.aspx</guid><link>http://www.dotnettoscana.org/data-e-ora-nel-fuso-orario-corrente.aspx</link><category>Tip</category><title>[Tip] Data e ora nel fuso orario corrente</title><description>&lt;p data-content-category="Tip" data-content="news"&gt;&lt;em&gt;Autore: &lt;em&gt;&lt;a href="mailto:marco.minerva@dotnettoscana.org" target="_blank"&gt;Marco Minerva&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In un'applicazione ASP .NET, la proprietà &lt;strong&gt;DateTime.Now&lt;/strong&gt; restituisce la data e l'ora del fuso orario in cui si trova il server. Di conseguenza, se ad esempio pubblichiamo il nostro sito in un server americano, otterremo il valore dell'ora nel fuso orario corrispondente. Se vogliamo trasformarla in un orario locale italiano, dobbiamo effettuare una semplice conversione:&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;var utcDate = DateTime.UtcNow;
var italianDate = TimeZoneInfo.ConvertTimeFromUtc(serverDate, TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time")); 
&lt;/pre&gt;
&lt;p&gt;Innanzi tutto, recuperiamo l'orario in formato UTC, quindi usiamo il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/system.timezoneinfo.converttimefromutc.aspx" target="_blank"&gt;TimeZoneInfo.ConvertTimeFromUtc&lt;/a&gt; per ottenere il corrispondente valore nel fuso orario specificato: &lt;em&gt;W. Europe Standard Time&lt;/em&gt; è l'ID del nostro fuso orario.&lt;/p&gt;
&lt;p&gt;Gli ID delle diverse zone si possono recuperare con &lt;a href="http://msdn.microsoft.com/en-us/library/system.timezoneinfo.getsystemtimezones.aspx" target="_blank"&gt;TimeZoneInfo.GetSystemTimeZones&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Sun, 18 Mar 2012 16:28:03 +0100</pubDate></item></channel></rss>