<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.devleap.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it"><title type="html">devcon</title><subtitle type="html">Blog ufficiale di DevCon</subtitle><id>http://blogs.devleap.com/devcon/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.devleap.com/devcon/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20611.960">Community Server</generator><updated>2011-03-16T10:09:41Z</updated><entry><title>Prossimo appuntamento: .NET Campus…114 iscritti in tre ore !</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/12/02/prossimo-appuntamento-net-campus-114-iscritti-in-tre-ore.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/12/02/prossimo-appuntamento-net-campus-114-iscritti-in-tre-ore.aspx</id><published>2011-12-02T14:24:27Z</published><updated>2011-12-02T14:24:27Z</updated><content type="html">&lt;p&gt;Stamani con quel pizzico di apprensione che accompagna sempre la pubblicazione di un sito web (o di una qualunque applicazione) abbiamo fatto uscire il sito del .NET Campus 2012.&lt;/p&gt;  &lt;p&gt;Grazie al nostro architetto (non del software…un architetto nel vero senso della parola) e alla collaborazione fra &lt;a href="http://we.thinkahead.it" target="_blank"&gt;ThinkAhead&lt;/a&gt; e &lt;a target="_blank"&gt;WhiteLemon&lt;/a&gt; il sito, già nelle sue prime fasi beta, è piaciuto molto. &lt;/p&gt;  &lt;p&gt;Lo stile Metro ha colpito subito…almeno tutti coloro che ci hanno scritto positivamente.&lt;/p&gt;  &lt;p&gt;Le iscrizioni sono aperte dalle 11.00 e abbiamo già raggiunto quota 114 (senza barare).&lt;/p&gt;  &lt;p&gt;Potete partecipare anche pubblicando il vostro &lt;a href="http://www.dotnetcampus.it/profile/list/1" target="_blank"&gt;profilo sul sito&lt;/a&gt; del Campus: i profili saranno visibili sul sito (non l’email ovviamente) e gli sponsor della manifestazione potranno contattarvi direttamente.&lt;/p&gt;  &lt;p&gt;Ci sono molto novità rispetto agli scorsi anni sul sito, ma vi lascio il piacere (spero) di scoprirle da soli visitando di frequente il sito.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22929" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Save The Planet su Windows 8 Preview</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/10/14/save-the-planet-su-windows-8-preview.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/10/14/save-the-planet-su-windows-8-preview.aspx</id><published>2011-10-14T11:49:17Z</published><updated>2011-10-14T11:49:17Z</updated><content type="html">&lt;p&gt;A DevCon 2011 vedremo insieme, fra le altre demo, il codice della nostra applicazione Save The Planet, nata un anno orsono per Windows Phone 7 e portata su Windows 8 come Metro-style app.&lt;/p&gt;  &lt;p&gt;L’obiettivo del porting non è quello di rendere disponibile da domani l’applicazione sul Windows Store (che ancora non è disponibile), ma quello di studiare a fondo il tutto tramite una applicazione reale.&lt;/p&gt;  &lt;p&gt;La UI deve ancora essere terminata e migliorata, ma per una preview che usa il profilo Roaming di WinRT e le nuove modalità (pattern?) di chiamate asincrone, possiamo considerare chiusa l’iterazione con successo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_484556C0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_13FC3207.png" width="528" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il tutto ha richiesto un giorno intero di lavoro in tre persone che hanno lavorato in parellelo su, rispettivamente, componenti di basso livello, XAML di presentazione e realizzazioni grafiche. Tutto questo è partito dopo aver studiato a fondo la piattaforma e aver fatto mille prove scrivendo applicazioni demo. &lt;/p&gt;  &lt;p&gt;Ancora una volta l’architettura fatta bene paga ! Se avessimo progettato l’applicazione Windows Phone 7 molitica o comunque senza attenzione alle chiamate al file system (isolated storage) e ai servizi WCF, avremmo sudato 7 camice per fare il porting e adesso avremmo solamente due versioni dei sorgenti da gestire e manutenere.&lt;/p&gt;  &lt;p&gt;Il tutto presenta anche un Search integrato con Windows, la possibilità di fare Share delle azioni compiute, la modifica da codice del tile associato all’applicazione, l’utilizzo di un tile secondario e della webcam per salvare l’immagine dell’utente durante il compimento delle azioni proposte.&lt;/p&gt;  &lt;p&gt;Quì sotto il tile preview di default&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_49A15194.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_3F7C8A9C.png" width="531" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;e quì sotto la modifica del tile con l’ultima azione effettuata, il conto totale e un secondo tile per informare l’utente sullo stato delle sue azioni.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_1B93B342.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_1821F5CD.png" width="532" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ci vediamo a &lt;a href="http://devcon.devleap.com/" target="_blank"&gt;DevCon 2011&lt;/a&gt; per i dettagli.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22867" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Share Application Data with Contract</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/16/share-application-data-with-contract.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/16/share-application-data-with-contract.aspx</id><published>2011-09-15T23:16:23Z</published><updated>2011-09-15T23:16:23Z</updated><content type="html">&lt;p&gt;In Windows 8, è possibile condividere dati da una applicazione all’altra senza le applicazioni si conoscano a priori. Il tutto viene resto possibile da contratti, nello specifico lo Share Contract…il contratto appunto che regola la condivisione di informazioni. &lt;/p&gt;  &lt;p&gt;In pratica WinRT mette a disposizione alcune contratti nativi che, se “implementati” dalle applicazioni consentono al runtime di fare da ponte per operazioni complesse fra applicazioni come la ricerca integrata, lo scambio di informazioni, la condivisione di dati.&lt;/p&gt;  &lt;p&gt;Ad esempio una applicazione di gestione foto potrebbe condividere le immagini ad altre applicazioni evitando l’import/export che porta, come accade inevitabilmente oggi, al copia/incolla di informazioni ovvero alla duplicazione. La seconda conseguenza negativa del copia/incolla (esattamente come nel codice (VS 2011 ha una serie di strumenti per ridurre questo problema..ne parliamo a DevCon)) è l’aggiornamento: ad esempio se si modifica una foto nell’applicazione o semplicemente arricchiamo le informazioni (metadati) della foto, la seconda applicazione non ottiene queste modifiche a meno di un nuovo export/import.&lt;/p&gt;  &lt;p&gt;Le applicazioni sono “disaccoppiate” nel senso che non si devono conoscere a priori, ma semplicemente aderire al contratto.&lt;/p&gt;  &lt;p&gt;Lo slogan, semplice e efficace: “Share provide a lightweight, in context, easy experience for accomplishing sharing” e la prima implementazione potrebbe essere i settaggi applicativi.&lt;/p&gt;  &lt;p&gt;L’azione di share viene invocata dall’utente tramite l’apposita charm della “toolbar” di destra che presenterà tutte le applicazioni che “consentono la ricezione” del contenuto: le applicazioni vengono filtrate in base al tipo di contenuto che sono in grado di ricevere. Ad esempio se una applicazione condivide immagini, appariranno solo applicazioni in grado di ricevere contenuti di tipo image.&lt;/p&gt;  &lt;p&gt;Nell’immagine seguente, dall’applicazione di gestione foto, scelta una delle immagini, si può aprire barra dei charm a destra, da cui si accede alla condivisione tramite il charm relativo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/clip_image002_3CBEB6DE.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.devleap.com/blogs/devcon/clip_image002_thumb_72E02F2D.jpg" width="586" height="331" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La barra, in alto, presenta quanto l’applicazione “source” ha deciso di fornire, mentre nella parte in basso si trovano le applicazioni che possono ricevere il contenuto e le applicazioni più frequentemente utilizzate. &lt;/p&gt;  &lt;p&gt;Fra le applicazioni che possono ricevere immagini troviamo Socialite: è una applicazione di esempio installata su Wnidows 8 per la gestione centralizzata dei social network (Facebook, Twitter, Flicker). &lt;/p&gt;  &lt;p&gt;Scelta l’applicazione, viene invocato un metodo all’interno dell’applicazione stessa, la quale presenta una interfaccia custom, nel nostro caso il testo per inviare la foto su Facebook.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/clip_image0025_5114569C.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002[5]" border="0" alt="clip_image002[5]" src="http://blogs.devleap.com/blogs/devcon/clip_image0025_thumb_5C5D6AD9.jpg" width="593" height="335" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si possono condividere più imformazioni verso le altre applicazioni: ad esempio più foto, oppure più elementi testuali.Il passaggio dei dati è asincrono e prosegue anche se usciamo dalle applicazioni. E’ anche possibile controllare lo stato di avanzamento della condivisione.&lt;/p&gt;  &lt;p&gt;L’applicazione Source deve registrarsi al DataTransfer Manager e deve preparare il DataPackage che comprende le informazioni da condividere. La richiesta dell’utente invoca un evento nell’applicazione Source che si preoccupa di riempire il DataPackage e completa la richista in asincrono. Il Broker nativo seleziona le applicazioni che sono in grado di ricevere questo contenuto (target apps) e le mostra nella user interface.&lt;/p&gt;  &lt;p&gt;L’applicazione scelta come target effettivo dall’utente viene attivata dal broker nativo il quale si preoccupa in modo trasparente di fornire all’applicazione il DataPackage. L’applicazione target informerà il broker al termine dell’operazione di processing del package.&lt;/p&gt;  &lt;p&gt;L’interfaccia è completamente personalizzabile e il codice è relativamente semplice: questa parte sarà trattata alla nostra &lt;a href="http://devcon.devleap.com/" target="_blank"&gt;DevCon 2011&lt;/a&gt; in cui vedremo anche il codice all’opera !&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22803" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>TFS Preview: VS 2010 Access</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/15/tfs-preview-vs-2010-access.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/15/tfs-preview-vs-2010-access.aspx</id><published>2011-09-15T14:35:40Z</published><updated>2011-09-15T14:35:40Z</updated><content type="html">&lt;p&gt;Come indicato nel post precedente, è possibile accedere a TFS Preview anche da Visual Studio 2010. E’ sufficiente installare una hotfix (&lt;a href="http://go.microsoft.com/fwlink/?LinkID=212065" target="_blank"&gt;KB2581206&lt;/a&gt;) per ottenere I componenti necessari all’autenticazione con Windows Live verso TFS Preview da Team Explorer.&lt;/p&gt;  &lt;p&gt;La prima schermata del Team Explorer è identica:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_62088E5B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_353F88E8.png" width="644" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si aggiunge poi il server relativo utilizzando il nome scelto per l’account:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_649DD1E7.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_57472307.png" width="644" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Da quì la maschera di autenticazione “installata” con la KB di cui sopra:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_04F4A033.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_1F80F0B2.png" width="644" height="415" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La veririca delle credenziali viene poi effettuata da ACS su Windows Azure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_2F9C92DE.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_04F08C34.png" width="644" height="415" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Dopo l’autenticazione il server viene presentato nell’elenco come “se fosse un server TFS tradizionale” e selezionandolo viene mostrato l’elenco dei progetti:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_01129BCA.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_424D7896.png" width="644" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Da quì…si procede come sempre.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22797" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>build: qualche foto</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/15/build-qualche-foto.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/15/build-qualche-foto.aspx</id><published>2011-09-15T13:08:33Z</published><updated>2011-09-15T13:08:33Z</updated><content type="html">&lt;p&gt;Dopo vari post tecnici, seppur introduttivi, un paio di foto fatte al cellulare. Stasera, se riusciamo montiamo anche il video.&lt;/p&gt;  &lt;p&gt;Sul palco ci sono 45 nuovi device con a bordo Windows 8&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/WP_000285_6E169DE6.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="WP_000285" border="0" alt="WP_000285" src="http://blogs.devleap.com/blogs/devcon/WP_000285_thumb_473861D9.jpg" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/WP_000286_6A38AD7C.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="WP_000286" border="0" alt="WP_000286" src="http://blogs.devleap.com/blogs/devcon/WP_000286_thumb_079AD8BC.jpg" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/WP_000287_6AD13DD9.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="WP_000287" border="0" alt="WP_000287" src="http://blogs.devleap.com/blogs/devcon/WP_000287_thumb_01636654.jpg" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/WP_000289_424235F8.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="WP_000289" border="0" alt="WP_000289" src="http://blogs.devleap.com/blogs/devcon/WP_000289_thumb_0ACBFEFD.jpg" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/WP_000292_19B32E17.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="WP_000292" border="0" alt="WP_000292" src="http://blogs.devleap.com/blogs/devcon/WP_000292_thumb_3B6EE0DB.jpg" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22796" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>SQL Azure News</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/15/sql-azure-news.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/15/sql-azure-news.aspx</id><published>2011-09-15T12:55:00Z</published><updated>2011-09-15T12:55:00Z</updated><content type="html">&lt;p&gt;Da ormai un mesetto sono disponibili alcune nuove funzionalità che ruotano intorno ai servizi esposti da SQL Azure. &lt;/p&gt;  &lt;p&gt;La prima novità è il supporto per più server all’interno della stessa subscription; è possibile creare più SQL Aaure server all’interno di un unica subscription per rendere molto più semplice il deployment di più database su server diversi, sia all’interno dello stesso datacenter, sia su datacenter diversi.&lt;/p&gt;  &lt;p&gt;Sono state inoltre esposte le Management API, utilizzabile con la stessa filosofia delle Management API di Windows Azure (e AppFabric). SQL Azure diventa configurabile e gestibile tramite interfacce remote.&lt;/p&gt;  &lt;p&gt;Per configurare l’accesso alle API è necessario installare un certificato digitale che dovrà essere utilizzato per autenticare tutte le richieste verso le Management API da remoto.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_thumb5_thumb_61CDE012.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image_thumb5_thumb" border="0" alt="image_thumb5_thumb" src="http://blogs.devleap.com/blogs/devcon/image_thumb5_thumb_thumb_5C4F49A1.png" width="507" height="425" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Premuto il pulsante Manage Certificate, si viene dirottati verso l’interfaccia di gestione dei certificati digitali comune a tutte la piattaforma.&lt;/p&gt;  &lt;p&gt;Per gli sviluppatori Java è stato rilascito il SQL Server JDBC Driver 3.0 (Type 4 JDBC) che supporta sia SQL Server che SQL Azure.&lt;/p&gt;  &lt;p&gt;Ultima novità è il supporto per DAC Framework: la prossima versione di SQL Server (“Denali”, se non sbaglio in CTP 2 in questi giorni) avrà il supporto nativo per la gestione di SQL Azure, così come una serie di strumenti per migliorare l’import e l’export di dati e strutture da e verso SQL Azure.&lt;/p&gt;  &lt;p&gt;Il DAC Framework consente di eseguire aggiornamenti in-place dello schema preservando i dati all’interno delle table. &lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22795" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Team Foundation Service</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/15/team-foundation-service.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/15/team-foundation-service.aspx</id><published>2011-09-15T02:23:26Z</published><updated>2011-09-15T02:23:26Z</updated><content type="html">&lt;p&gt;Non si chiama più Server ? Si, si chiama ancora Server (vedi post precedente su Visual Studio 11), la versione che si installa on-premises.&lt;/p&gt;  &lt;p&gt;Si chiama invece Team Foundation Service la versione SaaS che Microsoft propone su Windows Azure e utilizzabile già a partire da oggi con il codice di accesso fornito alla BUILD e presto disponibile per gli abbonati MSDN.&lt;/p&gt;  &lt;p&gt;La sessione prende il nome “Taking Your Application Lifecycle Management to the Cloud with the Team Foundation Service” e racchiude nel suo titolo praticamente tutto il significato del prodotto.&lt;/p&gt;  &lt;p&gt;Ad oggi esistono alcuni partner che offrono l’hosting di TFS (spesso a prezzi proibitivi…nostro parere) come TeamDevCentral, Praktik, SAAS e così via. Team Foundation Service è “un altro modo per ottenere TFS”, senza dover gestire hardware e software.&lt;/p&gt;  &lt;p&gt;Non comprende, nella sua prima versione, il Virtual Test Lab Management, l’integrazione con SharePoint e Data Warehouse &amp;amp; Reporting e il Build Server. Quest’ultimo può essere installato su un client o su un server on-premises e accedere al progetto su TFS.&lt;/p&gt;  &lt;p&gt;L’accesso è garantito da Team Explorer Everywhere quindi consente anche agli sviluppatori che usano Eclipse una “perfetta” integrazione come avviene per la versione TFS on-premises. L’accesso è via HTTP quindi è consentito a “chiunque” abbia una connessione internet (permessi di accesso rispettati, ovviamente). Essendo proposto come SaaS, non occorre installare o configurare il sistema operativo e le singole componenti: in realtà non è ancora su Windows Azure, ma, a parte il fatto che lo sarà presto, questo aspetto ci dovrebbe interessare il giusto.&lt;/p&gt;  &lt;p&gt;Ad oggi occorre creare un Account utilizzando il codice promozionale e, scegliere un url per il nostro servizio che, riceverà il suffisso “.tfspreview.com.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_7954B268.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_05FE9720.png" width="703" height="554" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Occorrono circa 20 secondi per creare il tutto.Conviene, per adesso, salvarsi l’indirizzo perchè non c’è modo, ad oggi di rintracciarlo…ricordatevi…    &lt;br /&gt;Developer Preview :-) L’autenticazione è gestita con ACS già adesso.&lt;/p&gt;  &lt;p&gt;Nel caso non si disponga di un codice è possibile provare a richiederlo tramite l’interfaccia:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_03C14CBD.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_1F15DD59.png" width="709" height="560" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;E’ possibile connettersi al nostro server anche da Visual Studio 2010 SP1 e da Test Manager 2010 SP1, dal Build Server e, ovviamente Visual Studio 11.&lt;/p&gt;  &lt;p&gt;La creazione dell’account termina con la schermata principale del portale L’interfaccia è metro-style per accordarsi con il resto della piattaforma ed è stata completamente riscritta rispetto all’attuale Web Access della versione 2010. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_42AEB959.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_269D38C7.png" width="712" height="562" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;E’ possibile creare un Team Project direttamente dall’interfaccia web dove, come sempre si scegliere un template: sono disponibili Visual Studio Scrum 2.0, MSF for Agile Development 6.0 e MSF for CMMI 6.0, tutti in Preview 1.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_495DAEDD.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_1CF0B692.png" width="717" height="565" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il wizard propone “finish” senza ulteriori opzioni visto che non è disponibile sharepoint e reporting.&lt;/p&gt;  &lt;p&gt;Al termine si accede alla home page da cui gestire il nostro progetto.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_1AB36C2F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_526564B8.png" width="719" height="567" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cliccando sul progetto si entra “nel vivo”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_091F6D65.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_26FD2FBF.png" width="768" height="606" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La prima operazione da effettuare è creare gli utenti e il relativo profilo. Ad ogni utente si può associare una foto per rendere più “umana” l’interazione che vedremo più avanti. Gli utenti possono essere poi inseriti in gruppi che non si discostano dall’attuale versione on-premises: Builders, Contributors, Administrators, Readers. E’ possibile anche creare gruppi di utenti che lavorano nello stesso team: per default viene creato My Team. &lt;/p&gt;  &lt;p&gt;E’ poi possibile invitare l’utente creato via mail. L’utente che ha creato il progetto viene ovviamente considerato l’administrator per default.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_2029DAA2.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_2E185838.png" width="783" height="617" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Se si lavora seguendo una metodologia agile, probabilmente la prima operazione da effettuare è la creazione dei vari PBI (o User Story). L’assegnazione di un PBI ad uno sprint è possibile tramite semplici operazioni di drag&amp;amp;drop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_050CF795.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_407C94EE.png" width="771" height="608" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;L’interfaccia, prima disponibile solo con strumenti di terze parti, presenta la classica Dashboard con le User Stories e le diverse task:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_28E19523.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_15043A28.png" width="760" height="599" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il drag&amp;amp;drop è veramente semplice:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_15F8D7AD.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_08064618.png" width="816" height="495" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La classica Dashboard:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_2FF8A99D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_7153105C.png" width="807" height="489" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al della configurazione dal portale è necessario scaricare il software per connersi al progetto da Visual Studio, Excel, Project, Test Manager. L’accesso viene infatti garantito dall’account Windows Live dell’utente: l’interfaccia client propone il classico dialog per l’inserimento di queste informazioni:&lt;/p&gt;  &lt;p&gt;Il Team Explorer è stato ridisegnato per essere più vicino alle specifiche Metro e per fornire le operazioni più comuni in una interfaccia semplificata che le rende più accessibili. E’ possibile installare side-by-side il Team Explorer rispetto alla versione attuale senza problemi.&lt;/p&gt;  &lt;p&gt;L’interfaccia consente di eseguire operazioni che erano prensenti solo in Team Explorer come la visualizzazione di file, la comparazione fra file e versioni, la storia delle modifiche eseguite in un changeset per ogni singolo file.&lt;/p&gt;  &lt;p&gt;Sarà possibile “spostare” progetti on-premises sul cloud e viceversa con il tool di migrazione che sarà disponibile a breve.&lt;/p&gt;  &lt;p&gt;Dal portale si possono inviare feedback e suggestion, così come invitare altri a partecipare al programma “beta”: è possibile generare 5 inviti per ogni account.&lt;/p&gt;  &lt;p&gt;Ad oggi si tratta di una Developer Preview (come Windows 8, Windows Server 8 e Visual Studio 11), ma è già abbastanza “fornito” in termini di feature.&lt;/p&gt;  &lt;p&gt;Due frasi importanti dal team di sviluppo:    &lt;br /&gt;&lt;strong&gt;- We will upgrade your data to future releases !      &lt;br /&gt;- &lt;/strong&gt;&lt;strong&gt;Someday, we may start charging for the service !&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Da oggi è disponibile, per gli abbonati MSDN, la versione Developer Preview di TFS on-premises insieme a .NET 4.5 Developer Preview:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_3DD70166.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_11D63C10.png" width="853" height="517" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Per quanto riguarda il Code Reviewing che abbiamo citato nel post dedicato, è disponibile direttamente dalla creazione dei work.item, l’apposita voce:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.devleap.com/blogs/devcon/image_07A14F4B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.devleap.com/blogs/devcon/image_thumb_166832CB.png" width="845" height="666" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ne parliamo a DevCon 2011.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22792" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Async in .NET 4.5</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/15/async-in-net-4-5.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/15/async-in-net-4-5.aspx</id><published>2011-09-15T00:39:40Z</published><updated>2011-09-15T00:39:40Z</updated><content type="html">&lt;p&gt;Ricordo il 1997, quando a dicembre, uscì MSMQ, e mi innamorai delle “cose” asincrone. Non che MSMQ abbia inventato “l’asincrono” e neanche sia direttamente correlato all’esempio di questo post: semplicemente mi ha aperto gli occhi su certi aspetti che prima non mi si erano presentati nelle applicazioni che scrivevo.&lt;/p&gt;  &lt;p&gt;Sono passari 15 anni da quei giorni e il .NET Framework 4.5 compie un ulteriore passo avanti nella semplificazione del codice asincrono. Dopo delegate, invoke e begin invoke, le page task di asp.net, gli handler asincroni e nel framework 4.0 la Task Parallel Library, arrivano nuove keyword per C#, VB e non ultimo Javascript per applicazioni WinRT (Windows Runtime).&lt;/p&gt;  &lt;p&gt;Le API WinRT che possono impiegare del tempo (long running operation vengono definite) hanno la possibilità di essere chiamate in asincrono.Il tempo definito per long running è 50 millisecondi.&lt;/p&gt;  &lt;p&gt;Nel framework attuale è possibile eseguire una operazione asincrona indicando la callback che il thread secondario dovrà invocare al termine delle operazioni: la callback, nel pattern Begin/End viene passata al metodo Begin, mentre nel pattern Async (poco usato dalla classi .NET) viene indicato come event handler all’evento Completed.&lt;/p&gt;  &lt;p&gt;Ad esempio il codice seguente&lt;/p&gt;  &lt;p&gt;try    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160; HttpWebRequest myHttpWebRequest= (HttpWebRequest)WebRequest.Create(&lt;a href="http://www.devleap.com"&gt;http://www.devleap.com&lt;/a&gt;);     &lt;br /&gt;&amp;#160;&amp;#160; IAsyncResult result= (IAsyncResult) myHttpWebRequest.BeginGetResponse(new AsyncCallback(RespCallback),myRequestState);     &lt;br /&gt;}     &lt;br /&gt;catch(WebException ex)     &lt;br /&gt;{&amp;#160;&amp;#160; // Gestione eccezioni }&lt;/p&gt;  &lt;p&gt;invoca il metodo BeginGetResponse indicando la callback sul metodo RespCallback che dovrà rispettare la firma, recuperare l’oggetto HttpWebRequest dall’Object State oppure creare una nuova istanza e invocare il metodo EndGetResponse.&lt;/p&gt;  &lt;p&gt;private static void RespCallback(IAsyncResult asynchronousResult)    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160; try     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RequestState myRequestState=(RequestState) asynchronousResult.AsyncState;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HttpWebRequest myHttpWebRequest=myRequestState.request;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; myRequestState.response = (HttpWebResponse) myHttpWebRequest.EndGetResponse(asynchronousResult);     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Processare la risposta     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch(WebException e)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { // Gestione eccezioni }&lt;/p&gt;  &lt;p&gt;Nel metodo di callback occorre gestire anche le eccezioni “raddoppiando” il codice già presente nel metodo che invoca il metodo asincrono &lt;/p&gt;  &lt;p&gt;Con l’arrivo di .NET 4.5, come abbiamo avuto modo di evidenziare negli articoli sul Service Pack 1 Refresh di Visual Studio 2010, si semplifica ulteriormente il codice con le clausole async e await. &lt;/p&gt;  &lt;p&gt;try    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160; var folder = KnownFolders.DocumentsLibrary;     &lt;br /&gt;&amp;#160;&amp;#160; var subFolders = await folder.GetFolderAsync())     &lt;br /&gt;}     &lt;br /&gt;catch     &lt;br /&gt;{ // Gestione eccezione}&lt;/p&gt;  &lt;p&gt;Il codice diventa molto più leggibile, semplice da debuggare e ispezionare e la gestione delle eccezioni è identica al codice che avremo scritto non usando nessuna modalità asrincona.&lt;/p&gt;  &lt;p&gt;Sicuramente la leggibilità si apprezza ancora di più nel caso in cui il risultato dell’operazione debba essere usato in contesti più “complessi” come il seguente:&lt;/p&gt;  &lt;p&gt;var folder = KnownFolders.DocumentsLibrary;    &lt;br /&gt;foreach(var subFolder in await folder.GetFolderAsync())     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160; var foundFiles ….&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;Inoltre, non è più necessario utilizzare BeginInvoke da thread secondari per aggiornare la user interface in quanto la callback indicata con le nuove clausole gira nello stesso thread che ha eseguito la chiamata.&lt;/p&gt;  &lt;p&gt;Non solo, ma la concorrenza non è più un problema (a meno di non introdurla noi nel codice) perchè in Windows Runtime (WinRT) è stata eliminata la necessità di gestire la concorrenza sui controlli della User Interface.&lt;/p&gt;  &lt;p&gt;In javascript la chiave await corrispondente è then. Per mantenere consistenza con il .NET FW potremmo dire che la funzione contenuta nel metodo then è un anonymous metod.&lt;/p&gt;  &lt;p&gt;file.openAsync(Storage.FileAccessMode.read).&lt;strong&gt;then&lt;/strong&gt;(function (stream) {     &lt;br /&gt;&amp;#160;&amp;#160; // Codice     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;in realtà in javascript parliamo di “promise” per il metodo then, ma, terminologia dei due mondi a parte, le idee e la loro realizzazione sono consistenti.&lt;/p&gt;  &lt;p&gt;Le promise possono essere concatenate e vengono gestite automaticamente dal runtime di javascript di WinRT.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22789" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Visual Studio 11 ALM: what’s new</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/14/visual-studio-11-alm-what-s-new.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/14/visual-studio-11-alm-what-s-new.aspx</id><published>2011-09-14T21:53:42Z</published><updated>2011-09-14T21:53:42Z</updated><content type="html">&lt;p&gt;Chi ci segue sa che, da sempre, noi di DevLeap crediamo molto nel modo di gestire un progetto software, nella sua architettura, nello sviluppo da manuale di ogni singolo componente e, soprattutto, nel ciclo di vita del progetto stesso. Siamo stati i primi in Italia a dedicare una intera conferenza a Visual Studio Team System (era l’anno 2006 e parlavamo della versione 2005 di Visual Studio e di Team Foundation Server). Nello stesso periodo è nato il nostro corso tecnico su VSTS,&lt;/p&gt;  &lt;p&gt;Nelle varie conferenze DevLeap abbiamo sempre inserito argomenti riguardanti la gestione del ciclo di vita del software. A DevCon 2010, è intervenuto Andrea Provaglio, Scrum Master, per tenere una sessione introduttiva sulle metodologie agile per lo sviluppo di software.&lt;/p&gt;  &lt;p&gt;Quest’anno è nato anche il nostro corso Agile Practices using TFS che ha l’obiettivo di introdurre il partecipante in modo concreto e guidato alle pratiche Agile, sia dal punto di vista metodologico che dal punto di vista pratico.&lt;/p&gt;  &lt;p&gt;Alla build è stato dato grande spazio alla gestione del ciclo di vita del software con Visual Studio e TFS 11. Per prima cosa è stato annunciato Team Foundation Service Preview, il servizio, ospitato su Windows Azure che fornisce TSF come SaaS.&lt;/p&gt;  &lt;p&gt;La prima novità riguarda la nuova interfaccia web-based che consente di effettuare tutte le operazioni che prima erano disponibili sono all’interno di Team Explorer (come ad esempio Queue Build). &lt;/p&gt;  &lt;p&gt;L’interfaccia è molto intuitiva e consente di fare anche operazioni che richiedevano prodotti di terze parti come ad esempio la prioritarizzazione della task di una user story all’interno di uno sprint o iteration.&lt;/p&gt;  &lt;p&gt;Sono stati aggiunti diversi report (in HTML puro) per controllare lo stato di avanzamento dei lavori.Molti di questi sono aggiornati in tempo reale, come ad esempio il grafico di Burndown.&lt;/p&gt;  &lt;p&gt;E’ possibile organizzare le task all’interno degli sprint e farsi carico del progresso di ciascuna in modo visuale: ad esempio è prossibile fare il drag&amp;amp;drop di una task dallo stato di in progress a done nella classica visalizzazione dashboard. Nella versione attuale occorrono prodotti di terze parti come ad esempio TFS Workbench; nella prossima versione sarà tutto integrato.&lt;/p&gt;  &lt;p&gt;Sul client viene cachata una porzione del database di TFS in modo da evitare continue richieste durante l’elaborazione o la consultazione dei dati.Ad esempio l’architecture explorer cacha i dati localmente. Inoltre, il sistema di drill-down da namespace a classe a metodo e così via è diventato molto più semplice e immediato.&lt;/p&gt;  &lt;p&gt;Il Team Explorer è stato ridisegnato come interfaccia per allinearsi al resto di Visual Studio 11: l’interfaccia mostra i lavori in-progress ed è possibile modificare lo stato dei work-item direttamente da questa interfaccia. Inoltre, è possibile effettuare ricerche testuali all’interno dei work-item direttamente dalla finestra “My Work” che rappresenta le “cose” assegnate alla singola persona.&lt;/p&gt;  &lt;p&gt;L’interfaccia consent, a fronte di un check-in, di richiedere una code review: in questo caso viene creato uno shelveset in automatico e viene inviata una richiesta al code reviewer; il reviewer può ispezionare il codice, valutarlo e decidere se “far passare” la review o “bocciare” il codice. In ogni caso si possono inserire commenti direttamente durante la review che “rimangono legati al sorgente” in questione e diventano visibile al developer che ha richiesto la review.&lt;/p&gt;  &lt;p&gt;Molte novità riguardano la parte di testing. La prima novità riguarda la possibilità di utilizzare qualunque strumento e integrarlo all’interno del prodotto.L’interfaccia presenta una nuova finestra, denominata Unit Test Explorer, che semplifica la visualizazione e la gestione dei test all’interno della solution.&lt;/p&gt;  &lt;p&gt;Il lavoro in team diventa sempre più importante…forse lo è sempre stato…ma sempre di più gli sforzi vengono rivolti non solo alle API, ma anche al modo di approcciare lo sviluppo. &lt;/p&gt;  &lt;p&gt;Una novità molto importante che segue il pattern “Copy/Paste” :-), consente di rintracciare il codice simile all’interno di una solution per eliminare il codice duplicato: il codice duplicato spesso nasce da un copia/incolla, e l’idea di fondo è, “non preoccuparsi da subito di duplicare un pezzo di codice, ma rintracciarlo velocemente appena funziona e eliminarlo rifattorizzando il tutto”.&lt;/p&gt;  &lt;p&gt;Test Manager adesso consente di inserire rich text all’interno degli step di un test case per rendere più “comprensibile” e soprattutto più “visibile” il testo stesso.&lt;/p&gt;  &lt;p&gt;Ne parliamo molto presto insieme&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22786" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Windows Azure</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/14/windows-azure.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/14/windows-azure.aspx</id><published>2011-09-14T17:34:58Z</published><updated>2011-09-14T17:34:58Z</updated><content type="html">&lt;p&gt;Annunci importanti intorno a Windows Azure&lt;/p&gt;  &lt;p&gt;Windows Azure SDK 1.5&lt;/p&gt;  &lt;p&gt;Windows Azure Toolkit for Windows 8&lt;/p&gt;  &lt;p&gt;Geo-replication dello Storage: lo storage è replicabile in diversi datacenter. In pratica è arrivato il “cluster” geografico per la parte dati&lt;/p&gt;  &lt;p&gt;Service Bus: vedere i miei post precedenti&lt;/p&gt;  &lt;p&gt;Marketplace: 25 nuovi paesi si aggiungono al marketplace per Windows Azure.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22785" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Windows 8: User Experience</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/14/windows-8-user-experience.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/14/windows-8-user-experience.aspx</id><published>2011-09-14T17:21:22Z</published><updated>2011-09-14T17:21:22Z</updated><content type="html">&lt;p&gt;Come avremo modo di vedere presto insieme, la nuova user interface di Windows 8 (e di Windows Server 8) si basa sui principi Metro che, con Luca Regnicoli, abbiamo avuto modo di analizzare nelle varie conferenze e negli articoli che abbiamo scritto, come Devleap, sulle varie riviste.&lt;/p&gt;  &lt;p&gt;Abbiamo avuto modo di vedere METRO all’opera su Windows Phone 7 da ormai un annetto e mezzo: la stessa filosofia è stata portata anche nell’ambiente desktop, come avevamo abuto modo di “azzardare” già a DevCon 2010.&lt;/p&gt;  &lt;p&gt;I device che si sono affacciati sul mercato e soprattutto quelli che arriverano presentano caratteristiche totalmente diverse l’uno dall’altro: è la vecchia storia che, chi come noi, ha vissuto nel mondo mobile dagli anni 90, conosce molto bene. La prima differenza fra un device è l’altro è sicuramente il form factor: alcuni device hanno solo lo schermo, come i tablet puri, altri hanno la penna (che sta tornando sul mercato dopo un periodo di assenza) per poter “scrivere” meglio sullo schermo, altri sono “portatili” più o meno leggeri, altri sono i rappresentati dai classici PC che magari, ormai sempre più spesso, sono collegati a due monitor.&lt;/p&gt;  &lt;p&gt;Inoltre ci sono contesti diversi di utilizzo: un tablet o un phone si usa mentre si cammina, alla fermata dell’autobus, cosa che è difficile da fare con un portatile, seppur leggero. Altri “oggetti” si usano solo seduti ad una scrivania in condizioni di luce ottimali.&lt;/p&gt;  &lt;p&gt;Ripetiamo queste frasi dal 1997 quando iniziamo a sviluppare applicazioni mobile quindi…niente di nuovo &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.devleap.com/blogs/devcon/wlEmoticon-smile_2A9DC035.png" /&gt;…..ma…da domani questa sarà la realtà in cui si troveranno gli utenti delle nostre applicazioni gestionali: non vogliamo dire che chi lavora da un commercialista inserirà le fatture alla fermata dell’autobus, ma che tutti, nessuno escluso, avranno sotto mano device diversi e li utilizzerà in contesti diversi.&lt;/p&gt;  &lt;p&gt;Windows 8 viene incontro a queste esigenze dai vari punti di vista. L’interfaccia è&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Touch-First: &lt;/strong&gt;tutto è pensato per essere “toccato”. Mouse e tastiera restano importanti, ma visto che entro un paio di anni, tutti gli schermi saranno “toccabili” e che entro 5 anni uno schermo non “touch” ci sembrerà rotto, è bene pensare alla nostra prossima applicazione (o alla rivisitazione di una esistenza) per sfruttare anche questo sistema di input. Sarebbe un errore progettare “solo touch” così come lo è progettare “no touch”. Ricordiamoci che touch non vuol dire ripercorrere le funzionalità del mouse con un dito…ma pensare ad una nuova esperienza di navigazione: molte cose si fanno meglio usando direttamente le dita sullo schermo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Scaling:&lt;/strong&gt; la nostra applicazione deve scalare bene su vari schermi. Non stiamo parlando di performance, ma di dimensioni video. Ho sotto mano un device Windows 8 che ha uno schermo orientabile, è multi-touch, ha una tastiera collegabile a richiesta e una tastiera on-screen. Nell’esperienza metro inoltre è possibile eseguire il resize delle applicazioni (notare che non abbiamo usato il termine finestre&amp;quot;) per affiancare all’applicazione un menu di sistema o un’altra applicazione. Non solo ci dobbiamo adattare alla risoluzione video, ma anche al dimensionamento dello spazio disponibile in base a condizioni dinamiche&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Metro-style Controls:&lt;/strong&gt; per semplificarci la vita, sia in XAML che in HTML5, sono stati pensati nuovi controlli (per HTML sono stili) che presentano il contenuto seguendo le linee guida metro.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Live Tile: &lt;/strong&gt;seguendo lo schema Windows Phone 7/Mango, anche Windows 8 presenta le applicazioni in Tile: non sono solo la nuova versione delle icone applicative che conosciamo da anni, ma rappresentazioni del contenuto dell’applicazione che può essere modificato sia dall’applicazione sia attraverso notifiche Push.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Gesture: &lt;/strong&gt;sono state studiate nuove gesture per eseguire lo zoom, il tap, il double tap, la richiesta di “aiuto”. Particolarmente interessante è la possibilità di eseguire semantic zoom modifcando la presentazione dei dati durante lo zoom per evitare che quest’ultimo sia solo un “ingrandimento” di una regione di scheermo.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22783" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Build Windows Conference 2011: prime impressioni</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/14/build-windows-conference-2011-prime-impressioni.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/14/build-windows-conference-2011-prime-impressioni.aspx</id><published>2011-09-14T16:34:32Z</published><updated>2011-09-14T16:34:32Z</updated><content type="html">&lt;p&gt;Condivido &lt;a href="http://blogs.devleap.com/paolo/archive/2011/09/14/build-windows-conference-2011-prime-impressioni.aspx"&gt;qualche riflessione&lt;/a&gt; sulla prima giornata della Build Windows Conference 2011.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22780" width="1" height="1"&gt;</content><author><name>paolo</name><uri>http://blogs.devleap.com/members/paolo.aspx</uri></author></entry><entry><title>BUILD: Press Pass</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/09/13/build-press-pass.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/09/13/build-press-pass.aspx</id><published>2011-09-13T16:03:00Z</published><updated>2011-09-13T16:03:00Z</updated><content type="html">&lt;p&gt;Ecco la comunicazione ufficiale:&lt;/p&gt;  &lt;p&gt;“We’ve had a longstanding belief in delivering the right experience to the right person on the right device,” said Wolf, the vice president of strategy for Cynergy, a technology agency that designs and builds software. “Historically, it’s been difficult to make that come to life, but it’s exactly what our customers want.” &lt;/p&gt;  &lt;p&gt;Like millions of other developers, the team creating new experiences at Cynergy is working within what the tech sector calls the “modern Web” – a place of rich, immersive, and engaging user experiences that consumers interact with across a wide spectrum of devices. &lt;/p&gt;  &lt;p&gt;Today, technology standards such as HTML5 are helping companies like Cynergy make the vision of building experiences customized for the right people and delivered in the right context a reality. However, Wolf and others like him are waiting for a platform that they can use to build on this new modern version of the Web. That’s why he can’t wait to see what Microsoft unveils next week at BUILD, an event where the company will share upcoming product plans with developers, including a preview of the next version of Windows, code-named “Windows 8.” &lt;/p&gt;  &lt;p&gt;Continua su…&lt;a title="http://www.microsoft.com/presspass/features/2011/sep11/09-11build.mspx" href="http://www.microsoft.com/presspass/features/2011/sep11/09-11build.mspx"&gt;http://www.microsoft.com/presspass/features/2011/sep11/09-11build.mspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22763" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>Video online</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/04/11/video-online.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/04/11/video-online.aspx</id><published>2011-04-11T12:45:09Z</published><updated>2011-04-11T12:45:09Z</updated><content type="html">&lt;p&gt;Per adesso in fase beta abbiamo pubblicato il video ufficiale di DevCon 2011. Il video è stato rilasciato con qualche giorno di ritardo in quanto il .NET Campus ci ha richiesto uno sforzo aggiuntivo visto l’arrivo di un numero di iscritti superiore al previsto.&lt;/p&gt;  &lt;p&gt;Il video è sulla home page: &lt;a href="http://devcon.devleap.com"&gt;http://devcon.devleap.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22582" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry><entry><title>.NET Campus 2011 alle porte</title><link rel="alternate" type="text/html" href="http://blogs.devleap.com/devcon/archive/2011/03/16/net-campus-2011-alle-porte.aspx" /><id>http://blogs.devleap.com/devcon/archive/2011/03/16/net-campus-2011-alle-porte.aspx</id><published>2011-03-16T09:09:41Z</published><updated>2011-03-16T09:09:41Z</updated><content type="html">&lt;p&gt;Il .NET Campus, la conferenza gratuita che faremo a Roma e Milano, è ormai alle porte e stiamo approntando gli ultimi elementi organizzativi. Il numero di iscritti cresce di giorno in giorno e fra grafica, locandine, materiale per i partecipanti, zainetti e magliette, le giornate volano una dietro l’altra.&lt;/p&gt;  &lt;p&gt;Abbiamo aperto anche le iscrizioni per vedere l’evento in &lt;strong&gt;differita&lt;/strong&gt;: alcune sessioni verranno registrate e gli iscritti all’edizione “delayed” potranno rivederle a posteriori.&lt;/p&gt;  &lt;p&gt;Tutte le info su &lt;a href="http://www.dotnetcampus.it"&gt;www.dotnetcampus.it&lt;/a&gt;: iscriviti al più presto se vuoi partecipare per non perdere il posto. &lt;/p&gt;  &lt;p&gt;In questi giorni sono meno presente sul blog: appena passato l’evento ho pronti una serie di post sulle novità di Windows Azure.&lt;/p&gt;  &lt;p&gt;Molti degli argomenti che il .NET Campus tratta a livello introduttivo verranno poi analizzati nel dettaglio alla nostra DevCon.&lt;/p&gt;  &lt;p&gt;A presto&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22553" width="1" height="1"&gt;</content><author><name>rob</name><uri>http://blogs.devleap.com/members/rob.aspx</uri></author></entry></feed>
