<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/css" href="http://www.snello.it/Data/style/rss1.css" ?> <?xml-stylesheet type="text/xsl" href="http://www.snello.it/Data/xsl/rss1.xsl" ?>
<!--RSS generated by mojoPortal Blog Module V 1.0 on Wednesday, February 22, 2012-->
<rss version="2.0">
  <channel>
    <title>Walter's Blog</title>
    <link>http://www.snello.it/home.aspx</link>
    <description />
    <copyright />
    <ttl>120</ttl>
    <managingEditor>walterf@nospamsnello.it</managingEditor>
    <generator>mojoPortal Blog Module V 1.0</generator>
    <item>
      <title>Silverlight and Sharepoint 2010 a step forward</title>
      <link>http://www.snello.it/silverlight-and-sharepoint-2010-a-step-forward.aspx</link>
      <pubDate>Mon, 01 Nov 2010 21:21:00 GMT</pubDate>
      <guid>http://www.snello.it/silverlight-and-sharepoint-2010-a-step-forward.aspx</guid>
      <comments>http://www.snello.it/silverlight-and-sharepoint-2010-a-step-forward.aspx</comments>
      <description><![CDATA[<p>My 2<sup>nd</sup> article on the winning pair has been published on SilverlightShow. I think, and I hope, it is quite interesting because it shows how to use the Silverlight Client Object Model and some other things. In summary what you will find is:</p>  <ul>   <li>query the Sharepoint object using the Silverlight Client Object model</li>    <li>fill a DataGrid with the List and Libraries of a Sharepoint site</li>    <li>drag &amp; drop of one or more files from the file system into the Datagrid</li>    <li>upload of one or more files in the Sharepoint List corresponding to the DataGrid row selected when those files were dragged</li>    <li>another method to insert the Silverlight application in Sharepoint page</li>    <li>pass parameters from the host Sharepoint web part to the Silverlight application</li> </ul>  <p>You can read my article <a href="http://www.silverlightshow.net/items/Silverlight-and-Sharepoint-2010-a-step-forward-how-to-build-a-small-Silverlight-4-utility-to-upload-files-in-a-List-or-Library-of-Sharepoint.aspx" target="_blank">here</a> and watch this <a href="http://www.silverlightshow.net/shows/Silverlight-and-Sharepoint-2010-a-step-forward.aspx" target="_blank">video</a> where I create the application which performs the tasks above. </p>  <p>By the way, <a href="http://www.snello.it/Samples/downloads/SLFileUpload.zip" target="_blank">here</a> you can download the source code.</p>  <p><a href="http://www.snello.it/Data/Sites/1/Windows-Live-Writer/76ba08427ead_13960/HomePage_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="HomePage" border="0" alt="HomePage" src="http://www.snello.it/Data/Sites/1/Windows-Live-Writer/76ba08427ead_13960/HomePage_thumb.png" width="244" height="172" /></a></p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/silverlight-and-sharepoint-2010-a-step-forward.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>Silverlight and Sharepoint 2010: Getting Started</title>
      <link>http://www.snello.it/silverlight-and-sharepoint-2010-getting-started.aspx</link>
      <pubDate>Mon, 18 Oct 2010 09:25:00 GMT</pubDate>
      <guid>http://www.snello.it/silverlight-and-sharepoint-2010-getting-started.aspx</guid>
      <comments>http://www.snello.it/silverlight-and-sharepoint-2010-getting-started.aspx</comments>
      <description><![CDATA[<p>Today my first article on <a href="http://www.silverlightshow.net/items/Silverlight-and-Sharepoint-2010-getting-started.aspx" target="_blank">Silverlight and Sharepoint 2010</a> has been published on SilverlightShow. </p>
<p>In this article the reader takes the first steps in the use of Silverlight applications in SharePoint sites. He can see how to set up a development environment with Sharepoint Foundation and Visual Studio and how to use three different ways to add a Silverlight application to a web page of a Sharepoint site.</p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/silverlight-and-sharepoint-2010-getting-started.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>ContextMenu: every thing you always wanted to know about context menu but were afraid to ask </title>
      <link>http://www.snello.it/contextmenu-every-thing-you-always-wanted-to-know-about-context-menu-but-were-afraid-to-ask-.aspx</link>
      <pubDate>Thu, 06 May 2010 19:49:13 GMT</pubDate>
      <guid>http://www.snello.it/contextmenu-every-thing-you-always-wanted-to-know-about-context-menu-but-were-afraid-to-ask-.aspx</guid>
      <comments>http://www.snello.it/contextmenu-every-thing-you-always-wanted-to-know-about-context-menu-but-were-afraid-to-ask-.aspx</comments>
      <description><![CDATA[<p>One of the Xmas gifts of Silverlight 4 was the right mouse click support. Furthermore, we know that the April 2010 Silverlight toolkit release comes with a ContextMenu Control to be used in combination with the right click.  In my <a href="http://www.silverlightshow.net/items/Anatomy-of-the-ContextMenu-how-it-is-made-how-to-use-it-and-how-to-abuse-it.aspx">article</a> on SilverlightShow I explain how to create and use the ContextMenu.</p>
<p><br />SilverlightShow.net: <a href="http://www.silverlightshow.net/items/Anatomy-of-the-ContextMenu-how-it-is-made-how-to-use-it-and-how-to-abuse-it.aspx" target="_blank">Anatomy of the ContextMenu: how it is made, how to use it and how to abuse it</a></p>
<p>Source code: download <a href=" In this article we will see how to create and use a ContextMenu, how it is made and then we will extend it in a peculiar way.">here</a></p>
<p><img src="http://www.snello.it/Data/Sites/1/snello/2010/contextmenu8.jpg" alt="" width="300" height="150" /></p>
<p> </p>
<p> </p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/contextmenu-every-thing-you-always-wanted-to-know-about-context-menu-but-were-afraid-to-ask-.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>Aggiungere un profilo altimetrico alle Bing Maps</title>
      <link>http://www.snello.it/aggiungere-un-profilo-altimetrico-alle-bing-maps.aspx</link>
      <pubDate>Fri, 19 Mar 2010 19:13:47 GMT</pubDate>
      <guid>http://www.snello.it/aggiungere-un-profilo-altimetrico-alle-bing-maps.aspx</guid>
      <comments>http://www.snello.it/aggiungere-un-profilo-altimetrico-alle-bing-maps.aspx</comments>
      <description><![CDATA[<p><br />Recentemente ho giocato un pò con il <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=beb29d27-6f0c-494f-b028-1e0e3187e830" target="_blank">Silverlight Bing Maps Control</a> per vedere un pò cosa si potesse fare. In particolare mi interessava creare un profilo altimetrico di un percorso dati 2 o più punti o disegnato a mano libera.<br />Volevo scoprire se vi era modo di risalire facilmente alla quota di un punto date le sue coordinate geografiche (latitudine e longitudine). Sfortunatamente ho presto scoperto che tale informazione non veniva messa a disposizione pur esistendo all'interno del namespace <em>Microsoft.Maps.MapControl</em>, la classe <em>Location</em> (rappresentante una posizione geografica) e la relativa la property <em>Altitude</em>. Purtroppo tale property ritorna sempre zero e una veloce ricerca su msdn mi ha confermato essere riservata per usi futuri.</p>
<p><br />Scavando, scavando ho infine trovato una soluzione abbastanza carina. Divertitevi con questa <a href="http://www.snello.it/samples/SurfaceProfile/elevationChartTestPage.aspx" target="_blank">DEMO</a> in silverlight 3.<br />Se volete saperne di più leggete i miei 2 articoli su SilverlightShow:<br /><br /><a href="http://www.silverlightshow.net/items/How-to-extend-Bing-Maps-Silverlight-with-an-elevation-profile-graph-ndash-Part-1.aspx" target="_blank">How to extend Bing Maps Silverlight with an elevation profile graph - Part 1</a></p>
<p> <a href="http://www.silverlightshow.net/items/How-to-extend-Bing-Maps-Silverlight-with-an-elevation-profile-graph-ndash-second-part.aspx" target="_blank">How to extend Bing Maps Silverlight with an elevation profile graph - Part 2</a></p>
<p> <img title="UI of the application" src="http://www.snello.it/Data/Sites/2/snello/ui.jpg" alt="UI of the application" width="449" height="351" /></p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/aggiungere-un-profilo-altimetrico-alle-bing-maps.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>Excel file viewer on Channel 9!</title>
      <link>http://www.snello.it/excel-file-viewer-on-channel-9.aspx</link>
      <pubDate>Wed, 03 Feb 2010 17:18:00 GMT</pubDate>
      <guid>http://www.snello.it/excel-file-viewer-on-channel-9.aspx</guid>
      <comments>http://www.snello.it/excel-file-viewer-on-channel-9.aspx</comments>
      <description><![CDATA[<p>Capperi! <img title="Smile" src="http://www.snello.it/ClientScript/tiny_mce327/plugins/emotions/img/smiley-smile.gif" border="0" alt="Smile" /></p>
<p>Il mio articolo "An Excel file viewer in Silverlight 4" è finito su Channel 9:</p>
<p><img src="http://www.snello.it/Data/Sites/1/snello/2010/channel9.jpg" alt="" /></p>
<p>Questa settimana infatti è stato incluso fra le "week's top developer news" che potete trovare a questo <a href="http://channel9.msdn.com/shows/This%20Week%20On%20Channel%209/TWC9-Silverlight-4-Win-7-Driving-Editable-MVC-Routes-F-Missile-Launcher/#Page=1">link</a>.</p>
<p>Devo andare a festeggiare: polenta e coniglio a piene mani <img title="Laughing" src="http://www.snello.it/ClientScript/tiny_mce327/plugins/emotions/img/smiley-laughing.gif" border="0" alt="Laughing" /></p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/excel-file-viewer-on-channel-9.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>Un Viewer di file Excel in silverlight 4</title>
      <link>http://www.snello.it/un-viewer-di-file-excel-in-silverlight-4.aspx</link>
      <pubDate>Tue, 26 Jan 2010 10:16:56 GMT</pubDate>
      <guid>http://www.snello.it/un-viewer-di-file-excel-in-silverlight-4.aspx</guid>
      <comments>http://www.snello.it/un-viewer-di-file-excel-in-silverlight-4.aspx</comments>
      <description><![CDATA[<p>Durante le ultime vacanze natalizie mi sono messo a giochicchiare un pò con alcune delle novità di Silverlight 4. Mi sono detto: ma perchè non proviamo a fare un visualizzatore di file Excel? Così giusto per fare pratica sul campo?</p>
<p>La cosa è diventata ben presto piuttosto intrigante ed anche piuttosto impegnativa per il sottoscritto devo ammettere. <br />Ad ogni modo, alla fine sono riuscito ad arrivare a un qualcosa di presentabile e ne ho tratto un articolo in inglese che mi è stato pubblicato su <a href="http://www.silverlightshow.net" target="_blank">Silverlightshow.net</a> :</p>
<p>Articolo: <a href="http://www.silverlightshow.net/items/An-Excel-file-Viewer-in-Silverlight-4.aspx" target="_blank">An Excel file viewer in silverlight 4</a></p>
<p>Application: <a href="http://www.snello.it/Samples/ExcelViewer/ExcelViewer.html" target="_blank">Excel file viewer</a></p>
<p>Demo movie:</p>
<p>
<object width="400" height="300" data="http://vimeo.com/moogaloop.swf?clip_id=8907257&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash">
<param name="data" value="http://vimeo.com/moogaloop.swf?clip_id=8907257&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8907257&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" />
</object>
</p>
<p>Sources: <a href="http://www.snello.it/samples/ExcelViewer/Excel_viewer.zip" target="_blank">ExcelViewer.zip</a></p>
<p> </p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/un-viewer-di-file-excel-in-silverlight-4.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>Un mio articolo su silverlightitalia.com</title>
      <link>http://www.snello.it/un-mio-articolo-su-silverlightitaliacom.aspx</link>
      <pubDate>Fri, 22 Jan 2010 16:35:35 GMT</pubDate>
      <guid>http://www.snello.it/un-mio-articolo-su-silverlightitaliacom.aspx</guid>
      <comments>http://www.snello.it/un-mio-articolo-su-silverlightitaliacom.aspx</comments>
      <description><![CDATA[<p>Segnalo con estremo piacere che <a href="http://www.silverlightitalia.com ">Silverlightitalia.com </a>ha pubblicato un mio articolo riguardante una personalizzazione del controllo Chart.</p>
<p><img src="http://www.snello.it/Data/Sites/1/snello/2010/interactchartsmall.jpg" alt="" width="400" height="197" /></p>
<p>Vi rimando al <a href="http://www.silverlightitalia.com/articoli/silverlight/personalizzare-controllo-chart-silverlight-3.0.aspx">link</a> dell'articolo per tutti i dettagli.</p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/un-mio-articolo-su-silverlightitaliacom.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>RIA Services, Entity Framework 1.0 e Stored Procedures con parametri: come le mappo?</title>
      <link>http://www.snello.it/ria-services-entity-framework-10-e-stored-procedures-con-parametri-come-le-mappo.aspx</link>
      <pubDate>Sat, 21 Nov 2009 20:03:12 GMT</pubDate>
      <guid>http://www.snello.it/ria-services-entity-framework-10-e-stored-procedures-con-parametri-come-le-mappo.aspx</guid>
      <comments>http://www.snello.it/ria-services-entity-framework-10-e-stored-procedures-con-parametri-come-le-mappo.aspx</comments>
      <description><![CDATA[<p>Recentemente mi è capitato di usare i RIA Services poggiandomi su un DB MySql che conteneva alcune semplici Stored Procedures. Una di esse però richiedeva un paio di parametri in ingresso, un tipo INT e un tipo DATA.<br />Con VS 2008 SP1 mi sono costruito velocemente il mio Entity Model mappando le tabelle che mi interessavano, ma giunto al punto di mappare le Stored Procedures mi sono reso conto che l'IDE non mi dava la possibilità di impostare i parametri in ingresso alleStored Procedures; la finestra"Model Browser" infatti, permette sì di mappare le Stored Procedures tramite la comoda opzione "Create Function Import", ma solo quelle senza parametri in ingresso, mentre per le altre... attendere VS 2010 ed Entity Framework 4.0 mi dicono dalla regia.<br />Nel frattempo qualcosa bisognerà pur fare mi sono detto ed allora scavando scavando ho individuato una serie di passi da compiere per avere la tanto agognata SP con parametri correttamente mappata nell'EntityModel e richiamabile dal client Silverlight.
<p> <strong>1) Importare la SP con parametri nell'Entity Model:</strong></p>
</p>
<p>
<p>  Come se nulla fosse usiamo la "Create Function Import", non importa se non ci lascia mappare i parametri in ingresso:<br /><img src="http://www.snello.it/Data/Sites/1/snello/2009/FunctionImport.jpg" alt="Stored Procedure mapping" width="267" height="331" /></p>
</p>
<p>
<p> L'importante però è che il risultato venga mappato su una Entity che abbiamo già definito in precedenza:<br /><img src="http://www.snello.it/Data/Sites/1/snello/2009/FunctionImportEntityMap.jpg" alt="Stored Procedure Return mapping" width="390" height="280" /> </p>
</p>
<p>
<p> <br /><strong>2) Aprire il file &lt;myEntityModel&gt;.designer.cs e copiare... <br /></strong>Si, proprio così aprite il codice designer del vostro EM e copiatene il contenuto in un nuovo file .cs che chiamerete come volete. In questo nuovo file appena creato cancellate tutto tranne la partial class e i suoi costruttori e la funzione mappata sulla SP che l'IDE ha costruito per voi incurante dei parametri in ingresso. Ecco come appare la funzione nel mio esempio prima di metterci mano:</p>
</p>
<pre style="text-align: left;">  public global::System.Data.Objects.ObjectResult&lt;bt_trainings&gt; GetTrainingUserDate() {</pre>
<pre style="text-align: left;">      return base.ExecuteFunction&lt;bt_trainings&gt;("GetTrainingUserDate");<br />}</pre>
<p>
<p><strong>3) Modificare la funzione mappata appena copiata nel nuovo file</strong> <br /> Aggiungiamo i nostri parametri come nel mio esempio, facendo attenzione ad usare lo stesso nome di parametro usato per la stored procedure:</p>
</p>
<pre> public global::System.Data.Objects.ObjectResult&lt;bt_trainings&gt; GetTrainingUserDate(int IDUser, DateTime dt){</pre>
<pre>      ObjectParameter param1 = new ObjectParameter("iuser", IDUser);<br />      ObjectParameter param2 = new ObjectParameter("training_date", IDUser);</pre>
<pre>      ObjectParameter[] parameters = new ObjectParameter[] { param1, param2 };</pre>
<pre>      return base.ExecuteFunction&lt;bt_trainings&gt;("GetTrainingUserDate");<br />}</pre>
<p>
<p><strong>4) Modificare il DomainService di conseguenza</strong></p>
</p>
<p>
<p>Abbiamo creato il nostro EM, abbiamo poi aggiunto una partial class copiandone la struttura dal code designer.cs generato dal compilatore e abbiamo modificato la funzione mappata affinchè accolga i parametri. Ora siamo pronti per generare il Domain Service, scegliendo da "Add/New Item" la categoria "Web" e il template "Domain Service Class".<br />Il file generato conterrà tutto quello che serve al client Silverlight per aggiungere, aggiornare o cancellare dati dal database ma niente che riguardi, ahimè, la Stored Procedure di cui sopra. Niente paura, basta aggiungerla come nell'esempio seguente:</p>
</p>
<pre>public IEnumerable&lt;bt_trainings&gt; GetTrainingUserDate(int IDUser, DateTime dt) {</pre>
<pre>    ObjectResult objRes = myContextSP.GetTrainingUserDate(IDUser, dt);<br />    return (IEnumerable&lt;bt_trainings&gt;)myContextSP.GeTrainingsFromUser(IDUser);<br />}</pre>
<p>
<p>dove myContextSP è un'istanza della partial class che mi sono creato al punto 2.</p>
</p>
<p>
<p><strong>5) Richiamare la funzione mappata nel client Silverlight<br /></strong> Siamo quasi arrivati; istanziamo il nostro Domain context, associamo un'entity (dello stesso tipo ritornato dalla nostra Stor Procedure con parametri) alla DataGrid che avremo inserito nella pagina. Carichiamo i dati richismando la funzione mappata sulla Stored Procedure ed il gioco è fatto! </p>
</p>
<pre>MyDomainContext myData = new MyDomainContext();</pre>
<pre>this.dataGrid1.ItemsSource = myData.bt_trainings;</pre>
<pre> DateTime dt = new DateTime(2009,02,01);</pre>
<pre> myData.Load(myData.GetTrainingUserDateQuery(1,dt));</pre>
<p>
<p> </p>
</p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/ria-services-entity-framework-10-e-stored-procedures-con-parametri-come-le-mappo.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>SlideShow Album Manager: PARTE 3 - l'assemblaggio</title>
      <link>http://www.snello.it/slideshow-album-manager-parte-3-lassemblaggio.aspx</link>
      <pubDate>Sun, 25 Oct 2009 08:58:11 GMT</pubDate>
      <guid>http://www.snello.it/slideshow-album-manager-parte-3-lassemblaggio.aspx</guid>
      <comments>http://www.snello.it/slideshow-album-manager-parte-3-lassemblaggio.aspx</comments>
      <description><![CDATA[<h6><a href="http://www.snello.it/slideshow-album-manager-parte-1-lo-schema-generale.aspx">PARTE 1</a> | <a href="http://www.snello.it/1slideshow-album-manager-parte-2-i-componenti-utilizzati.aspx">PARTE 2</a> | PARTE 3</h6>
<p>Dopo aver definito nel <a href="http://www.snello.it/slideshow-album-manager-parte-1-lo-schema-generale.aspx">primo articolo</a> cosa volevo fare e descritti nel <a href="http://www.snello.it/1slideshow-album-manager-parte-2-i-componenti-utilizzati.aspx">secondo articolo</a> i principali componenti che volevo utilizzare ho fatto il punto della situazione sulle principali problematiche che avrei dovuto affrontare:</p>
<ol>
<li>Come faccio a scaricare il file xml di configurazione all'avvio?</li>
<li>Come faccio a parsificare il file di configurazione?</li>
<li>Come collego i dati contenuti nel file di configurazione alla mia AgDataGrid?</li>
<li>Come faccio ad uploadare le immagini sul server e averne notifica nell'applicazione Silverlight sul client?</li>
<li>Come faccio ad aggiornare il file di configurazione sul server?</li>
</ol>
<p> Di seguito come ho pensato di risolverle.</p>
<p><strong> 1. scaricare il file xml di configurazione all'avvio<br /></strong>Prima di tutto ho inserito il nome del file fra i parametri iniziali dell'applicativo xap e ho sfruttato la classe WebClient aggiunta in Silverlight 3 per il download dello stesso. A ricezione avvenuta lo salvo in un IsolatedStorageFile per la successiva lettura altrimenti se il file non esiste la AgDataGrid rimane vuota e l'utente può solo inserire un nuovo album.</p>
<p><strong>2. parsificare il file di configurazione in xml<br /></strong>Qui ho sfruttato la class XDocument di System.Xml.Linq per travasare il contenuto del file xml nei miei oggetti Album e slide. Di seguito la funzione che mette in pratica la cosa.</p>
<p><img src="http://www.snello.it/Data/Sites/1/snello/xmlparsification.jpg" alt="Xml file parsing" width="899" height="402" /></p>
<p> Confesso di aver litigato un pò con la sintassi Linq prima di riuscire a fare una select dentro l'altra...</p>
<p><strong>3. collegare i dati contenuti nel file di configurazione alla mia AgDataGrid<br /></strong>Dopo essermi creato la List&lt;Album&gt; come mostrato nel passo precedente, ho assegnato la stessa alla property "DataSource" dell'AgDataGrid. Per aggiornare le modifiche fatte nei campi editabili dall'utente della AgDataGrid non ho trovato niente di meglio da fare che gestire l'evento <em>myControl_TextChanged</em> di ogni TextBox e aggiornare di conseguenza la List&lt;Album&gt;.</p>
<p><strong>4. uploadare le immagini sul server e ricevere notifica nell'applicazione Silverlight sul client</strong><br />In questo caso ho dovuto fare una serie di modifiche all'applicazione Silverlight File Upload. Innanzitutto ho fatto in modo che il controllo server creasse la directory con il nome dell'album prima di uploadare le immagini. Poi per dare la notifica al client ho invocato dal controllo Server una funzione Javascript della pagina, la quale a sua volta richiama un metodo della applicazione Silverlight trasferendo ad ogni passaggio intermedio la lista dei files effettivamente caricati.</p>
<p><img src="http://www.snello.it/Data/Sites/1/snello/invocationsilverlight.jpg" alt="" width="1076" height="732" /></p>
<p><strong>5. aggiornare il file di configurazione sul server</strong><br />Dal codice di Silverlight File Upload ho estratto la parte dedicata al mero caricamento dei files creando una classe <em>SimpleUpload</em> semplificata. Questa classe in pratica lancia una HttpWebRequest asincrona e tramite callbacks gestisce il passaggio dello stream e la notifica del termine delle operazioni. Lo stream viene creato a partire dal file di configurazione xml precedentemente aggiornato e salvato in IsolatedStorageFile come nella porzione di codice seguente.</p>
<p> <img src="http://www.snello.it/Data/Sites/1/snello/uploadxmldoc.jpg" alt="Upload xml file" width="907" height="514" /></p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/slideshow-album-manager-parte-3-lassemblaggio.aspx'>...</a>]]></description>
    </item>
    <item>
      <title>SlideShow Album Manager: PARTE 2 - i componenti utilizzati</title>
      <link>http://www.snello.it/1slideshow-album-manager-parte-2-i-componenti-utilizzati.aspx</link>
      <pubDate>Fri, 23 Oct 2009 16:42:38 GMT</pubDate>
      <guid>http://www.snello.it/1slideshow-album-manager-parte-2-i-componenti-utilizzati.aspx</guid>
      <comments>http://www.snello.it/1slideshow-album-manager-parte-2-i-componenti-utilizzati.aspx</comments>
      <description><![CDATA[<h6><a href="http://www.snello.it/slideshow-album-manager-parte-1-lo-schema-generale.aspx">PARTE 1</a> | PARTE 2 | <a href="http://www.snello.it/slideshow-album-manager-parte-3-lassemblaggio.aspx">PARTE 3</a></h6>
<p>Definito nel precedente <a href="http://www.snello.it/slideshow-album-manager-parte-1-lo-schema-generale.aspx">post</a> cosa volevo fare, mi sono guardato in giro in cerca di qualche componente già pronto, ovviamente open source, che mi potesse aiutare.<br />La scelta è caduta sui seguenti:</p>
<ol>
<li><a href="http://www.devexpress.com/Products/NET/Controls/Silverlight/Grid/" target="_blank">DevExpress AgDataGrid</a></li>
<br /> <br />
<li><a href="http://www.codeplex.com/SilverlightFileUpld" target="_blank">Silverlight File Upload</a></li>
</ol>
<p> AgDataGrid è un'accattivante DataGrid control per Silverlight abbastanza ben customizzabile come si può vedere dalla figura seguente dove una riga della grid è stata trasformata in una anteprima.</p>
<p><img title="AgDataGrid with preview" src="http://www.snello.it/Data/Sites/1/snello/agdatagrid.jpg" alt="AgDataGrid with preview" width="550" height="379" /></p>
<p>AgDataGrid è collegabile tramite la proprietà DataSource a una collezione qualsiasi che implementi una interfaccia IList o IEnumerable. <br />Ho deciso quindi di usarla come interfaccia principale della mia applicazione usando una List di oggetti Album.</p>
<p>A questo punto mi serviva qualcosa che consentisse all'utente di uploadare le proprie immagini con semplicità e <a href="http://www.codeplex.com/SilverlightFileUpld" target="_blank">Silverlight File Upload</a> faceva al caso mio. Dotato di una interfaccia semplice e intuitiva consente l'upload multiplo con l'indicazione dello stato di avanzamento.</p>
<p><img src="http://www.snello.it/Data/Sites/1/snello/fileupload.jpg" alt="Silverlight File Uploader interface" width="400" height="244" /></p>
<p>Fornito insieme al controllo Server ASP.NET col quale dialoga per l'invio dei files, contiene anche una preview delle immagini che però ho preferito disattivare perchè limitata alle immagini jpg.</p>
<p>  </p><br /><a href='http://www.snello.it'>Wal</a>&nbsp;&nbsp;<a href='http://www.snello.it/1slideshow-album-manager-parte-2-i-componenti-utilizzati.aspx'>...</a>]]></description>
    </item>
  </channel>
</rss>
