<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Giuseppe Guerrasio : S+S</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx</link><description>Tags: S+S</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Windows Azure Hello World !!</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2009/09/17/windows-azure-hello-world.aspx</link><pubDate>Thu, 17 Sep 2009 14:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9896352</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/9896352.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=9896352</wfw:commentRss><description>&lt;P&gt;Il cloud computing è una delle nuove e più interessanti frontiere del mondo dell’IT che si sta oramai affermando come una realtà e che promette di trasformare in modo significativo, la disponibilità delle classiche risorse che oggi cerchiamo in un hardware e in un sistema operativo installati in un data center locale. Con lo sviluppo per Internet di piattaforme di questo tipo, si aprono nuovi scenari che vanno oltre a quello che oggi è possibile fare in termini di servizi e dati sulla rete, aprendo la strada a veri e propri sistemi operativi self service dove si possono ottenere su richiesta ed in modo rapido, capacità di elaborazione, storage, servizi di database, etc . Diventa molto più semplice sviluppare nuove idee di servizi e soluzioni ed ottenere ad un minor costo le risorse per poterle sviluppare e pubblicare su Internet. Si avvia, inoltre, la pianificazione di una trasformazione di molti servizi aziendali che, nel tempo, si sposteranno nei nuovi grandi datacenter che, sviluppandosi in modo rapido, stanno materializzando l’infrastruttura per rendere il cloud computing una realtà.&lt;/P&gt;
&lt;P&gt;Con il rilascio della CTP di Agosto, la soluzione per il Cloud di Microsoft ovvero &lt;A href="http://www.azure.com/" mce_href="http://www.azure.com/"&gt;Windows Azure Platform &lt;/A&gt;si avvicina al rilascio ufficiale di una prima serie di servizi di Cloud Computing. La nuova release ci ha messo a disposizione una nuova versione degli strumenti di sviluppo e gli SDK per costruire soluzioni che possano poi essere distribuite e gestite sulla piattaforma, e la possibilità di accedere a degli spazi di test attivabili su richiesta e disponibili immediatamente per poter poi provare ad effettuare un deployment reale di dati ed applicazioni sulla piattaforma per il Cloud. Tra le novità più interessanti la trasformazione dei servizi di database che cambiano anche nome in Slq Azure e che ci mettono a disposizione una vera e propria infrastruttura Sql Sever pensata per il Cloud e utilizzabile su richiesta .&lt;/P&gt;
&lt;P&gt;Windows Azure Platform è una vera e propria piattaforma di sviluppo pensata per il Cloud Computing, ospitata in data center di Microsoft distribuiti in diverse zone del mondo, che fornisce un sistema operativo per il cloud (Windows Azure ) e un set di servizi per gli sviluppatori che possono essere utilizzati in combinazione o singolarmente, per sviluppare e eseguire nuove applicazioni che vengono poi gestite sulla nuova piattaforma e che possono integrarsi semplicemente anche con applicazioni locali già esistenti.&lt;/P&gt;
&lt;P&gt;Questa piattaforma oltre ad offrire i suoi servizi di base per un utilizzo diretto è anche l’infrastruttura sulla quale Microsoft sta sviluppando anche le sue soluzioni SaaS.&lt;/P&gt;
&lt;P&gt;Di seguito un’immagine della piattaforma complessiva &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image001_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image001_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image001 border=0 alt=clip_image001 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image001_thumb.jpg" width=541 height=252 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image001_thumb.jpg"&gt;&lt;/A&gt;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Si va dai servizi di base offerti dal sistema operativo per il cloud Windows Azure, ai servizi di Internet Service Bus dei .NET Services, ai servizi di Database di Sql Azure.&lt;/P&gt;
&lt;P&gt;Con il sistema operativo per il cloud della Windows Azure Platform, ovvero Windows Azure vengono messe a disposizione, su richiesta, quelli che sono i servizi fondamentali che siamo abituati a trovare in un sistema operativo installato in un computer locale. Essenzialmente abbiamo:&lt;/P&gt;
&lt;P&gt;- Capacità di elaborazione&lt;/P&gt;
&lt;P&gt;- Storage (Tabelle, Blob, Code asincrone)&lt;/P&gt;
&lt;P&gt;- Deployment, Monitoring e Maintenance&lt;/P&gt;
&lt;P&gt;- Servizi automatici di Management, Load Balancers, DNS&lt;/P&gt;
&lt;P&gt;- Ambiente di programmazione&lt;/P&gt;
&lt;P&gt;I diversi servizi possono essere utilizzati in modo singolo o in combinazione tra loro per realizzare soluzione più complesse. Ad esempio lo storage può essere usato per depositare informazioni, dati o file, sia per applicazioni che poi si eseguono in Windows Azure sia per applicazioni che invece vengono eseguite localmente in un nostro datacenter e che usano lo storage del sistema operativo per il Cloud che è ospitato nei data center di Microsoft, sfruttando le API HTTP REST che la piattaforma mette a disposizione per questi servizi.&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;La piattaforma fornisce le funzionalità e le risorse per le nostre applicazioni in base alle configurazioni impostate , garantendo una scalabilità praticamente infinita e un rapido adeguamento delle risorse fornite in base alle necessità richieste. I servizi vengono direttamente messi a disposizione delle applicazioni e tutta la classica attività di manutenzione, patching, monitoring del sistema di base, load balancing, DNS, etc , viene gestita automaticamente, liberandoci dai costi di gestione e manutenzione del software di base, permettendoci così, di concentrarci esclusivamente sul livello applicativo.&lt;/P&gt;
&lt;P&gt;Tutta la parte di amministrazione delle configurazioni e deployment di Windows Azure si può gestire attraverso l’interfaccia Web di amministrazione che si trova a &lt;A href="https://windows.azure.com/" mce_href="https://windows.azure.com/"&gt;https://windows.azure.com/&lt;/A&gt; dove si può accedere con il proprio Live Id &lt;STRONG&gt;accertandosi di aver prima impostato sulla nazionalità italiana i parametri di nazionalità del profilo del vostro LiveID su Windows Live &lt;/STRONG&gt;e creare un developer account. &lt;/P&gt;
&lt;P&gt;Potete verificare che sia impostata la nazionalità italiana sul vostro LiveID qui &lt;A href="https://account.live.com/"&gt;https://account.live.com/&lt;/A&gt; :&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_91C6/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_91C6/image_thumb_1.png" width=440 height=308&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Per eventualmente cambiarlo si può usare il menù Profile details ed entrare a modificare i dati del profilo della nazionalità.&lt;/P&gt;
&lt;P&gt;Tramite&amp;nbsp; l’ interfaccia del portale di Windows Azure si possono anche gestire le applicazioni che ed i servizi della piattaforma. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image003_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image003_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image003 border=0 alt=clip_image003 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image003_thumb.jpg" width=659 height=393 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image003_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Per poter successivamente creare una applicazione di test , oltre a registrarsi sul portale, occorre richiedere un token gratuito di test da utilizzare poi per l’attivazione, come spiegherò successivamente nel post quando procederemo alla pubblicazione dell’applicazione. &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Per poter sviluppare soluzioni per Windows Azure è disponibile anche un SDK e dei Tool completamente integrati con Visual Studio che mettono a disposizione degli specifici template per i progetti che possono essere scaricati da questa&amp;nbsp;&amp;nbsp; .&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image005_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image005_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image005 border=0 alt=clip_image005 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image005_thumb.jpg" width=639 height=155 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image005_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;La parte di SDK e Tool Per Visual Studio permette di sviluppare e eseguire il test delle vostre applicazioni .NET e delle storage completamente in locale, per poi andare ad effettuare il deployment delle soluzioni realizzate e dei metadati di configurazione delle risorse sulla piattaforma nel cloud. Si possono scaricare SDK e Tool per Visual Studio da questa &lt;A href="http://www.microsoft.com/azure/sdk.mspx" target=_blank mce_href="http://www.microsoft.com/azure/sdk.mspx"&gt;pagina&lt;/A&gt;&amp;nbsp; e sullo stesso sito si può trovare anche un interessante e completo &lt;A href="http://www.microsoft.com/azure/trainingkit.mspx" target=_blank mce_href="http://www.microsoft.com/azure/trainingkit.mspx"&gt;training kit&lt;/A&gt; con laboratori guidati per tutti i servizi e un ampia offerta di &lt;A href="http://www.microsoft.com/azure/resources.mspx" target=_blank mce_href="http://www.microsoft.com/azure/resources.mspx"&gt;video e documenti&lt;/A&gt; . &lt;/P&gt;
&lt;P&gt;Con la parte di sistema operativo di base della Windows Azure Platform , ovvero Windows Azure possiamo sviluppare due tipologie di applicazione :&lt;/P&gt;
&lt;P&gt;- Web Role (ASP.NET, WCF Service, FastCGI, etc)&lt;/P&gt;
&lt;P&gt;- Worker Role&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image007_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image007_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image007 border=0 alt=clip_image007 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image007_thumb.jpg" width=548 height=345 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image007_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Le Web Role sono come dice la parola stessa delle Web Application basate su pagine Web o Web Services. &lt;/P&gt;
&lt;P&gt;I Worker Role sono invece delle applicazioni che si eseguono in background per la realizzazione di Task specifici, concettualmente molto simili a quello che possiamo fare con i Windows Service sulla versione di Windows tradizionale. Un utilizzo tipico dei Worker Role è l’implementazione di processi asincroni partendo dalla lettura di informazioni che vengono inserite in una delle code asincrone di Windows Azure. Ad esempio , immaginando una applicazione che gestisce l’acquisizione di ordini o la trasformazione di immagini o comunque operazioni che non possono essere eseguite in modo sincrono rispetto all’inserimento della richiesta , possono essere per l’appunto gestite con un Worker Role che resta in attesa di richieste su una coda e avvia l’esecuzione dello specifico lavoro alla ricezione di un messaggio, disaccoppiando così l’esecuzione rispetto all’inserimento della richiesta. Nel caso della ricezione di un ordine ad esempio, ci potrebbe essere una applicazione Web Role che riceve le richieste e che scrive nello storage le informazioni relative all’ordine e poi inserisce in una coda la richiesta di esecuzione dell’ordine , che viene così ricevuta ed eseguita in modo asincrono dal Worker Roler. Anche le code di Windows Azure come le tabelle per I dati e I blob per I file, sono utilizzabili attraverso le API HTTP REST e quindi possono anche essere utilizzate da applicazioni che sono installate localmente.&lt;/P&gt;
&lt;P&gt;Associate alle applicazioni, oltre alle componenti di codice , abbiamo a disposizione dei metadati che consentono di configurare le risorse che vogliamo utilizzare sulla piattaforma elaborativa. Ad esempio possiamo stabilire in modo molto semplice il numero di istanze che vogliamo avere a disposizione da Windows Azure e sulle quali vogliamo far eseguire la nostra applicazione. In base a queste informazioni, sia nell’ambiente di test locale al PC sia nel deployment reale nei datacenter, il servizio di management di Windows Azure denominato FABRIC, provvederà a effettuare il deployment delle istanze che abbiamo richiesto, configurare I bilanciatori di carico e a garantire il funzionamento delle istanze, riavviando o sostituendo istanze che eventualmente avessero dei malfunzionamenti. FABRIC si occupa anche del patching e del management delle macchine virtuali all’interno delle quali si eseguiranno le nostre istanze, garantendoci sicurezza, funzionalità e continuità di servizio per l’ambiente di base in cui si eseguono le nostre applicazioni. A disposizione, inoltre,&amp;nbsp; i servizi di log applicativo per monitorare il comportamento del nostro codice in esecuzione su Windows Azure.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image009_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image009_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image009 border=0 alt=clip_image009 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image009_thumb.jpg" width=480 height=361 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image009_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Per cominciare ad introdursi allo sviluppo con questa parte di base della Windows Azure Platform, potete provare a partire con la classica applicazione Hello World !! seguendo i passi che ho descritto di seguito e che permettono di introdursi allo sviluppo e debug con gli strumenti del SDK e di Visual Studio su un PC client, per poi successivamente procedere al deployment sulla infrastruttura di Windows Azure nel Cloud .&lt;/P&gt;
&lt;P&gt;Installato &lt;A href="http://www.microsoft.com/azure/sdk.mspx" target=_blank mce_href="http://www.microsoft.com/azure/sdk.mspx"&gt;Windows Azure SDK e Tool per Visual Studio&lt;/A&gt; troverete un nuovo template tra I progetti da selezionare per avviare lo sviluppo di una nuova applicazione per il cloud:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image011_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image011_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image011 border=0 alt=clip_image011 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image011_thumb.jpg" width=619 height=403 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image011_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Nello step successivo viene presentato un wizard che chiede il tipo di servizio che si vuole realizzare e procediamo con il selezionare una ASP.NET Web Role e proseguire&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image013_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image013_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image013 border=0 alt=clip_image013 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image013_thumb.jpg" width=728 height=534 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image013_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Nella soluzione creata dal template possiamo vedere una applicazione ASP.NET identica alle applicazioni che sviluppiamo per il deployment su una infrastruttura Windows tradizionale, ed in più la parte di progetto per Windows Azure con I metadati di configurazione che puoi consistono in dei file XML:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image015_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image015_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image015 border=0 alt=clip_image015 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image015_thumb.jpg" width=290 height=331 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image015_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Con gli opportuni accorgimenti è assolutamente possibile sviluppare applicazioni che possano essere poi distribuite su server locali o sul datacenter di Windows Azure. Questa particolarità rappresenta uno dei maggiori vantaggi di Windows Azure perchè si possono sviluppare applicazioni che poi possono avere differenti modelli di deployment in funzione delle esigenze. Se , infatti, impostiamo come progetto di avvio la Web Application ed eseguiamo il debug abbiamo il normale deployment dell’applicazione nel Web Server locale di Visual Studio, se invece (come di default in questo tipo di progetto) impostiamo come progetto di avvio la cloud application ed avviamo il debug, abbiamo l’avvio dell’infrastruttura locale di test del Windows Azure SDK in cui vengono create n istanze in base alle configurazioni che vedremo successivamente e vedrete comparire nella taskbar le icone del servizio di Development Storage e di Development Fabric:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image017_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image017_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image017 border=0 alt=clip_image017 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image017_thumb.jpg" width=178 height=70 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image017_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Facendo click sul servizio di Development Fabric ( la rotellina) protrete visualizzare la finestra di controllo del Development Fabric dove vedrete attiva la vostra applicazione, per il momento con una sola istanza. Potrete anche vedere la finestra in cui vengono visualizzate le informazioni inserite nel log dall’ambiente ed eventualmente dal vostro codice utilizzando le specifiche API di Windows Azure.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image019_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image019_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image019 border=0 alt=clip_image019 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image019_thumb.jpg" width=244 height=184 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image019_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Inseriamo una Label nella pagina di Default e scriviamo sul load della pagina una riga per impostare il contenuto della Label con la scritta Hello World:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image021_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image021_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image021 border=0 alt=clip_image021 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image021_thumb.jpg" width=309 height=100 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image021_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image023_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image023_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image023 border=0 alt=clip_image023 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image023_thumb.jpg" width=373 height=174 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image023_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Inserendo un breakpoint sulla riga di codice e riavviando l’applicazione in debug con progetto di avvio impostato sul progetto Cloud si potrà effettuare il debug dell’applicazione all’interno del Development Fabric di Windows Azure.&lt;/P&gt;
&lt;P&gt;Per poter richiedere l’avvio di più istanze di può utilizzare il file xml di configurazione del nostro servizio di Web Role che è contenuto nel progetto per il cloud e che ha l’estensione .cscfg:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image025_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image025_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image025 border=0 alt=clip_image025 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image025_thumb.jpg" width=737 height=215 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image025_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Oppure selezionare il WebRole ed utilizzare la finestra delle proprietà ottenendo lo stesso risultato di modifica del file di configurazione.&lt;/P&gt;
&lt;P&gt;Riavviando il progetto in debug, vedremo nella finestra della Development Fabric che questa volta sono state avviate 3 istanze come richiesto. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image027_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image027_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image027 border=0 alt=clip_image027 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image027_thumb.jpg" width=531 height=400 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image027_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dal Task Manager del sitema operativo potete vedere i tre processi RdRoleHost.exe che contengono le tre istanze: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image029_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image029_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image029 border=0 alt=clip_image029 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image029_thumb.jpg" width=669 height=307 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image029_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Potete provare a terminare una delle istanze dei processi contenitore e noterete che la Development Fabric la riavvierà automaticamente.&lt;/P&gt;
&lt;P&gt;Riportiamo le istanze a 1 e riavviando verifichiamo che viene nuovamente caricata una sola istanza. Ricordatevi di riportare a 1 le istanze prima del deployment nell’applicazione di test su Windows Azure.&lt;/P&gt;
&lt;P&gt;Dopo esservi registrati sul portale &lt;A href="http://windows.azure.com/" mce_href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/A&gt; con il vostro &lt;STRONG&gt;Live Id accertandosi&amp;nbsp; come spiegato prima di aver prima impostato sulla nazionalità italiana i parametri di nazionalità del profilo del vostro LiveID su Windows Live&lt;/STRONG&gt; , per poter effettuare il deployment&amp;nbsp; nel datacenter nel cloud occorre prima creare dal menù di Windows Azure una nuova applicazione in cui effettuare il deployment del nostro esempio. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Per attivare una applicazione, occorre ottenere un token di attivazione. Con la CTP di Agosto di Windows Azure è possibile ottenere dei token gratuiti di test attraverso il portale Microsoft Connect. Utilizzando il token di test si potra procedere al deployment.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Per richiedere il token di attivazione basta fare click sul link specifico nell'area Deploy a questa pagina &lt;A href="http://www.microsoft.com/windowsazure/getstarted/"&gt;http://www.microsoft.com/windowsazure/getstarted/&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image031_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image031_2.jpg"&gt;&lt;/A&gt;&lt;/U&gt;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Il link vi porta sul portale Connect dove dopo essersi autenticati con Il Live ID di nazionalità italiana potrete richiedere il token di test gratuito da usare poi per attivare l’applicazione sul portale &lt;/STRONG&gt;&lt;A href="https://windows.azure.com/" mce_href="https://windows.azure.com/"&gt;&lt;STRONG&gt;https://windows.azure.com/&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; . Il token vi verrà spedito appena disponibile (genericamente 48 ore)&amp;nbsp;sulla cassetta postale&amp;nbsp; del Live Id con cui l'avete richiesto iscrivendovi a connect.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Il token dovrà essere inserito utilizzando il Link Account sul menù della Home Page del portale &lt;A href="https://windows.azure.com/" mce_href="https://windows.azure.com/"&gt;https://windows.azure.com/&lt;/A&gt; . Nell’area account c’è un link Manage My Tokens &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image033_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image033_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image033 border=0 alt=clip_image033 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image033_thumb.jpg" width=728 height=254 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image033_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dove potete inserire il token che avete ottenuto registrandovi sul portale Connect .&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Inserito il token facendo click sul voce del menù sulla destra Windows Azure, potrete accedere alla pagina di provisioning dove ora troverete attivato un progetto PDC08 come da figura che si è attivato con l’inserimento del token. Accedendo con il click sul link evidenziato del progetto &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image035_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image035_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image035 border=0 alt=clip_image035 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image035_thumb.jpg" width=646 height=261 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image035_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;potrete entrare nella pagina del progetto per aggiungere una applicazione con lo specifico comando New Service evidenziato&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image037_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image037_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image037 border=0 alt=clip_image037 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image037_thumb.jpg" width=655 height=292 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image037_thumb.jpg"&gt;&lt;/A&gt;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Nello step successivo potrete creare una nuova Hosted Application chiamandola ad esempio test Azure usando lo specifico bottone (evidenziato sotto) e anche eventualmente uno spazio di storage . Per il nostro esercizio al momento basta la creazione della Hosted Application.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image039_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image039_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image039 border=0 alt=clip_image039 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image039_thumb.jpg" width=662 height=289 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image039_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Il wizard di creazione della hosted application prosegue chiedendovi le informazioni relative al nome con cui volete pubblicare lo spazio e le eventuali affinità con una specifica region e l’affinità eventuale con uno storage. Impostate solo un nome e lasciate le altre impostazioni sul default:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image041_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image041_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image041 border=0 alt=clip_image041 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image041_thumb.jpg" width=666 height=332 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image041_thumb.jpg"&gt;&lt;/A&gt;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Preparato lo spazio per l’applicazione procediamo con il preparare il package di deployment. Dal menù Build di Visual Studio facendo click sulla voce Publish Cloud … o direttamente dal menù contestuale della Cloud Application in Visual Studio:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image043_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image043_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image043 border=0 alt=clip_image043 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image043_thumb.jpg" width=259 height=284 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image043_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Si otterrà la produzione da parte di Visual Studio del package di deployment della soluzione e dei file xml con i dati di configurazione &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image045_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image045_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image045 border=0 alt=clip_image045 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image045_thumb.jpg" width=533 height=240 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image045_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Verrà anche automaticamente aperto il browser con impostato l’url di deployment . Effettuato il logon nel portale di Windows Azure con il vostro Live Id con cui vi siete già registrati vi troverete nella pagina delle applicazioni in gestione e selezionando l’applicazione che avete attivato prima tramite il token.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image047_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image047_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image047 border=0 alt=clip_image047 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image047_thumb.jpg" width=555 height=270 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image047_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Con il pulsante deploy potrete provedere a portarvi sulla pagina di deployment ed a inserire con gli opportuni comandi di selezione di file il pakage dell’applicazione ed i metadati:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image049_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image049_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image049 border=0 alt=clip_image049 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image049_thumb.jpg" width=555 height=363 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image049_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image051_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image051_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image051 border=0 alt=clip_image051 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image051_thumb.jpg" width=558 height=374 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image051_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Terminata l’operazione di caricamento dei file vi ritroverete sulla pagina di gestione del progetto con i due ambienti di Produzione e di staging e con il pulsante Run posizionanto sotto l’area di staging potrete avviare l’applicazione in staging. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image053_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image053_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image053 border=0 alt=clip_image053 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image053_thumb.jpg" width=561 height=390 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image053_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Un apposito box vi segnala lo stato di avanzamento dell’operazione di avvio dell’istanza e l’url a cui sarà disponibile l’applicazione terminata l’operazione di avvio:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image055_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image055_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image055 border=0 alt=clip_image055 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image055_thumb.jpg" width=553 height=408 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image055_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Successivamente alla ricezione della conferma dell’avvio dellavostra applicazione:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image057_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image057_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image057 border=0 alt=clip_image057 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image057_thumb.jpg" width=558 height=414 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image057_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Potrete utilizzare l’URL indicato per navigare nella applicazione in staging ed eventualmente promuoverla in produzione con lo specifico comando.&lt;/P&gt;
&lt;P&gt;Con il pulsante Configure, invece, potrete accedere alla pagina che vi consente di modificare la parte di configurazione delle istanze e di accedere al log delle applicazioni:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image059_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image059_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image059 border=0 alt=clip_image059 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image059_thumb.jpg" width=565 height=461 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsAzureHelloWorld_DBD8/clip_image059_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9896352" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Windows+Azure/default.aspx">Windows Azure</category></item><item><title>Esempio di applicazione RIA con Silverlight :  Sanremoanchenoi da Rai Click e Kora</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/05/05/esempio-di-applicazione-ria-con-silverlight-sanremoanchenoi-da-rai-click-e-kora.aspx</link><pubDate>Mon, 05 May 2008 09:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8435734</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8435734.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8435734</wfw:commentRss><description>&lt;P&gt;L’evoluzione delle interfacce utente e l’emergere di applicazioni RIA (Rich Interactive Application) basate in gran parte sull’utilizzo di rich-plugin come Silverlight che arricchiscono il browser e potenziano le possibilità offerte dall’HTML e dalle tecniche AJAX sta rapidamente modificando la modalità con cui vengono sviluppate le applicazioni. Un ottimo esempio di come sia possibile combinare queste nuove potenzialità per sviluppare interfacce innovative è rappresentato dal sito sanremoanchenoi (&amp;nbsp;l'iniziativa è conlusa e qui potete vedere il &lt;A class="" href="http://roberto.design.members.winisp.net/sanremoanchenoi/sanremoanchenoi.html" target=_blank mce_href="http://roberto.design.members.winisp.net/sanremoanchenoi/sanremoanchenoi.html"&gt;video del&amp;nbsp;sito&lt;/A&gt;) . Si tratta di un iniziativa di &lt;A href="http://www.raiclick.it/" mce_href="http://www.raiclick.it/"&gt;Rai Click&lt;/A&gt;, implementata da &lt;A href="http://www.kora.it/" mce_href="http://www.kora.it/"&gt;Kora&lt;/A&gt; , avviata durante il festival di Sanremo e collegata proprio alla sperimentazione di nuove forme di user interface e di gestione di contenuti UGC (User Genereted Content) .&lt;/P&gt;
&lt;P&gt;L’iniziativa è basata su una serie di contest dove gli utenti possono inviare dei video per dimostrare le loro capacità “artistiche” collegate alla musica. Gli utilizzatori del sito possono navigare sui video, votarli ed inserire dei commenti. Di seguito un’immagine dell’interfaccia realizzata:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image002_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=438 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image002_thumb.jpg" width=610 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image002_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Il sito rappresenta anche un ottimo esempio di utilizzo di software sviluppato localmente in combinazione con l’utilizzo di servizi offerti da piattaforme su Internet . Infatti, l’infrastruttura di gestione ed erogazione dei contenuti video è completamente basata su &lt;A href="http://silverlight.live.com/" mce_href="http://silverlight.live.com/"&gt;Silverlight Streaming&lt;/A&gt; che, attraverso la sua CDN (Content Delivery Network), fornisce il servizio di streaming per i filmati che vengono visualizzati nel client.&lt;/P&gt;
&lt;P&gt;L’interfaccia dell’intera applicazione è sviluppata con tecniche AJAX e sfrutta una logica sviluppata in Java Script per pilotare sia le componenti di grafica ed animazione sviluppate con Silverlight 1.0 , sia le componenti HTML. L’interazione con i servizi di back end che gestiscono il voting , i commenti ed il catalogo dei video è stata implementata in puro stile AJAX e l’iterfaccia client accede ai servizi attraverso XMLHttpRequest senza alcun reload dell’interfaccia client.&lt;/P&gt;
&lt;P&gt;L’applicazione ha poi una componente di back-end redazionale che gestisce l’approvazione dei contenuti e che in particolare gestisce l’encoding e l’upload dei video su Silverlight Streaming. L’encoding dei video viene realizzato con &lt;A href="http://www.microsoft.com/expression/products/overview.aspx?key=encoder" mce_href="http://www.microsoft.com/expression/products/overview.aspx?key=encoder"&gt;Expression Encoder&lt;/A&gt;. L’architettura di massima dell applicazione e la seguente:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image004_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image004_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=484 alt=clip_image004 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image004_thumb.jpg" width=615 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image004_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;La gestione della fruizione dei video dal client Silverlight avviene attraverso l’utilizzo combinato dei servizi locali al sito ed di Silverlight streaming . I video vengono pubblicati sul servizio , il catalogo locale del sito mantiene i riferimenti ai video . L’interfaccia caricata nel browser client interroga via http(utilizzando XMLHttpRequest via javascript) il servizio di catalogo che fornisce l’elenco dei video. L’elenco dei video viene caricato via Javascript nell’interfaccia Silverlight e mostrato all’utente.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image006_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image006_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=438 alt=clip_image006 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image006_thumb.jpg" width=609 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image006_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Nel momento in cui l’utente seleziona un video per effettuare lo streaming , l’applicazione client interroga attraverso degli script forniti da Silverlight Streaming che vengono inclusi nel client il servizio per ottenere l’url del video che viene poi visualizzato dal MediaElement di Silverlight, opportunamente utilizzato nell’interfaccia che provvede a consumare lo streaming fornito dalla CDN . &lt;/P&gt;
&lt;P&gt;Per chi volesse approfondire l’utilizzo di Silverlight Streaming service e la costruzione di siti UGC consiglio di utilizzare l’applicazione di esempio &lt;A href="http://www.codeplex.com/videoshow" mce_href="http://www.codeplex.com/videoshow"&gt;video.show&lt;/A&gt; che offre un esempio completo di codice sorgente scaricabile per realizzare siti UGC per il video sharing, con la possibilità di utilizzare Silverlight Streaming come meccanismo per la distribuzione dei video e l’SDK &lt;A href="http://dev.live.com/silverlight/" mce_href="http://dev.live.com/silverlight/"&gt;del servizio Silverlight Streaming&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Grazie alla flessibilità di Silverlight ed alla flessibilità dello XAML che consente di sviluppare una efficace collaborazione tra developer che sviluppa la logica dell’interfaccia e designer che implementa le componenti di grafica ed animazione, l’applicazione è stata sviluppata in tempi estremamente rapidi (2 settimane) . Anche per l’integrazione e la messa in produzione, la possibilità di sfruttare Silverlight Streaming come piattaforma di delivery dei video ha consentito di gestire l’intero progetto in tempi estremamente ridotti.&lt;/P&gt;
&lt;P&gt;La ricchezza di animazioni e contenuti multimediali dell’interfaccia utente mette in evidenza la notevole flessibilità che viene fornita da Silverlight. L’intera interfaccia contenuta nel browser è infatti realizzata con il plugin, combinando anche parte di contenuti in HTML che vengono utilizzati in overlay al contenuto implementato con Silverlight. Come si può vedere dalla seguente figura:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image008_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image008_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=433 alt=clip_image008 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image008_thumb.jpg" width=602 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image008_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;abbiamo una serie di oggetti grafici in overlay su un video di background, dove vengono composti i diversi menù, che interagiscono con l’utente attraverso delle animazioni che compongono le diverse scene previste in base alle selezioni effettuate dall’utente. &lt;/P&gt;
&lt;P&gt;Anche le liste dei contenuti video vengono posizionate in overlay al video di background e consentono di avere in preview il video selezionato in completo overlay sul video di background , componendo in un'unica interfaccia animazioni, grafica, testo e differenti flussi video:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image010_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image010_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=414 alt=clip_image010 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image010_thumb.jpg" width=576 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image010_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Le componenti dell’interfaccia che consento il voting e l’inserimento di commenti e contenuti sono sviluppate con dell’HTML che viene anche in questo caso posizionato in overlay ai contenuti realizzati in Silverlight ed anche in questo caso gestito con una logica in Java script che sfrutta le classiche tecniche AJAX per colloquiare con i servizi di back end che abbiamo descritto nell’architettura vista in precedenza. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image012_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image012_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=404 alt=clip_image012 src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image012_thumb.jpg" width=577 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/EsempiodiapplicazioneRIAconSilverlightSa_10CA7/clip_image012_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Il sito resterà in produzione solo per alcune settimane collegate al contest collegato a sanremo.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8435734" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Live/default.aspx">Live</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Una giornata di Steve Ballmer</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/04/28/una-giornata-di-steve-ballmer.aspx</link><pubDate>Mon, 28 Apr 2008 16:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8435341</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8435341.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8435341</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN&gt;Durante la giornata che Steve Ballmer ha passato in italia la scorsa settimana Carlo Rossanigo lo ha seguito per tutto il tempo ed ha girato una video intervista con lui nei ritagli di tempo della giornata. Domande a tutto campo da su cosa pensa mentre&amp;nbsp; fa jogging, a come vive il social networking, da come si aspetta che sarà il web 3.0,&amp;nbsp;s cosa suggerisce ai giovani, .. insomma, 14 domande “unplugged” da non perdere !!!!&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN&gt;Le trovate su &lt;A class="" href="http://www.mclips.it/archive/2008/04/26/one-day-with-steve-ballmer-14-domande-unplugged-a-steve-ballmer.aspx" mce_href="http://www.mclips.it/archive/2008/04/26/one-day-with-steve-ballmer-14-domande-unplugged-a-steve-ballmer.aspx"&gt;mclips&lt;/A&gt; .&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;A href="http://www.mclips.it/archive/2008/04/26/one-day-with-steve-ballmer-14-domande-unplugged-a-steve-ballmer.aspx"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8435341" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Evento The Next Web Now: Slide sessione Costruire applicazioni RIA con Silverlight 2</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/04/24/evento-the-next-web-now-slide-sessione-costruire-applicazione-ria-con-silverlight-2.aspx</link><pubDate>Thu, 24 Apr 2008 15:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8421462</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8421462.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8421462</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.microsoft.com/italy/eventi/mix/default.mspx" mce_href="http://www.microsoft.com/italy/eventi/mix/default.mspx"&gt;&lt;IMG style="MARGIN: 0px 5px 0px 0px" height=86 alt=clip_image003 src="http://blogs.msdn.com/blogfiles/italy/WindowsLiveWriter/TheNextWebNowMIXEssentials23AprileaMilan_918B/clip_image003_3.jpg" width=282 align=left border=0 mce_src="http://blogs.msdn.com/blogfiles/italy/WindowsLiveWriter/TheNextWebNowMIXEssentials23AprileaMilan_918B/clip_image003_3.jpg"&gt;&lt;/A&gt;Ecco le &lt;A href="http://cid-d82de3153feb12ed.skydrive.live.com/self.aspx/Public/NextWeb/EventoWeb-Silverlight-w.zip" target=_blank mce_href="http://cid-d82de3153feb12ed.skydrive.live.com/self.aspx/Public/NextWeb/EventoWeb-Silverlight-w.zip"&gt;slide della mia sessione "Costruire applicazioni RIA con Silverlight 2"&lt;/A&gt; all'evento&amp;nbsp; &lt;A href="http://blogs.msdn.com/italy/archive/2008/04/09/the-next-web-now-mix-essentials-23-aprile-a-milano.aspx" target=_blank mce_href="http://blogs.msdn.com/italy/archive/2008/04/09/the-next-web-now-mix-essentials-23-aprile-a-milano.aspx"&gt;The Next Web Now – MIX Essentials&lt;/A&gt; . Sul blog di &lt;A class="" href="http://blogs.msdn.com/italy/archive/2008/04/24/the-next-web-now-le-slides.aspx" target=_blank mce_href="http://blogs.msdn.com/italy/archive/2008/04/24/the-next-web-now-le-slides.aspx"&gt;MSDN Italia&lt;/A&gt; i link alle altre slide e presto anche i filmati delle sessioni. Grazie a tutti per la partecipazione.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8421462" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Sessioni del lancio online</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/04/03/sessioni-del-lancio-online.aspx</link><pubDate>Thu, 03 Apr 2008 17:21:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8353927</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8353927.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8353927</wfw:commentRss><description>&lt;p&gt;Disponibili &lt;a href="http://www.microsoft.com/italy/beit/sezioni.aspx" target="_blank"&gt;online le sessioni del lancio&lt;/a&gt;. In particolare disponibile anche video e slide della sessione che ho preparato con Mario Fontana e Mauro Minella sul tema&amp;#160; Visual Tools For Office da titolo &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/italy/beit/sezione_video.aspx?vid=14" target="_blank"&gt;&amp;quot;Sviluppo di applicazioni per Microsoft Office System&amp;quot;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.microsoft.com/italy/beit/sezioni.aspx"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="320" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/Sessionidellancioonline_E5E1/image_3.png" width="758" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8353927" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/ORM/default.aspx">ORM</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Office/default.aspx">Office</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Accesso ai dati con Siliverlight 2 Beta 1</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/18/accesso-ai-dati-con-siliverlight-2-beta-1.aspx</link><pubDate>Tue, 18 Mar 2008 11:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8272689</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8272689.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8272689</wfw:commentRss><description>&lt;P&gt;In questo fine settimana ho passato un po di tempo libero ad approfondire i bit disponibili della &lt;A href="http://silverlight.net/GetStarted/#betajump" target=_blank mce_href="http://silverlight.net/GetStarted/#betajump"&gt;Beta 1 di Silverligth 2&lt;/A&gt; . Tra le tantissime novità offerte dal supporto del codice managed,&amp;nbsp; la nuova versione mette a disposizione un'ampia parte delle librerie .NET tra cui nuovi meccanismi per accedere a dati esposti da siti Internet\Intranet via HTTP.&lt;/P&gt;
&lt;P&gt;Sia Internet che nelle intranet è sempre più frequente l'utilizzo dell'HTTP per l'esposizione di informazioni attraverso diverse forme (Web Service Soap,RSS, REST, POX, JSON, etc). &lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_6.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=375 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_2.png" width=450 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Lo scenario tipico di sviluppo Web che prevedeva lo strato di accesso ai dati realizzato direttamente dalla parte server dell'applicazione Web ,&amp;nbsp; sta rapidamente evolvendo. Anche le&amp;nbsp; applicazioni&amp;nbsp; basate sul browser sono sempre più caratterizzate da una larga presenza di codice client, che sfrutta tecniche AJAX&amp;nbsp;&amp;nbsp; per consumare dati offerti da servizi esposti da server. In particolare diventano sempre più frequenti gli scenari in cui si utilizzano fonti dati esposte da siti differenti, che vengono combinate in un unica interfaccia direttamente sul client. &lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=449 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb.png" width=531 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Questo tipo di scenario non riguarda esclusivamente le applicazioni sviluppate per Internet ma diventa sempre più presente anche in scenari Intranet. Con sempre maggior frequenza le aziende cominciano a &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/11/la-fine-della-tirannia-dell-or-software-services-s-s.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/11/la-fine-della-tirannia-dell-or-software-services-s-s.aspx"&gt;combinare il software interno con servizi esterni&lt;/A&gt;. Le applicazioni e le &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/12/saas-soa-e-s-s-impatto-per-le-aziende.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/12/saas-soa-e-s-s-impatto-per-le-aziende.aspx"&gt;informazioni aziendali vengono utilizzate in combinazione&amp;nbsp; con servizi presenti su Internet e con le applicazioni delle aziende clienti o partner&lt;/A&gt;, creando scenari un cui la gestione dell'accesso ai dati da parte del codice che gira nel browser client, diventa sempre più sofisticata e complessa. Ad esempio, un azienda che ha bisogno di un software per la gestione di spedizioni presso i propri punti vendita potrebbe sviluppare un applicazione client che aggrega le informazioni sui punti vendita estratte da servizi presenti nella intranet , posizionando i punti vendita sulle mappe fornite da un provider di mappe su Internet ed i servizi del corriere utilizzato per effettuare le spedizioni, integrando con i dati aziendali&amp;nbsp; i servizi per gli ordini, lo stato della spedizione , etc.&lt;/P&gt;
&lt;P&gt;Evidentemente in scenari più complessi di integrazione non tutta l'aggregazione dei servizi può essere implementata nel client , perchè in moltissimi casi il coordinamento dei servizi stessi comporta la gestione di processi asincroni che vanno gestiti con specific Business Process Manager , ma sono comunque molti gli scenari in cui ha senso aggregare nel client. Nel nostro scenario un esempio ll'invio di un ordine di spedizione verrà sicuramente gestito attraverso il BPM dell'azienda che provvederà poi ad inviare l'ordine al servizio del corriere mentre lo stato della singola spedizione&amp;nbsp; potrebbe direttamente essere richiesto dal client al servizio del corriere e combinato direttamente sulla mappa e con gli altri dati provenienti dall'Intranet.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_10.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=509 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_4.png" width=783 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Altra interessante modalità di integrazione dei servizi con i processi dell'azienda è rappresentata dalla possibilità di sfruttare office ed il pattern OBA per collegare un scenario di questo tipo , direttamente con gli strumenti di produttività che le persono utilizzano per portare avanti i processi di tutti i giorni, ed una blla implementazione reale di uno scenario simile è rappresentata daei servizi che sta implementando FedEx &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2008/02/12/servizi-online-e-office-un-esempio-dal-mondo-reale.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2008/02/12/servizi-online-e-office-un-esempio-dal-mondo-reale.aspx"&gt;mostrati alla office developers conference&lt;/A&gt;&amp;nbsp; .&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_12.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=517 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_5.png" width=812 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_5.png"&gt;&lt;/A&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Con la prima versione di Silverlight gestire l'accesso a fonti dati è possibile direttamente dallo XAML per immagini, video , suoni mentre per l'accesso a sorgenti dati&amp;nbsp; occorre utilizzare il JS e l'oggetto XmlHttpRequest . Attraverso queste modalità e gia possibile sviluppare delle interessanti applicazioni di mashup (esempio interessante sviluppato in Italia sul blog msdn) , ma ovviamente sviluppare completamente utilizzando JS XMLHttprequest con sorgenti dati JSON o XML non è semplice e nemmeno particolarmente performante nella parte di parsing e caricamento dei dati sull'interfaccia utente. &lt;/P&gt;
&lt;P&gt;In alcuni casi, per eliminare il costo del parsing sul client, è anche possibile fare in modo di costruire dei servizi in grado di rispondere direttamente con delle porzioni di XAML che vengono valorizzate server side, con i dati estratti da sorgenti specifiche e caricati a partire da template disponibili sul server. Lato client si può utilizzare XMLHttpRequest o il downloader di Silverlight per connettrsi all'url sul server che restituisce lo XAML contenente i dati e caricarlo nell'interfaccia utilizzando CreateFromXaml . &lt;A href="http://silverlight.net/learn/learnvideo.aspx?video=113" target=_blank mce_href="http://silverlight.net/learn/learnvideo.aspx?video=113"&gt;Questo Howto&lt;/A&gt; mostra un semplice esempio di utilizzo di questa tecnica che sfutta lo XAML mentre &lt;A href="http://silverlight.net/learn/learnvideo.aspx?video=242" target=_blank mce_href="http://silverlight.net/learn/learnvideo.aspx?video=242"&gt;questo&lt;/A&gt; mostra l'utilizzo di web service da Silverligh 1.0&amp;nbsp; .&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_14.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=455 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_6.png" width=704 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;L'utilizzo di AJAX e quindi dello JavaScript e di XMLHttpRequest per accedere a fonti dati remote comporta una notevole difficoltà di debug ed è sottoposto alle restrizioni imposte dal browser per il cross-scripting . Infatti attraverso questa tecnica possono essere interrogati solo URL residenti sullo stesso dominio da cui è stata caricata la pagina in esecuzione sul Browser. E' possibile attraverso specifiche tecniche di impiego di script dinamici o proxy lato server, Iframe etc, superare una parte di queste limitazioni , ma il risultato incrementa ancora di più la complessità di sviluppo e debug.&lt;/P&gt;
&lt;P&gt;Con l'arrivo di Silverlight 2 (SL2) ed il supporto di .NET nello sviluppo con Silverlight abbiamo a disposizione un' ampia serie di classi che andranno ulteriormente ad arricchisi nella versione finale del nuovo plug-in. Attraverso SL2 abbiamo a disposizione le classi per consumare sia Web Service SOAP che per accedere direttamente a URL in GET e POST che per l'utilizzo di RSS , aggiunte anche le classi per gestire socket in uscita. Attraverso il nuovo modello di sviluppo è possibile anche effettuate cross-scripting attraverso quei siti che impostano sulla root del loro dominio il file di policy per questa funzionalità. Viene supportato anche il file di policy di Flash , per cui su tutti i siti in cui è già presente questo file è possibile fare crossscripting con Silverlight. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_19.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_19.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=507 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_8.png" width=687 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_8.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Oltre al supporto per il cross-scripting, il nuovo modello di controlli di SL2 supporta le funzionalità di databinding con le stesse modalità che sono utilizzate nel .NET Framework e Windows Presentation foundation , rendendo di fatto estremamente semplice anche il caricamento dei dati estratti dai servizi&amp;nbsp; sui controlli dell'interfaccia utente. Disponibile anche il supporto per LINQ to XML che ci permette di gestire con semplicità la manipolazione delle strutture XML estratte dai servizi.&lt;/P&gt;
&lt;P&gt;Facciamo un esempio pratico provando a sviluppare un client per video.msn.com ed in particolare per estrarre un elenco di video casuale e visualizzare le informazioni fornite in formato XML dall'URL: &lt;A href="http://catalog.video.msn.com/randomVideo.aspx?mk=us&amp;amp;vs=0&amp;amp;ff=99&amp;amp;c=10&amp;amp;random=12345" target=_blank mce_href="http://catalog.video.msn.com/randomVideo.aspx?mk=us&amp;amp;vs=0&amp;amp;ff=99&amp;amp;c=10&amp;amp;random=12345"&gt;http://catalog.video.msn.com/randomVideo.aspx?mk=us&amp;amp;vs=0&amp;amp;ff=99&amp;amp;c=10&amp;amp;random=12345&lt;/A&gt;&amp;nbsp;&amp;nbsp; . Di seguito l'XML che viene restituito dal servizio di MSN:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_7.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_7.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=567 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_1.png" width=938 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;La piccola applicazione che realizzeremo avrà quindi la seguente struttura:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_21.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_21.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=481 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_9.png" width=602 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;In particolare per accedere alle informazioni utilizzeremo la classe System.Net.WebClient messa a disposizione dalla versione di .NET associata a SL2 che consente di accedere ad URL Internet in GET e POST a patto di contattare un URL sullo stesso dominio da cui abbiamo scaricato l'applicazione o su un dominio che ha posizionato sulla sua root un file di policy per il cross-scripting Silverlight o Flash. Infatti su catalog.msn.video.com troviamo il file clientaccesspolicy.xml : &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_15.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_15.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=312 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_3.png" width=520 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Per costruire il nostro client SL2 utiliziamo Visual Studio 2008 selezionando lo specifico template di progetto per Silverlight scegliendo di farci generare anche il progetto Web per il test dell'applicazione:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_17.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_17.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=520 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_7.png" width=813 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=center&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_25.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_25.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=499 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_11.png" width=825 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_11.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Ottenendo così una soluzione con due progetti: uno per l'implementazione dell'applicazione SL2, l'altro per l'applicazione Web:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_27.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_27.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=366 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_12.png" width=303 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_12.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;SL2 supporta oltre al Canvas due nuovi controlli di Layout , ovvero i contenitori per il posizionamento dei controlli sulla nostra interfaccia. Per il nostro esempio utiliziamo una Grid, equivalente a quella che abbiamo nel fratello maggiore WPF, con due righe all'interno delle quali inseriremo gli elementi fondamentali dell'intrfaccia: nella prima riga i controlli per impostare i parametri della ricerca sul contenuto dei risultati, nella seconda il contenuto selezionato in base ad i parametri di ricerca impostati. Per poter inserire , impostiamo ,inoltre, la proprietà ShowGridLines a true per visualizza la struttura della griglia: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_29.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_29.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=594 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_13.png" width=918 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_13.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_31.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_31.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=758 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_14.png" width=882 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_14.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Sull'handler dell'evento click del controllo Button inserito per effetuare la ricerca:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_23.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_23.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=115 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_10.png" width=887 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_10.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;inseriamo il codice che utilizzando la classe WebClient&amp;nbsp; ci permetterà di accedere ai dati di cataalogo. La classe WebClient mette a disposizione i metodi per accedere ed estrarre informazioni da un URL solo attraverso un pattern asincrono. Per accedere al catalogo di MSN video ed estrarre le informazioni in XML utilizzaremo il seguente codice:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_35.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_35.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=324 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_16.png" width=793 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_16.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_37.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_37.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=645 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_17.png" width=713 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_17.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Le informazioni in XML ottenute dal servizio possono essere direttamente caricate in u Array utilizzando Linq To Xml . Per utilizzare questa funzionalità occorre referenziare lo specifico assembly System.Linq.Xml :&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_41.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_41.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=519 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_19.png" width=877 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_19.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Dove ns è una proprietà per gestire in namespace contenuto nel file XML, GetUriAsset un metodo helper per estrarre idati e VideoSource una specifica classe inserita nel progetto per rappresentare le informazioni dei video:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_43.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_43.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=378 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_20.png" width=950 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_20.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Ottenuto l'array con le informazioni , possiamo sfruttare il databinding e collegare direttamente la collezione contenente i dati da visualizzare ad uno dei nuovi controlli offerti da SL2 completi di supporto per il databindig. Per questo semplice esempio utilizzeremo direttamente il nuovo controllo DataGrid che aggiungeremo allo XAML:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_51.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_51.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=494 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_24.png" width=847 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_24.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;e poi lo collegheremo ai dati usando la proprietà ItemSource:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_53.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_53.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=333 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_25.png" width=898 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_25.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Ottenendo a runtime il seguente risultato:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_47.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_47.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=520 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_22.png" width=924 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_22.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Come tutto il modello dei controlli di SL2 in maniera speculare a quanto possibile in WPF è possibile definire dei template di visualizzazione per i controlli. Infatti , ad esempio, nella colonna contenente l'url dell'immagine di preview possiamo impostare un template per fare visualizzare l'immagine al posto dell'url nella specifica colonna utilizzando la funzionalità di databinding per collegare i dati ad i controlli inseriti nel template. &lt;/P&gt;
&lt;P align=left&gt;Nel nostro esempio, in particolare, andiamo ad usare il template della RowDetails ovvero la riga di dettaglio che viene supportata dal DataGrid per ogli riga inserita. Impostiamo un template sulla riga di dettaglio per permettere la visualizzazione dell'immagine di preview del video. Il campoSource del controllo immagine lo colleghiamo al campo ImageUrl del datacontext con la specifica funzionalità di databinding ( {Binding ImageUrl} ) corrente e&amp;nbsp; impostiamo anche la specifica proprietà della DataGrid che ci permette di mostrare la RowDetails nel momento in cui la riga viene selezionata:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_57.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_57.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=252 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_27.png" width=984 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_27.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Il risultato ottenuto a runtime sarà il seguente:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_55.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_55.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=426 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_26.png" width=956 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_26.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Oltre al campo Image, possiamo anche direttamente inserire un MediaElement e riprodurre il direttamente il video.&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_61.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_61.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=186 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_29.png" width=971 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_29.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_59.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_59.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=405 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_28.png" width=884 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_28.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Agendo con altri template è possibile personalizzare completamente la griglia così come qualunque altro controllo adattandola come vogliamo alle nostre esigenze grafiche.&lt;/P&gt;
&lt;P align=left&gt;Come abbiamo già detto l'oggetto WebClient è solo uno dei meccanismi offerti da SL2 per l'accesso ai dati. Per l'accesso a servizi SOAP silverlight mette a disposizione lo stack client di WCF permettendo l'utilizzo del classico modello "Add Service Reference" che consente di generare da Visual Studio una classe proxy a partire dai metadati del WSDL esposto dal servizio, classe che poi può essere usata direttamente per l'accesso a servizio. Anche in questo caso il proxy genera solo la possibilità di utilizzare con un pattern asincrono le chiamate al servizio, per evitare di bloccare l'interfaccia utente. Di seguito uno schema dello stack WCF per SL2.&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_67.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_67.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=345 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_32.png" width=460 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_32.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Facciamo anche un piccolo progetto di test per l'utilizzo di Web Services da SL2 utilizzando WCF come servizio server. Sviluppiamo un semplice client SL2 per estrarre le informazioni dei clienti del classico database Northwind esposto attraverso un servizio WCF. Partiamo con un nuovo progetto Silverlight e selezioniamo anche la costruzione dell'applicazione Web di test.&amp;nbsp; &lt;/P&gt;
&lt;P align=left&gt;All'interno dell'applicazione web di test aggiungiamo un modello LINQ To Sql&amp;nbsp; per accedere alla tabella Customers del database Northwind :&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_39.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=318 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_18.png" width=541 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Con il wizard di LINQ To Sql selezioniamo la tabella Customers e ci facciamo generare il modello di classi per l'accesso ai dati dal nostro ORM:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_45.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=332 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_21.png" width=433 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Impostiamo la specifica proprietà che ci consente di rendere serializzabili le classi generate da Linq To Sql:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_49.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=310 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_23.png" width=488 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Aggiungiamo un servizio di tipo WCF al nostro progetto:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_33.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=326 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_15.png" width=567 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Dove implementiamo la seguente interfaccia per estrarre l'elenco dei clienti dal database customers che sono in una specifica città:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_69.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=275 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_33.png" width=696 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Implementiamo l'interfaccia sul servizio ed impostiamo con LINQ la query per estrarre i clienti in base al parametro selezionato:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_71.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=414 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_34.png" width=637 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Come ultimo step per permettere l'accesso a SL2 al servizio, impostiamo come profilo di banding il basicProfile , agendo sul file di configurazione della nostra applicazione client per fare in modo che l'implementazione SOAP del servizio sia compatibile con il Basic Profile SOAP che viene supportato da SL2:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_75.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=228 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_36.png" width=731 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Lato SL2 implementiamo una semplice interfaccia per l'invio della richiesta al servizio e la visualizzazione della risposta:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_73.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=450 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_35.png" width=867 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Per poter agganciare il servizio, dal progetto SL2 usiamo la classica add service reference, selezionando il servizio WCF :&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_77.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=506 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_37.png" width=881 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;L'ambiente di sviluppo carica il WSDL esposto dal servizio e ci implementa il proxy necessario per l'accesso al servizio e la configurazione di WCF:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_79.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=152 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_38.png" width=225 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Sull'evento di click del Button query inserito nell'interfaccia SL implementiamo il codice per accedere al servizio , e sul metodo di callback agganciamo non il databinding la DataGrid ai dati estratti dal servizio:&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_81.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=430 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_39.png" width=995 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Completando il nostro esempio:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_83.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=609 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_40.png" width=716 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Per approfondire questo aspetto vi consiglio :&amp;nbsp; &lt;A title=http://msdn2.microsoft.com/en-us/library/cc296254(VS.95).aspx href="http://msdn2.microsoft.com/en-us/library/cc296254(VS.95).aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/cc296254(VS.95).aspx"&gt;http://msdn2.microsoft.com/en-us/library/cc296254(VS.95).aspx&lt;/A&gt; .&amp;nbsp; &lt;/P&gt;
&lt;P align=left&gt;In SL2 avremo a disposizione anche i serializzatori JSON . Al link&amp;nbsp; &lt;A href="http://code.msdn.microsoft.com/SilverlightWS" target=_blank mce_href="http://code.msdn.microsoft.com/SilverlightWS"&gt;http://code.msdn.microsoft.com/SilverlightWS&lt;/A&gt;&amp;nbsp;&amp;nbsp; trovate alcuni esempi del supporto JSON su cui il team di sviluppo sta lavorando :&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_65.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_65.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=315 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_31.png" width=536 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_31.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Interessante anche la funzionalità prevista per l'ambiente di sviluppo paste as XmlSerializable che ci consentirà da VisualStudio di fare copia e incolla di un frammento XML per generare direttamente una classe tipizzata per rappresentare lo stesso XML con una classe .NET, cosa che in parte è possibile con il tool da riga di comando XSD.EXE di .NET.&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_63.png" mce_href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_63.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=349 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_30.png" width=552 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/AccessoaidaiconSiliverlight2Beta1_71B1/image_thumb_30.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Disponibile anche il supporto per i socket, ma solo verso il dominio da cui è stata scaricata l'applicazione (no crossscripting al momento) ed il supporto per Syndication che è praticamente identico a quello disponibile in .NET 3.5. &lt;/P&gt;
&lt;P&gt;Per chi volesse cominciare a provare Silverlight 2 suggerisco i seguenti link:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;- &lt;A href="http://silverlight.net/GetStarted/#betajump"&gt;http://silverlight.net/GetStarted/#betajump&lt;/A&gt; dove trovate i link per installare il Runtime , le estensioni per Visual Studio 2008 e la versione di Expression Blend per SL2&lt;/P&gt;
&lt;P&gt;- &lt;A href="http://silverlight.net/learn/tutorials.aspx"&gt;http://silverlight.net/learn/tutorials.aspx&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tutorial sul Silverlight 2&lt;/P&gt;
&lt;P&gt;- &lt;A href="http://silverlight.net/learn/labs.aspx"&gt;http://silverlight.net/learn/labs.aspx&lt;/A&gt; .&amp;nbsp;&amp;nbsp;&amp;nbsp; laboratori sulle nuove funzionalità di Silverlight 2&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P align=left mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=left&gt;Al link &lt;A title=http://silverlight.net/Quickstarts/Remote/default.aspx href="http://silverlight.net/Quickstarts/Remote/default.aspx" target=_blank mce_href="http://silverlight.net/Quickstarts/Remote/default.aspx"&gt;http://silverlight.net/Quickstarts/Remote/default.aspx&lt;/A&gt; trovate un quickstart sugli argomenti trattati.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8272689" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Silverlight e le nuove interfacce per i Servizi Finanziari</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/16/silverlight-e-le-nuove-interfacce-per-i-servizi-finanziari.aspx</link><pubDate>Sun, 16 Mar 2008 14:21:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8240134</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8240134.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8240134</wfw:commentRss><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="179" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/SilverlightelenuoveinterfacceperiServizi_A3DA/image_3.png" width="240" align="left" border="0" /&gt; Normalmente si &amp;#232; portati a pensare che la costruzione di interfacce innovative e ricche di contenuti, sia una tematica riservata al mondo dell'intrattenimento . In realta la possibilit&amp;#224; di sfruttare le potenzialit&amp;#224; delle nuove tecnologie per lo sviluppo di interfacce RIA (Rich Interactive Application) pu&amp;#242; essere effettuato a vantaggio di qualunque tipologia di applicazione, permettendo di costruire siti che consentono di aprire scenari completamente nuovi, contribuendo a migliorare significativamente anche servizi come la Banca Online. Un bell'esempio di quello che &amp;#232; possibile fare in questo settore &amp;#232; rappresentato dalla applicazione demo mostrata alcuni giorni f&amp;#224; alla &lt;a href="http://www.financialdevelopers.com/"&gt;Financial Services Developers Conference&lt;/a&gt; in NY. &lt;/p&gt;  &lt;p&gt;Si tratta di una demo che illustra un 'mock-up' di esempio di un sito finanziario sviluppato in Silverlight 2 che potete vedere online in &lt;a href="http://www.cookingwithxaml.com/meals/financials/default.html" target="_blank"&gt;questo sito&lt;/a&gt; . Caratteristiche interessanti di Silverlight 2 vengono combinate insieme all'interno di questo esempio, video e grafici interattivi, drag&amp;amp;drop , codice client compilato per calcoli , utilizzo di web service,&amp;#160; dimostrando le potenzialit&amp;#224; anche in questo tipo di scenari.&lt;/p&gt;  &lt;p&gt;Un video di introduzione alla demo lo trovate su questo &lt;a title="silverlight streaming video" href="http://silverlight.services.live.com/invoke/40230/findemo/iframe.html" target="_blank"&gt;silverlight streaming video&lt;/a&gt;&amp;#160; e a quest'altro link trovate un &lt;a href="http://www.cookingwithxaml.com/meals/financials/docs/SilverlightFinancialDemonstratorScript.docx" target="_blank"&gt;documento&lt;/a&gt; che descrive gli step dello scenario demo.&lt;/p&gt;  &lt;p&gt; Il codice sorgente dell'esempio lo potete scaricare &lt;a href="http://www.cookingwithxaml.com/meals/financials/source/SilverlightinFinancialsSource.zip" target="_blank"&gt;qui&lt;/a&gt;, al momento &amp;#232; un porting dalla versione 1.1 di Silverlight&amp;#160; e&amp;#160; verr&amp;#224; a breve pubblicata una nuova versione che sar&amp;#224; anche inserita nella gallery su Silverlight.net . Link al &lt;a href="http://blogs.msdn.com/jaimer/archive/2008/03/13/silverlight-in-financials-demonstrator.aspx" target="_blank"&gt;blog di Jaime Roudriguez&lt;/a&gt; che ha pubblicato la notizia .&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8240134" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Windows LiveID e WS-Federation: la base per un mondo S+S</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/10/windows-liveid-e-ws-federation.aspx</link><pubDate>Mon, 10 Mar 2008 16:15:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8090132</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8090132.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8090132</wfw:commentRss><description>&lt;p&gt;Una delle pi&amp;#249; interessanti possibilit&amp;#224; di Internet che oramai diamo per scontato &amp;#232; rappresentata dal fatto di avere un unico protocollo di rete unificato che , di fatto, garantisce la possibilit&amp;#224; a qualunque macchina di poter colloquiare con qualunque altra macchina collegata alla rete. Anche a livello di applicazioni, la standardizzazione del Web e dei suoi protocolli come meccanismo di esposizione e condivisione di informazioni ha reso possibile la costruzione di una enorme quantit&amp;#224; di applicazioni e di siti , raggiungibili attraverso modalit&amp;#224; completamente standardizzate. Uno degli aspetti che resta ancora complesso e che comporta&amp;#160; una notevole difficolt&amp;#224; nell'integrazione tra i siti e nell'utilizzo delle risorse esposte su Internet &amp;#232; rappresentato dagli aspetti collegati alla sicurezza . Siamo ancora in presenta di una ampia gamma di differenti modalit&amp;#224; di autenticazionzione ed autorizzazione, non integrabili tra loro con semplicit&amp;#224;, che costringento utenti ed applicazioni a gestire differenti modalit&amp;#224; di autenticazione, impedendo di fatto la semplice costruzione di applicazioni che possano condividere e aggregare servizi offerti da siti differenti, frenando la possibilit&amp;#224; di far evolvere Internet in una vera e propria piattaforma applicativa. Per materializzare la visione del Sofware + Service e rendere di fatto Internet una piattaforma di servizi componibili con il software locale alle nostre reti aziendali o di altri siti o servizi web, o&amp;#160; direttamente utilizzabile on line come servizio, avere una piattaforma comune per i meccanismi di sicurezza e autorizzazione costituisce un vincolo di base.&lt;/p&gt;  &lt;p&gt;Tra le princiopali iniziative portate avanti da un ampia gamma di vendor tra cui spiccano Microsoft ed IBM, per risolvere questa problematica ci sono le proposte di standard collegate a WS-Security. Per quanto riguarda Microsoft oltre alla collaborazione negli enti di standardizzazione per la proposizione degli standard , l'obiettivo&amp;#160;&amp;#160; degli ultimi anni &amp;#232; stato quello di lavorare in tutti i prodotti, tecnologie&amp;#160; e servizi per applicare realmente&amp;#160; gli&amp;#160;&amp;#160; standard proposti. In particolare nell'area dell'identity management un ampia iniziativa &amp;#232; stata messa in campo con &lt;a href="http://msdn2.microsoft.com/en-us/library/ms996422.aspx" target="_blank"&gt;l'identity metasystem&lt;/a&gt; e le sue &lt;a href="http://msdn2.microsoft.com/en-us/library/ms996456.aspx" target="_blank"&gt;7 leggi fondamentali&lt;/a&gt; che per l'appunto mirano a garantire il massimo dell'interoperabilit&amp;#224; e della semplicit&amp;#224; di utilizzo da parte degli utenti di questi aspetti che sono fondamentali per garantire la possibilit&amp;#224; di far evolvere Internet in una vera e propia piattaforma applicativa. Una componente importante della piattforma di servizi &amp;#232; rappresentata da Window Live Id che fornisce la base per i meccanismi di Autenticazione ed Autorizzazione per l'intera piattaforma di servizi on line di Microsoft e dei siti affiliati.&amp;#160; &lt;/p&gt;  &lt;p&gt;In un &lt;a href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/06/integrare-windows-live-id-nel-nostro-sito-web.aspx" target="_blank"&gt;precedente post ho illustrato gli elementi fondamentali per poter agganciare l'autenticazione di Windows LiveID&lt;/a&gt; ad un nostro sito web utilizzandolo come provider di autenticazione. Nel post avevo anche indicato la possibilit&amp;#224; ed il supporto di questo servizio ai meccanismi di federazione con altri sistemi di autenticazione attraverso &lt;a href="http://msdn2.microsoft.com/en-us/library/bb498017.aspx" target="_blank"&gt;WS-Federation&lt;/a&gt; , passo importante per materializzare il Digital Identity Metasystem , ed ho ricevuto una serie di richieste di approfondimento su questo aspetto da molte persone. WS-Federation &amp;#232; uno standard per permettere la federazione di sistemi di autenticazione differenti , consentendo di semplificare l'integrazione delle funzioni di autenticazione ed autorizzazione tra applicazioni e servizi che sono di aziende differenti o che comunque utilizzano differenti meccanismi e servizi di per gli aspetti di accesso, permettendo di implementare meccanismi di single sign-on tra sistemi di autentizione eterogenei . &lt;/p&gt;  &lt;p&gt;WS-Federation pervede due profili: il profilo che prevede l'autenticazione di client Web di tipo Browser che viene genericamente indicato come profilo passivo ed&amp;#160; il profilo attivo in cui abbiamo dei client di tipo diverso dal browser (smart client ) che accedono a dei web service che richiedono una autenticazione. Il profilo passivo di WS-Federation (quello riferito all'accesso via browser alle applicazioni Web) &amp;#232; anche supportato&amp;#160; direttamente da active directory da Windows 2003 R2 in poi&amp;#160; con gli &lt;a href="http://technet2.microsoft.com/windowsserver/en/technologies/featured/adfs/default.mspx" target="_blank"&gt;Active Directory Federation Service&lt;/a&gt; che&amp;#160; permettono la federazione di un dominio windows con altri sistemi che supportano lo stesso standard.&lt;/p&gt;  &lt;p&gt;Windows Live ID &amp;#232; un Identity Provider nell'accezione prevista da WS-Trust e WS-Security. I siti ed i web service che vogliono utilizzare Windows Live ID come provider di autenticazione vengono genericamente indicati come Resource Provider (RP). Tutti i siti ed i servizi offerti da Microsoft utilizzano Windows Live ID come provider di autenticazione ed &amp;#232; possibile per qualunque sito o servizio Intenet, utilizzare Windows Live ID come provider di autenticazione, senza la necessit&amp;#224; di condividere le informazioni di profilo degli utenti con il servizio. Nel momento in cui un client richiede una risorsa offerta da un resource provider che utilizza Live Id come provider di autenticazione , il client viene rediretto sul servizio di Live Id che provvede a verificare e credenziali del client chiamante ed a fornire le informazioni necessarie per accedere al servizio. Come abbiamo visto nel post precedete Live Id supporta la protezione di resource provider web sia nel caso di accesso da parte di client di tipo Browser che accede ad un sito web protetto sia il caso di smart client che accedono ad un web service. Le informazioni sull'integrazione dei due tipi di scenario sono contenute rispettivamente nel Web Client SDK e nel Smart Client SDK.&amp;#160;&amp;#160; Schematizzato ad alto livello il processo di autenticazione pu&amp;#242; essere rappresentato come di seguito:&lt;/p&gt;  &lt;p align="center"&gt;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsLiveIDeWSFederation_77CD/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="387" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsLiveIDeWSFederation_77CD/image_thumb_2.png" width="438" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1- Il client richiede accesso al Resource Provider&lt;/p&gt;  &lt;p&gt;2- il client viene rediretto sull'Identity Provider e gli viene fornito un &amp;quot;security token&amp;quot; per l'accesso al resource provider&lt;/p&gt;  &lt;p&gt;3- Il client torna dal resource provider presentando il security token,&amp;#160; ottenendo l'accesso &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Attraverso la &lt;strong&gt;federazione&lt;/strong&gt; &amp;#232; possibile gestire lo scenario in cui Windows Live Id si integra con un altro Identity Provider (IP), permettendo di realizzare una &amp;quot;relazione di fiducia&amp;quot; (Trust) tra i due IP che permetta di rimappare l'identit&amp;#224; autenticata da un IP su un' identit&amp;#224; gestita dall'altro. A seconda delle necessit&amp;#224; e degli accordi il Trust p&amp;#242; essere effettuato in modo unidirezionale o bidirezionale. Con questo scenario un utente che ha le credenziali&amp;#160; per autenticarsi su un IP , per accedere alle risorse protette da un altro IP pu&amp;#242; farlo senza la necessit&amp;#224; di creare e gestire una nuova identit&amp;#224; presso il secondo IP. Cerco di chiarire questa possibilit&amp;#224; con un esempio. Proviamo ad&amp;#160; immaginare un ipotetico sito Internet alfa.com che dispone gi&amp;#224; di un suo IP che &amp;#232; ingrado di autenticare gli utenti che accedono al sito che verranno identificati come nomeutente@alfa.com&amp;#160; . Il sito alfa.com vuole introdurre alcuni controlli di Windows Live e integrarli all'interno delle pagine del sito e vuole fare in modo che gli utenti che sono gi&amp;#224; autenticati dal suo IP non debbano inserire le credenziali di Windows Live ID per accedere ai servizi, ma possano essere direttamente riconosciuti con le credenziali di alfa.com anche quando, ad esempio, accedono alla cassetta postale su Windows Live Mail . La federazione e lo standard WS-Federation rendono possibile proprio la gestione di questo tipo di scenari facendo in modo che le credenziali autenticate da un IP possano essere rimappate su un altro IP.&lt;/p&gt;  &lt;p&gt;Lo scenario non si limita ovviamente ad un sito, ma &amp;#232; possibile ad esempio federare direttamente l'identity provider di un azienda con Live Id garantendo la possibilit&amp;#224; per questa azienda di integrare le sue applicazioni con i servizi di Microsoft ottenendo un modello di sicurezza affidabile ed omogeneo con estrema semplicit&amp;#224;, senza costringere gli utenti a gestire differenti identit&amp;#224;. Ad esempio gli utenti interni potrebbero avvalersi di Windows Live Mail utilizzando direttamente le credenziali con cui si collegano alla rete interna, senza doversi autenticare nuovamente con credenziali diverse per accedere a questi servizi. Gli utenti della Intranet potrebbero usare alcune funzionalit&amp;#224; di Office Live , senza doversi riautenticare, e cos&amp;#236; via per tutti gli altri servizi che sono disponibili nell'offerta online, rendendo di fatto possibile materializare la visione di internet come piattaforma che pu&amp;#242; essere combinata con i software locale alle reti&amp;#160; ad al device client.&amp;#160; &lt;/p&gt;  &lt;p&gt;Nel caso del nostro sito di esempio alfa.com immaginiamo di avere un utente che si collega direttamente alla sua e-mail su Windows Live mail. Il resource provider di Live Mail non riconosce l'utente e lo indirizza verso l'IP di Windows Live ID , responsabile del riconoscimento degli utenti per il sito di Live Mail. All'utente viene presentata l'interfaccia per l'autenticazione e l'utente ha la possibilit&amp;#224; di selezionare un differente IP specificando il suo nome di utente &lt;a href="mailto:numeutente@alfa.com"&gt;numeutente@alfa.com&lt;/a&gt; . A questo punto Windows Live ID redirige la richiesta sul provider di autenticazione con cui &amp;#232; federato di alfa.com dove l'utente pu&amp;#242; essere autenticato con il meccanismo previsto da alfa.com. Ottenuta l'autenticazione , la richiesta torna su Windows Live Id che estrae e verifica il security token rilasciato da alfa.com e cifrato con la chiave privata del certificato digitale di alfa.com e la rimappa su un utente Windows Live Id, rilasciando il security token opportuno con cui il browser client attraverso una redirect si ripresenta da Windows Live Mail , ottenendo l'accesso. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsLiveIDeWSFederation_77CD/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="312" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/WindowsLiveIDeWSFederation_77CD/image_thumb_1.png" width="510" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1- Il client richiede l'accesso ad una risorsa su Windows Live ID&lt;/p&gt;  &lt;p&gt;2- Viene rediretto su Live Id e viene presentata l'interfaccia per l'autenticazione e l'utente ha la possibilit&amp;#224; di selezionare un differente IP specificando il suo nome di utente &lt;a href="mailto:numeutente@alfa.com"&gt;numeutente@alfa.com&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3- La richiesta viene rediretta su alfa.com dove l'utente pu&amp;#242; essere autenticato con il meccanismo previsto da alfa.com&lt;/p&gt;  &lt;p&gt;4 - La richiesta viene rediretta su Windows Live ID che estrae e verifica il security token rilasciato da alfa.com e cifrato con la chiave privata del certificato digitale di alfa.com e la rimappa su un utente Windows Live Id, rilasciando il security token opportuno &lt;/p&gt;  &lt;p&gt;5- client attraverso una redirect si ripresenta da Windows Live Mail , ottenendo l'accesso. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Abbiamo schematizzato il comportamente in caso di client Browser (profilo passivo ) , un approccio simile si realizza anche nel caso di profili attivi ovvero smart client che accedono a Web Service.&lt;/p&gt;  &lt;p&gt;Per chi volesse approfondire l'argomento segnalo un articolo pubblicato di recente su MSDN che introduce le possibilit&amp;#224; di federazione&amp;#160; di LiveId: &lt;a title="Windows Live ID Federation" href="http://msdn2.microsoft.com/en-us/library/cc287610.aspx"&gt;Windows Live ID Federation&lt;/a&gt; da leggere dopo il documento di &lt;/p&gt; &lt;a href="http://msdn2.microsoft.com/en-us/library/bb288408.aspx" target="_blank"&gt;Introduzione a Windows Live ID&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8090132" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Live/default.aspx">Live</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Sql Server Data Services : il database come servizio, un altro esempio di S+S</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/07/sql-server-data-service-il-database-come-servizio-un-altro-esempio-di-s-s.aspx</link><pubDate>Fri, 07 Mar 2008 14:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8092912</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8092912.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8092912</wfw:commentRss><description>&lt;P&gt;Tra le tantissime novità annunciate al MIX 08 ( per chi volesse vedere le sessioni dell'evento &lt;A title=http://sessions.visitmix.com/ href="http://sessions.visitmix.com/" target=_blank mce_href="http://sessions.visitmix.com/"&gt;http://sessions.visitmix.com/&lt;/A&gt;&amp;nbsp; ) una delle più interessanti nell'ottica del mondo &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/11/la-fine-della-tirannia-dell-or-software-services-s-s.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/11/la-fine-della-tirannia-dell-or-software-services-s-s.aspx"&gt;S+S/SaaS&lt;/A&gt; e di tutte le implicazioni che questo modello comporta per le applicazioni e per le &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/12/saas-soa-e-s-s-impatto-per-le-aziende.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/12/saas-soa-e-s-s-impatto-per-le-aziende.aspx"&gt;aziende&lt;/A&gt; e per i produttori di software è rappresentata dal nuovo servizio&lt;STRONG&gt; &lt;A href="http://www.microsoft.com/sql/dataservices/default.mspx" target=_blank mce_href="http://www.microsoft.com/sql/dataservices/default.mspx"&gt;Sql Server Data Services&lt;/A&gt;&lt;/STRONG&gt;. &lt;/P&gt;
&lt;P&gt;Si tratta di un vero e proprio Data Service&amp;nbsp; che viene incontro sia alle esigenze delle applicazioni web di cui parlavo nel post su &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/04/ado-net-data-service.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/04/ado-net-data-service.aspx"&gt;ADO.NET Data Service&lt;/A&gt; sia alle esigenze di aziende di diverse dimensioni relativamente alla gestione dei dati.&lt;/P&gt;
&lt;P&gt;Il servizio&amp;nbsp;offre la possibilità di disporre di data storage,&amp;nbsp;accessibili direttamente online su Internet,&amp;nbsp;&amp;nbsp;progressivamente scalabili su richiesta,&amp;nbsp;senza dover installare&amp;nbsp;nel nostro data center rilevanti quantità di Hardware che poi vanno gestite e manutenute.&lt;/P&gt;
&lt;P&gt;L'accesso alle informazioni inserite nel servizio è possibile attraverso delle interfacce web service (SOAP,e REST) ed è possibile utilizzare un modello ad oggetti client che permette di utilizzare LINQ per gestire ed accedere alle Entità che verranno inserite nel servizio. Presenti anche tutti gli strumenti per l'amministrazione e la configurazione degli aspetti di sicurezza che sfrutteranno ovviamente Windows LiveId con tutte le sue potenzialità di federazione.&lt;/P&gt;
&lt;P&gt;La sessione specifica di MIX08 sull'argomento tenuta da Nigel Ellis (Architect del servizio ) sarà a breve on line&amp;nbsp;sempre a &lt;A title=http://sessions.visitmix.com/ href="http://sessions.visitmix.com/" target=_blank mce_href="http://sessions.visitmix.com/"&gt;http://sessions.visitmix.com/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Interessante sull'argomento il post di&amp;nbsp; &lt;A title="Eugenio Pace - Software as a Service Architecture Guidance" href="http://blogs.msdn.com/eugeniop/archive/2008/03/05/sql-server-data-services-sdss-new-version-of-litwarehr.aspx" mce_href="http://blogs.msdn.com/eugeniop/archive/2008/03/05/sql-server-data-services-sdss-new-version-of-litwarehr.aspx"&gt;Eugenio Pace - Software as a Service Architecture Guidance&lt;/A&gt; sul lavoro di integrazione del servizio con le guidance SaaS e S+S dell'architecture strategy team e l'evoluzione che stanno implementando nell'applicazione reference LitwareHR dove per l'appunto verrà sfruttato il nuovo servizio come storage.&lt;/P&gt;
&lt;P&gt;Per chi vuole provare la beta : &lt;A title=http://www.microsoft.com/sql/dataservices/default.mspx href="http://www.microsoft.com/sql/dataservices/default.mspx" mce_href="http://www.microsoft.com/sql/dataservices/default.mspx"&gt;http://www.microsoft.com/sql/dataservices/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Blog del team :&lt;A title=http://blogs.msdn.com/ssds/ href="http://blogs.msdn.com/ssds/" target=_blank mce_href="http://blogs.msdn.com/ssds/"&gt;http://blogs.msdn.com/ssds/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;FAQ del servizio:&lt;A title=http://www.microsoft.com/sql/dataservices/faq.mspx href="http://www.microsoft.com/sql/dataservices/faq.mspx" mce_href="http://www.microsoft.com/sql/dataservices/faq.mspx"&gt;http://www.microsoft.com/sql/dataservices/faq.mspx&lt;/A&gt;&lt;/P&gt;&lt;A title=http://www.microsoft.com/sql/dataservices/faq.mspx href="http://www.microsoft.com/sql/dataservices/faq.mspx" mce_href="http://www.microsoft.com/sql/dataservices/faq.mspx"&gt;&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8092912" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Silverlight Blueprint per SharePoint</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/04/silverlight-blueprint-per-sharepoint.aspx</link><pubDate>Tue, 04 Mar 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8023573</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8023573.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8023573</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/sharepoint/cc303301.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/sharepoint/cc303301.aspx"&gt;&lt;IMG height=137 alt=sl src="http://blogs.tamtam.nl/mart/content/binary/SilverlightBlueprintforSharePoint_7EC0/sl_thumb.png" width=244 align=left border=0 mce_src="http://blogs.tamtam.nl/mart/content/binary/SilverlightBlueprintforSharePoint_7EC0/sl_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Come posso integrare Silverlight all'interno del mio portale basato su Sharepoint ? Domanda classica e ricorrente da tempo in tutti gli incontri con clienti e partner che hanno come argomento una delle due tecnologie. Ora disponibile il &lt;A href="http://blogs.tamtam.nl/mart/ct.ashx?id=09f0b223-9169-40e6-9b39-4675590fc180&amp;amp;url=http%3a%2f%2fwww.ssblueprints.net%2fsharepoint%2f" mce_href="http://blogs.tamtam.nl/mart/ct.ashx?id=09f0b223-9169-40e6-9b39-4675590fc180&amp;amp;url=http%3a%2f%2fwww.ssblueprints.net%2fsharepoint%2f"&gt;Silverlight Blueprint per SharePoint web site&lt;/A&gt;&amp;nbsp; completo di esempi con tutorial e video&amp;nbsp; che mostrano come integrare Silverlight all'interno di applicazioni basate su Sharepoint. &lt;/P&gt;
&lt;P&gt;Sei applicazioni di esempio verranno rese disponibili per partire a sviluppare siti combinando le potenzialità delle due tecnologie tra cui un Navigation Control, un viewer per i colleghi&amp;nbsp; che effettua delle lookup in Active Directory usando WCF, una SharePoint picture library basata su Silverlight, un custom field type per slider control e molto altro.&lt;/P&gt;
&lt;P&gt;Disponibile anche un assembly wrapper di base per che include delle wrapper class di partenza per includere Silverlight in WebPart .&amp;nbsp; Il Blueprint conterrà il codice sorgente di esempi e wrapper rilasciato con la modalità&amp;nbsp; shared source su codeplex.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8023573" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Office/default.aspx">Office</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>ADO.NET Data Service</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/03/04/ado-net-data-service.aspx</link><pubDate>Tue, 04 Mar 2008 12:00:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8021678</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8021678.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8021678</wfw:commentRss><description>&lt;p&gt;Un'altra interessante componente disponibile con la &lt;a href="http://asp.net/downloads/3.5-extensions/" target="_blank"&gt;CTP delle ASP.NET 3.5 Extension&lt;/a&gt; è la nuova infrastruttura per lo sviluppo di Web Data Service ADO.NET Data Service. Si tratta dell'evoluzione in prodotto della &lt;a href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/05/14/accesso-al-database-attraverso-un-url-code-name-astoria.aspx" target="_blank"&gt;tecnologia incubazione denominata "Astoria" mostrata a MIX 07&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Il nuovo framework ha lo scopo di semplificare l'erogazione di sorgenti dati sul Web venendo incontro alla trasformazione che i siti internet stanno avendo nell'utilizzo di queste funzionalità. &lt;/p&gt; &lt;p&gt;I siti Web da semplici erogatori di interfacce HTML si stanno trasformando in erogatori di dati.&amp;nbsp; Con lo sviluppo di AJAX e delle applicazioni RIA si sta&amp;nbsp; passando da un approccio in cui dall'esecuzione del codice lato server si accedeva alle sorgenti dati utilizzate nei siti&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="222" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb.png" width="488" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;ad un approccio in cui dal codice client che si esegue nel browser, si accede direttamente alle sorgenti dati via HTTP, genericamente attraverso un approccio REST&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="197" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_1.png" width="498" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Il framework ADO.NET Data Service è uno strato costruito sopra l'Entity Framework che permette di rendere accessibile attraverso un URL con uno stile REST il modello E/R implementato (per approfondimenti sull'entity framework vi consiglio : &lt;a title="http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx" href="http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx&lt;/a&gt;&amp;nbsp; e &lt;a title="http://msdn2.microsoft.com/en-us/library/cc161164(printer).aspx" href="http://msdn2.microsoft.com/en-us/library/cc161164(printer).aspx"&gt;http://msdn2.microsoft.com/en-us/library/cc161164(printer).aspx&lt;/a&gt;&amp;nbsp; ). In realtà non permette esclusivamente di esporre modelli dell'Entity framework ma di qualunque entità che implementi l'interfaccia IQueryable &amp;lt;T&amp;gt; .&lt;/p&gt; &lt;p&gt;Oltre a fornire le componenti server per esporre via Http con stile REST il modello di entità, il framework offre due nuove API client per semplificare l'accesso ai dati esposti in questa modalità:&lt;/p&gt; &lt;p&gt;- Un libreria JavaScript che estende i namespace della Microsoft Ajax Library (namespace Sys.Data ed in particolare Sys.Data.DataService nella Script Library&amp;nbsp; MicrosoftAjaxDataService.js)&lt;/p&gt; &lt;p&gt;- una libreria .NET pensata per client sia silverlight che .NET Framework per desktop ( namespace Microsoft.Data.WebClient contenuto nelle Extension con particolare riferimento alle classi WebDataContext e WebDataQuery ).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Per poter analizzare più nel dettaglio il funzionamento del framework partiamo con l'implementare un semplice esempio basandoci sull'Entity Framework. In particolare partiremo con il creare un entity data model sul classico database Northwind per poi esporre con un servizio ADO.NET DataService le entità via http e poi accederci utilizzandole due librerie client citate.&lt;/p&gt; &lt;p&gt;I passi da implementare sono essenzilmente i seguenti:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;- Creare il Progetto&lt;/p&gt; &lt;p&gt;- Creare l'Entity Model&lt;/p&gt; &lt;p&gt;- Creare il Data Service e Autorizzare gli accessi&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Procediamo con la creazione di un nuovo Web Site. Dopo aver avviato il progetto, includiamo un elemento di tipo ADO.NET Entity Data Model lo connettiamo al classico database Nortwind , ottenendo un nuovo modello che utilizzeremo come base per l'esposizione del servizio di accesso ai dati.&lt;/p&gt; &lt;p align="center"&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="391" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_2.png" width="574" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align="center"&gt;&amp;nbsp; &lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="387" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_3.png" width="567" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="392" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_4.png" width="566" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Aggiungiamo ora un elemento di tipo ASP.NET Data Service e lo colleghiamo al modello EDM appena creato&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_12.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="397" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_5.png" width="576" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;ottenendo un servizio come quello che vediamo di seguito:&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_14.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="342" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_6.png" width="575" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Si tratta di un servizio che utilizza WCF ed il nuovo supporto REST offerto da .NET 3.5 e attraverso una infrastruttura costruita sopra queste funzionalità basata sulla classe WebDataService, espone il nostro EDM che in questo caso è basata data context NorthwindEntities che abbiamo appena costruito con il tool dell'entity framework e che stiamo indicando con lo specifico generics previsto dalla classe:&lt;/p&gt; &lt;p&gt;.........&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;public class Northwind: WebDtataService &amp;lt;NorthwindModel.NorthwindEntities&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;........&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In realtà la classe WebDataService come abbiamo già detto è in grado di gestire qualunque modello che implementi l'interfaccia IQueryable &amp;lt;T&amp;gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Per autorizzare l'accesso alle informazioni esposte dal servizio utiliziamo la classe di autorizzazione appositamente inserita nel servizio , aggiungendo al configurazione sul costruttore del servizio per ottenere l'accesso ai dati di tutti i clienti contenuti nel database nortwind su cui abbiamo costruito il nostro EDM.&lt;/p&gt; &lt;p&gt;Nel nostro piccolo esempio impostiamo l'accesso completo a tutte le risorse presenti nel modello esposto attraverso il servizio:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;namespace SimpleDataService { &lt;/p&gt; &lt;p&gt;&amp;nbsp; public class Northwind : WebDataService&amp;lt;NorthwindEntities&amp;gt; { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void InitializeService(IWebDataServiceConfiguration config) { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; config.SetResourceContainerAccessRule("*", ResourceContainerRights.All); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Per poter effettuare un test sul funzionamento del servizio è possibile inviare direttamente con un browser una richiesta GET del tipo seguente:&lt;/p&gt; &lt;p&gt; http://localhost:2759/WebSite1/Northwind.svc/Customers&lt;/p&gt; &lt;p&gt; con la quale otteniamo accesso ai dati di tutti i clienti. Oppure la seguente con cui otteniamo l'accesso ad uno specifico customer:&lt;/p&gt; &lt;p&gt;http://localhost:2759/WebSite1/Northwind.svc/Customers('alfki')&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_16.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="400" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ASP.NETDataService_D85B/image_thumb_7.png" width="554" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;o ad esempio ai suoi ordini:&lt;/p&gt; &lt;p&gt;http://localhost:2759/WebSite1/Northwind.svc/Customers('alfki')/Orders&lt;/p&gt; &lt;p&gt;Per un introduzione sulla sintassi per ADO.NET DataService potete far riferimento a &lt;a title="http://quickstarts.asp.net/3-5-extensions/adonetdataservice/SimpleAddressingSchemeForDataWithUniformURLs.aspx" href="http://quickstarts.asp.net/3-5-extensions/adonetdataservice/SimpleAddressingSchemeForDataWithUniformURLs.aspx" target="_blank"&gt;http://quickstarts.asp.net/3-5-extensions/adonetdataservice/SimpleAddressingSchemeForDataWithUniformURLs.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Utilizzando la specifica sintassi prevista dal servizio si possono effettuare query e modifiche ai dati. In funzione del tipo di content type inviato nell'header http è possibile ottenere risposte con serializzazione XML o JSON.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; E' possibile anche implementare dei Query Interceptors o Change Interceptor sul WebService per agganciare del nostro codice e gestire specifiche richieste di Query o modifiche. Ad esempio per intercettare e gestire le richieste di Query sui Customers del nostro esempio si dovrà aggiungere il seguente metodo:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;[QueryInterceptor("Customers")]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public IQueryable&amp;lt;Customers&amp;gt; OnQueryOrders(IQueryable&amp;lt;Customers&amp;gt; customerQuery)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return from o in customerQuery&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where o.ContactName ==HttpContext.Current.User.Identity.Name&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select o;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;che fornirà esclusivamente accesso a quei customer dove il contactname corrisponde al nome dell'utente che sta accedendo al servizio. Per il Change Interceptor si utilizzerà l'attributo [ChangeInterceptor("......")] sul metodo Interceptor.&lt;/p&gt; &lt;p&gt;Oltre agli Interceptor è possibile estendere il servizio con dei nostri metodi custom attraverso quello che viene definito un Service Operation. Per aggiungere una Service Operation basta implementare uno specifico metodo come di seguito:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;[WebGet]&lt;br&gt;public IQueryable&amp;lt;Model.Customers&amp;gt; CustomersInCity(string cityName)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return from c in this.CurrentDataSource.Customers&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where c.City == cityName&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select c;&lt;br&gt;}&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Renderlo accessibile con la configurazione delle autorizzazioni:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;public static void InitializeService(IWebDataServiceConfiguration config)&lt;br&gt;{&lt;br&gt; ...&lt;br&gt; config.SetServiceOperationAccessRule("CustomersInCity", ServiceOperationRights.All);&lt;br&gt;} &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;e potrà essere acceduto attraverso il seguente URL:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;http://localhost:2759/WebSite1/Northwind.svc/CustomersInCity?cityName='Rome'&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Non soltando è possibile esporre dati ma utilizzando delle Service Operetions è possibile anche sfruttare gli attributi [SingleResult] e [MimeType] per realizzare interessanti combinazioni come ad esempio l'esposizione di template HTML collegati ai dati contenuti nel modello:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;[MimeType("text/html")]&lt;br&gt;[SingleResult]&lt;br&gt;[WebGet]&lt;br&gt;public IQueryable&amp;lt;string&amp;gt; WelcomePage()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new string[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;" +&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Welcome!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Currently we have " +&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.CurrentDataSource.Customers.Count().ToString() + &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " customers.&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }.AsQueryable();&lt;br&gt;}&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Accessibili poi con URL di questo tipo: &lt;p&gt;&amp;nbsp; &lt;p&gt;http://localhost:2759/WebSite1/Northwind.svc/WelcomePage/$value &lt;p&gt;Ad esempio è possibile anche creare dei Tempale XAML per Silverlight che possono essere direttamente valorizati con dei dati come nell'esempio precedente e poi caricati dinamicamente nell'applicazione RIA client chiamante utilizzando ad esempio una chiamata XmlHttpRequest con la funzione &lt;a href="http://msdn2.microsoft.com/en-us/library/bb980072.aspx" target="_blank"&gt;createfromxaml&lt;/a&gt; del plugin. &lt;p&gt;Abbiamo parlato prima delle due librerie client disponibili per l'accesso via JavaScript e via .NET. Per l'utilizzo AJAX sfruttiamo la libreria JS MicrosoftAjaxDataService.js che ci mette a dsiposizione la classe Sys.Data.DataService . Referenziando la libreria : &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server"&amp;gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp; &amp;lt;Scripts&amp;gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="MicrosoftAjaxDataService.js" /&amp;gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Scripts&amp;gt; &lt;/p&gt; &lt;p&gt;&amp;lt;/asp:ScriptManager&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;è possibile utilizzare la libreria per effettuare un query sui dati come di seguito:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;var northwindService = new Sys.Data.DataService("/Northwind.svc"); &lt;/p&gt; &lt;p&gt;northwindService.query("/Customers", onSuccess, onFailure);&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Dove onSuccess e onFailure sono rispettivamente i metodi invocati all'arrivo della risposta o in caso di errore :&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;function onFailure(error, context, operation) {&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $get("spanResults").innerHTML = "Error occurred in operation " + operation + "."; &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;function onSuccess(result, context, operation) {&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp; // Get Customers list and put into a table.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp; var sb = new Sys.StringBuilder(); &lt;/p&gt; &lt;p&gt;&amp;nbsp; sb.append("&amp;lt;table&amp;gt;"); &lt;/p&gt; &lt;p&gt;var firstRowOutput = false; &lt;/p&gt; &lt;p&gt;for (idx in result) {&lt;/p&gt; &lt;p&gt;&amp;nbsp; var customer = result[idx]; &lt;/p&gt; &lt;p&gt;&amp;nbsp; if (!firstRowOutput) { // Display the header row. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; sb.append("&amp;lt;tr&amp;gt;"); for (key in customer) { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (key != "__metadata") { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append("&amp;lt;th&amp;gt;"); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append(key); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append("&amp;lt;/th&amp;gt;"); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt; &lt;p&gt;sb.append("&amp;lt;/tr&amp;gt;"); &lt;/p&gt; &lt;p&gt;firstRowOutput = true;&lt;/p&gt; &lt;p&gt;} // Display the data. &lt;/p&gt; &lt;p&gt;sb.append("&amp;lt;tr&amp;gt;"); &lt;/p&gt; &lt;p&gt;for (key in customer) {&lt;/p&gt; &lt;p&gt;&amp;nbsp; if (key != "__metadata") { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append("&amp;lt;td&amp;gt;"); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append(customer[key]);&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append("&amp;lt;/td&amp;gt;"); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt; &lt;p&gt;} &lt;/p&gt; &lt;p&gt;sb.append("&amp;lt;/tr&amp;gt;");&lt;/p&gt; &lt;p&gt;} &lt;/p&gt; &lt;p&gt;sb.append("&amp;lt;/table&amp;gt;");&lt;/p&gt; &lt;p&gt;$get("spanResults").innerHTML = sb.toString();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;La classe mette poi a disposizione le funzionalità per effettuare update ed insert.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Come già in precedenza segnalato è disponibile anche un namespace client .NET (Microsoft.Data.WebClient) per poter accedere con maggiore semplicità da client managed ai dati esposti da un servizio ASP.NET Data Service . &lt;/p&gt; &lt;p&gt;Attraverso la classe WebDataContext si gestisce il contesto verso uno specifico servizio e con la classe WebDataQuery si rappresentano e si eseguono le query verso la sorgente dati rappresentata da un WebDataContext:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;WebDataContext ctx = new WebDataContext(&lt;a href="http://localhost:51905/nw.svc"&gt;http://localhost:51905/nw.svc&lt;/a&gt;); &lt;/p&gt; &lt;p&gt;WebDataQuery&amp;lt;Customer&amp;gt; customers = ctx.CreateQuery&amp;lt;Customer&amp;gt;("/Customer"); &lt;/p&gt; &lt;p&gt;foreach (Customer r in customers) { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(c.CompanyName ); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;La CTP mette a disposizione anche un generatore di codice (WebDataGen.exe) che, partendo dai metadatid el servizio, ci genera un modello ad oggetti che ci permette di utilizzare LINQ per accedere al servizio:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;\Program Files\Microsoft ASP.NET 3.5 Extensions\WebDataGen.exe" /mode:ClientClassGeneration /outobjectlayer:northwind.cs /uri:http://localhost:8090/Northwind.svc&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Generato il modello con il tool è possibile utilizzare per accedere ai dati del servizio codice come il seguente:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;using System;&lt;/p&gt; &lt;p&gt;using Microsoft.Data.WebClient; &lt;/p&gt; &lt;p&gt;using System.Linq; &lt;/p&gt; &lt;p&gt;using NorthwindModel;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;namespace TestApplication { &lt;/p&gt; &lt;p&gt;class Program { &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; static void Main(string[] args) {&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NorthwindEntities ctx = new NorthwindEntities(&lt;a href="http://localhost:8090/Northwind.svc"&gt;http://localhost:8090/Northwind.svc&lt;/a&gt;); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ctx.MergeOption = MergeOption.AppendOnly; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var q = from c in ctx.Customers where c.City == "London" orderby c.CompanyName select c; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var cust in q) {&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(cust.CompanyName); &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;La classe NorthwindEntities deriva da WebDataContext e permette di gestire con LINQ un approccio tipizzato.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Sono possibili anche operazioni di update,delete e insert.&amp;nbsp; L'autenticazione sul servizio avviene passando le credenziali con la classica interfaccia ICredentials.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Conclusioni&lt;/p&gt; &lt;p&gt;ADO.NET Data Service fornisce un nuova nuova sofisticata modalità per esporre , consumare sorgenti dati attraverso un approccio REST che consente di costruire con rapidità servizi in grado di supportare con efficacia le esigenze di accesso ai dati nei nuovi scenari Internet con particolare riferimento alle applicazioni RIA. &lt;/p&gt; &lt;p&gt;Per una introduzione alle funzionalità del servizio vi suggerisco il &lt;a href="http://quickstarts.asp.net/3-5-extensions/adonetdataservice/ADONETDataServicesFramework.aspx" target="_blank"&gt;QuickStart online&lt;/a&gt; , il &lt;a href="http://blogs.msdn.com/astoriateam/default.aspx" target="_blank"&gt;blog del team&lt;/a&gt; dove troverete anche le novità in arrivo , e segnalo inoltre&amp;nbsp; alcuni video realizzati sull'argomento:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/305/ADONET-Data-Services-Surfacing-Data.aspx" target="_blank"&gt;ADO.NET Data Services - Surfacing Data&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/306/ADONET-Data-Services-Querying-with-URIs.aspx" target="_blank"&gt;ADO.NET Data Services - Querying with URI's&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/309/ADONET-Data-Services-A-Basic-NET-Client.aspx" target="_blank"&gt;ADO.NET Data Services - A Basic .NET Client&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/307/ADONET-Data-Services-A-Basic-AJAX-Client.aspx" target="_blank"&gt;ADO.NET Data Services - A Basic AJAX Client&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/308/ADONET-Data-Services-A-Basic-Silverlight-Client.aspx" target="_blank"&gt;ADO.NET Data Services - A Basic Silverlight Client&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/310/ADONET-Data-Services-Querying-with-LINQ.aspx" target="_blank"&gt;ADO.NET Data Services - Querying with LINQ&lt;/a&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/311/ADONET-Data-Services-Query-Interceptors.aspx" target="_blank"&gt;ADO.NET Data Services - Query Interceptors&lt;/a&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.microsoft.com/uk/msdn/screencasts/screencast/312/ADONET-Data-Services-Service-Operations.aspx" target="_blank"&gt;ADO.NET Data Services - Service Operations&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8021678" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category></item><item><title>Servizi online e Office : un esempio dal mondo reale</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/02/12/servizi-online-e-office-un-esempio-dal-mondo-reale.aspx</link><pubDate>Tue, 12 Feb 2008 11:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7634868</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/7634868.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=7634868</wfw:commentRss><description>&lt;P&gt;Un ottimo esempio di &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/11/la-fine-della-tirannia-dell-or-software-services-s-s.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/11/la-fine-della-tirannia-dell-or-software-services-s-s.aspx"&gt;Software + Services (S+S)&lt;/A&gt; e di &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/12/saas-soa-e-s-s-impatto-per-le-aziende.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/12/saas-soa-e-s-s-impatto-per-le-aziende.aspx"&gt;integrazione dei servizi su internet&amp;nbsp; con applicazioni nell'azienda&lt;/A&gt; ed in particolare con Office System&amp;nbsp; attraverso i &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/09/07/video-introduzione-oba-office-business-application.aspx" target=_blank mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/09/07/video-introduzione-oba-office-business-application.aspx"&gt;pattern Office Business Application (OBA)&lt;/A&gt; ,&amp;nbsp; è rappresentato dai nuovi servizi messi a disposizione da FedEx e mostrati nella&amp;nbsp; &lt;A href="http://www.microsoft.com/presspass/events/devcon/default.mspx" target=_blank mce_href="http://www.microsoft.com/presspass/events/devcon/default.mspx"&gt;KeyNote della Office Developers Conference&lt;/A&gt; da Bill Gates &lt;/P&gt;
&lt;P align=center&gt;&lt;IMG height=399 src="http://ericbowen.smugmug.com/photos/253392460_hTCXs-M-1.jpg" width=715 mce_src="http://ericbowen.smugmug.com/photos/253392460_hTCXs-M-1.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Tra le funzionalità implementate abbiamo:&lt;/P&gt;
&lt;P&gt;- &lt;STRONG&gt;Una nuova applicazione per la gestione integrata con Outlook dei servizi di FedEx&lt;/STRONG&gt;&amp;nbsp; che trovate all'indirizzo &lt;A title=http://www.fedex.com/quickship/ href="http://www.fedex.com/quickship/" target=_blank mce_href="http://www.fedex.com/quickship/"&gt;http://www.fedex.com/quickship/&lt;/A&gt; . L'applicazione si integra completamente con l'interfaccia di Outlook e permette di creare dei profili locali per gli utenti per cui volete gestire servizi di spedizione esposti su Internet da FedEx. Viene&amp;nbsp; mantenuta&amp;nbsp; localmente l'associazione tra servizi e contatti permettendo di gestire l'accesso ai Web Service di Fedex in modo integrato alle risorse locali, il tutto senza abbandonare l'interfaccia di outlook. &lt;/P&gt;
&lt;P&gt;Di seguito vedete alcune schermate:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=289 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/6a1f8562d81d_7273/image_6.png" width=449 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/6a1f8562d81d_7273/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=285 alt=image src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/6a1f8562d81d_7273/image_5.png" width=388 border=0 mce_src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/6a1f8562d81d_7273/image_5.png"&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Vi consiglio di guardare la demo dell'applicazione a&amp;nbsp; &lt;A title=http://www.fedex.com/images/us/quickship/launch.html href="http://www.fedex.com/images/us/quickship/launch.html" target=_blank mce_href="http://www.fedex.com/images/us/quickship/launch.html"&gt;http://www.fedex.com/images/us/quickship/launch.html&lt;/A&gt; . &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- &lt;STRONG&gt;Prototipo di site template per Office Sharepoint "MyFedEx-style"&lt;/STRONG&gt; ottimo esempio di Software + Service con cui le aziende clienti di FedEx potranno inserire nella propria intranet un area dedicata ai servizi FedEx che va ad interagire direttamente con i Web Service su Internet di FedEx e Windows Live (in particolare le mappe) combinandoli con lo Sharepoint ed i dati locali all'azienda, consentendo la gestione del tracking e delle altre attività di spedizione direttamente dalle pagine della Intranet in modo integrato con i dati aziendali:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG height=359 alt="FedEx Shipping - sharepoint" src="http://blogs.msdn.com/blogfiles/johnmullinax/WindowsLiveWriter/ScreenshotsfromFedExsdemoduringBillGsODC_DB94/FedEx%20Shipping%20-%20sharepoint_thumb.jpg" width=539 border=0 mce_src="http://blogs.msdn.com/blogfiles/johnmullinax/WindowsLiveWriter/ScreenshotsfromFedExsdemoduringBillGsODC_DB94/FedEx%20Shipping%20-%20sharepoint_thumb.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- &lt;STRONG&gt;Prototipo di stampa per FedEx Kinkos da Office Word 2007&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG height=368 alt="FedEx Kinkos - Word2007" src="http://blogs.msdn.com/blogfiles/johnmullinax/WindowsLiveWriter/ScreenshotsfromFedExsdemoduringBillGsODC_DB94/FedEx%20Kinkos%20-%20Word2007_thumb.jpg" width=555 border=0 mce_src="http://blogs.msdn.com/blogfiles/johnmullinax/WindowsLiveWriter/ScreenshotsfromFedExsdemoduringBillGsODC_DB94/FedEx%20Kinkos%20-%20Word2007_thumb.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- &lt;STRONG&gt;FedEx per Office Live Small Business&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG height=285 alt=clip_image001[5] src="http://blogs.msdn.com/blogfiles/johnmullinax/WindowsLiveWriter/ScreenshotsfromFedExsdemoduringBillGsODC_DB94/clip_image001%5B5%5D_thumb.jpg" width=551 border=0 mce_src="http://blogs.msdn.com/blogfiles/johnmullinax/WindowsLiveWriter/ScreenshotsfromFedExsdemoduringBillGsODC_DB94/clip_image001%5B5%5D_thumb.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Informazioni ulteriori per sviluppatori sui servizi messi a disposizione da FedEx le trovate a &lt;A href="http://www.fedex.com/us/developer/product/resources.html" target=_blank mce_href="http://www.fedex.com/us/developer/product/resources.html"&gt;FedEx Developer Resource Center&lt;/A&gt; (DRC).&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7634868" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Smart+Client/default.aspx">Smart Client</category></item><item><title>Architect Forum dedicato a Office Business Application: Costruire ed integrare le applicazioni aziendali con Sharepoint e Office</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/01/14/architect-forum-dedicato-a-office-business-application-costruire-ed-integrare-le-applicazioni-aziendali-con-sharepoint-e-office.aspx</link><pubDate>Mon, 14 Jan 2008 12:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7026046</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/7026046.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=7026046</wfw:commentRss><description>&lt;P&gt;&lt;A title="Office Business Applications Forum" href="http://http//www.microsoft.com/italy/msdn/risorsemsdn/eventi/oba.mspx" target=_blank mce_href="http://http://www.microsoft.com/italy/msdn/risorsemsdn/eventi/oba.mspx"&gt;&lt;IMG height=101 alt=image src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/OfficeBusinessApplicationOBAArchitectFor_F194/image_thumb.png" width=428 align=left border=0 mce_src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/OfficeBusinessApplicationOBAArchitectFor_F194/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Vi ricordo l'evento del&amp;nbsp; &lt;B&gt;&lt;A href="http://www.microsoft.com/italy/msdn/risorsemsdn/eventi/oba.mspx" mce_href="http://www.microsoft.com/italy/msdn/risorsemsdn/eventi/oba.mspx"&gt;24 Gennaio a milano&lt;/A&gt;&lt;/B&gt; dedicato a OBA. Si spazierà dallo sviluppo lato server per Sharepoint illustrando le funzionalità del &lt;A href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/08/10/business-data-catalog-e-smart-tags-per-comporre-i-dati-delle-applicazioni-lob-con-il-portale-e-con-office-client.aspx" mce_href="http://blogs.msdn.com/giuseppeguerrasio/archive/2007/08/10/business-data-catalog-e-smart-tags-per-comporre-i-dati-delle-applicazioni-lob-con-il-portale-e-con-office-client.aspx"&gt;BDC (Business Data Catalog)&lt;/A&gt; , alle nuove componenti di Workflow ed al loro utilizzo nell’integrazione con le nostre soluzioni applicative, fino ad arrivare allo sviluppo per le componenti client ( Office Add-in , Task Pane , Ribbons, etc). Verranno inoltre illustrati anche specifici scenari implementativi tratti dalle &lt;A title="reference application OBA:Load Originator" href="http://msdn2.microsoft.com/en-us/architecture/bb265266.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/architecture/bb265266.aspx"&gt;reference application OBA&lt;/A&gt; . &lt;/P&gt;
&lt;P&gt;L’evento è in Inglese e sarà disponibile la traduzione simultanea. Per &lt;A href="http://www.microsoft.com/italy/msdn/risorsemsdn/eventi/oba.mspx" mce_href="http://www.microsoft.com/italy/msdn/risorsemsdn/eventi/oba.mspx"&gt;iscriversi click qui &lt;/A&gt;. Speaker dell’evento &lt;A href="http://www.kudzuworld.com/Mail.DE.aspx" mce_href="http://www.kudzuworld.com/Mail.DE.aspx"&gt;Chad Z. Hower a.k.a. "Kudzu"&lt;/A&gt; . &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Agenda dell’evento&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;10.15 – 10.30&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;WELCOME Italian Team&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;10.30 – 11.30&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Keynote: The Office Platform Value Propos&lt;/B&gt;&lt;B&gt;ition &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Understand how your processes can become People-Ready and bridge your line of business applications to superior Office user experiences. See how Office can be a key component in your SOA and more importantly leverage the fundamental shift to combining software with services. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;11.30 – 12.30&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;High Level Architectural Elements of the Office Technical Platform &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Learn about the architectural elements of the Office Technical Platform. Discover how these elements can be applied for Contextual Document Management, On-Demand Business Intelligence, Ad-Hoc People Collaboration and Visible Business Processes. Reinforce your understanding through architectural case studies. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;12.30 – 13.30&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Lunch break&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;13.30 – 15.30&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Lap around the Architectural Elements of the Office Technical Platform &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The Technical Presentation Tier &lt;/P&gt;
&lt;P&gt;Start by building applications using Office 2007 Client Architecture (Task Panes, Ribbons, etc.) and then put together composite portal applications which take advantage of hosted applications and services (Excel and InfoPath Forms). &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Productivity Tier &lt;/P&gt;
&lt;P&gt;Organize information with document libraries, forms libraries and lists. Manage information and performance with KPIs, Metrics, Reports, and Dashboards (Performance Point). &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Application Tier &lt;/P&gt;
&lt;P&gt;Architect a reusable service oriented Application Tier. Implement your business process through human workflows and Process Orchestrations. Unify your business through a Business Data Catalog. Then share Spreadsheets in the Server. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additional Services &lt;/P&gt;
&lt;P&gt;Search for business data using Enterprise Search. Ensure integrity by architecting for Security. Take SharePoint sites beyond the Intranet (extranet, internet sites). Provide for flexible workgroup collaboration with Groove. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;15.30 – 15.45&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Coffee Break&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;15.45 – 16.45&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Detailed End-to-End Vertical Solution Scenarios&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;Learn about the reference application packs for Loan Origination and Supply Chain Management Scenarios.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7026046" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Office/default.aspx">Office</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Digital Identity per applicazioni .NET</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/01/04/digital-identity-per-applicazioni-net.aspx</link><pubDate>Fri, 04 Jan 2008 12:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6966529</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/6966529.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=6966529</wfw:commentRss><description>&lt;P&gt;Uno degli aspetti più delicati nell'integrazione dei servizi con le applicazioni che sviluppiamo localmente al nostro PC o alla nostra Intranet è rappresentato dagli aspetti relativi alla sicurezza. &lt;A href="http://msdn2.microsoft.com/en-us/library/bb882216.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb882216.aspx"&gt;Questo interessante articolo di David Chappel&lt;/A&gt; ci illustra lo stato dell'arte delle tecnologie Microsoft per gestire gli aspetti reletivi all'autenticazione ed alla rappresentazione dell'identità digitale all'interno delle nostre applicazioni. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6966529" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Pubblicato il codice sorgente di Tafiti ottimo esempio di utilizzo di Silverlight e Windows Live</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2007/12/20/pubblicato-il-codice-sorgente-di-tafiti-ottimo-esempio-di-utilizzo-di-silverlight-e-windows-live.aspx</link><pubDate>Thu, 20 Dec 2007 11:34:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6814713</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/6814713.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=6814713</wfw:commentRss><description>&lt;p&gt;&lt;img alt="Tafiti Search Visualization.png" src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=WLQuickApps&amp;amp;DownloadId=23983" align="right"&gt;&lt;/p&gt; &lt;p&gt;Per chi non l'avesse ancora visto sul sito delle &lt;a href="http://www.codeplex.com/WLQuickApps" target="_blank"&gt;Windows Live Quick Apps&lt;/a&gt; è stato rilasciato il codice sorgente di Tafiti, ottimo esempio di Silverlight e dell'utilizzo delle API web service di Windows Live. Sul sito&amp;nbsp;dedicato&amp;nbsp;a &lt;a href="http://tafiti.mslivelabs.com/" target="_blank"&gt;tafiti da ms live labs&lt;/a&gt;&amp;nbsp; potete scaricare il codice sorgente.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6814713" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category></item></channel></rss>