<?xml version="1.0" encoding="iso-8859-1" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>PeppeDotNet Blog - Category: Silverlight</title><link>http://www.peppedotnet.it/Blog/Categoria/Silverlight/</link><description>Marchi Giuseppe personal blog</description><dc:language>it-it</dc:language><pubDate>Fri, 22 Oct 2004 00:00:00 GMT</pubDate><lastBuildDate>Sun, 19 May 2013 15:28:48 GMT</lastBuildDate><webMaster>info@peppedotnet.it (Giuseppe Marchi)</webMaster><managingEditor>info@peppedotnet.it (Giuseppe Marchi)</managingEditor><copyright>PeppeDotNet 2004/06</copyright><generator>dotRss 0.9.3.28434 Beta2 - http://www.peppedotnet.it/Projects/dotRSS.aspx</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><category>.NET and Sharepoint programming</category><ttl>60</ttl><image><title>PeppeDotNet</title><url>http://www.peppedotnet.it/img/logo.gif</url><link>http://www.peppedotnet.it/Blog</link><width>144</width><height>30</height><description>PeppeDotNet.it</description></image><item><title>Annunciata la RTM dei tool di sviluppo per Windows Phone 7</title><link>http://www.peppedotnet.it/Blog/AnnouncedRTMOfDevToolForWindowsPhone7.aspx</link><pubDate>Tue, 24 Aug 2010 11:26:01 GMT</pubDate><description>Direttamente dal &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/23/a-developer-s-roadmap-to-windows-phone-7-launch-timing.aspx" title="A Developers Roadmap to Windows Phone 7 Launch Timing" target="_blank"&gt;blog ufficiale del prodotto&lt;/a&gt;, l'annuncio della data di rilascio dei tool per sviluppare applicazioni Windows Phone 7: il &lt;b&gt;16 settembre 2010&lt;/b&gt; !
&lt;br /&gt;
&lt;br /&gt;A seguito verranno la versione ufficiale dell'SDK e l'apertura del MarketPlace. Tramite il MarketPlace saremo in grado di registrare le nostre applicazioni custom, distribuirle ed aggiornarle.
&lt;br /&gt;
&lt;br /&gt;I primi device dovrebbero uscire poco dopo queste date (verso ottobre/novembre), giusto per dare il tempo al MarketPlace di riempirsi di roba :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Windows Phone.aspx" title="TAG: Windows Phone"&gt;Windows Phone&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/AnnouncedRTMOfDevToolForWindowsPhone7.aspx#comm</comments><guid>/Blog/AnnouncedRTMOfDevToolForWindowsPhone7.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/495.aspx</trackback:ping></item><item><title>Bug nella chiusura di una Child Window in Silverlight 4</title><link>http://www.peppedotnet.it/Blog/BugOnClosingSilverlight4ChildWindow.aspx</link><pubDate>Thu, 10 Jun 2010 10:19:07 GMT</pubDate><description>Se avete letto il mio articolo su &lt;a href="http://www.silverlightitalia.com/" title="Silverlight Italia" target="_blank"&gt;SilverlightItalia&lt;/a&gt; riguardo la &lt;a href="http://www.silverlightitalia.com/script/84/Finestre-Modali-Silverlight.aspx" title="Finestre modali in Silverlight" target="_blank"&gt;creazione di finestre modali&lt;/a&gt; in Silverlight utilizzando le Child Windows, potete essere facilmente incappati in questo bug.
&lt;br /&gt;Il comportamento è il seguente: dopo che è stata effettuata la chiusura di una finestra figlia per la seconda volta, chiusura data dalla chiamata al metodo Close() della finestra, tutto lo user control "chiamante" risulterà disabilitato. Quindi non sarà più possibile effettuare alcun tipo di operazione su di esso.
&lt;br /&gt;Questo comportamento NON si verificava in Silverlight 3, ma si verifica in Silverlight 4.
&lt;br /&gt;
&lt;br /&gt;Per risolvere, basta settare a true la dependency property IsEnabled del controllo padre di tutta la nostra applicazione Silverlight, una volta che la finestra viene chiusa (quindi all'interno dell'handler legato all'evento Closed).
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;childWindow.Closed += (s, args) =&gt; 
&lt;br /&gt;{ 
&lt;br /&gt;   Application.Current.RootVisual.SetValue(Control.IsEnabledProperty, &lt;span style="color: #0000FF"&gt;true&lt;/span&gt;);
&lt;br /&gt;};&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo, il controllo chiamante viene riabilitato e l'utente potrà continuare ad utilizzare l'applicazione liberamente.
&lt;br /&gt;Spero sia utile a qualcuno.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Child Windows.aspx" title="TAG: Child Windows"&gt;Child Windows&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/BugOnClosingSilverlight4ChildWindow.aspx#comm</comments><guid>/Blog/BugOnClosingSilverlight4ChildWindow.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/468.aspx</trackback:ping></item><item><title>Finestre modali in Silverlight</title><link>http://www.peppedotnet.it/Blog/SilverlghtModalWindows.aspx</link><pubDate>Thu, 13 May 2010 20:21:15 GMT</pubDate><description>Oggi è uscito il mio ultimo articolo su Silverlight all'interno di &lt;a href="http://www.silverlightitalia.com/" title="SilverlightItalia.com" target="_blank"&gt;SilverlightItalia.com&lt;/a&gt; !
&lt;br /&gt;Era un pò che l'avevo pensato, ma son riuscito a scriverlo solo in questo mese. L'argomento sono le finestre modali.
&lt;br /&gt;Nella versione 3.0 di Silverlight è stata aggiunta la possibilità di creare finestre figlie dello user control principale, proprio come è sempre stato possibile fare in Windows Form e WPF.
&lt;br /&gt;La differenza è che Silverlight le apre con un'animazione :)
&lt;br /&gt;Scherzi a parte, sono uno strumento sicuramente molto utile per le vostre applicazioni Silverlight. 
&lt;br /&gt;Vi consiglio di leggerlo:
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.silverlightitalia.com/script/84/Finestre-Modali-Silverlight.aspx" title="Finestre modali in Silverlight" target="_blank"&gt;http://www.silverlightitalia.com/script/84/Finestre-Modali-Silverlight.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/SilverlghtModalWindows.aspx#comm</comments><guid>/Blog/SilverlghtModalWindows.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/459.aspx</trackback:ping></item><item><title>Rilasciato Silverlight 4.0 !</title><link>http://www.peppedotnet.it/Blog/Silverlight4Released.aspx</link><pubDate>Fri, 16 Apr 2010 10:58:28 GMT</pubDate><description>&lt;img src="http://www.peppedotnet.it/Images/silverlight.png" alt="" border="0" style="float: right" /&gt;Ieri, è stato rilasciato ufficialmente &lt;a href="http://www.silverlight.net/" title="Silverlight 4.0" target="_blank"&gt;Silverlight 4.0&lt;/a&gt; !
&lt;br /&gt;A dir la verità, l'annuncio era stato dato da &lt;a href="http://weblogs.asp.net/scottgu/" title="Scotto Guthrie" target="_blank"&gt;Scott Guthrie&lt;/a&gt; durante la keynote di martedì della ASP.NET &amp; Silverlight conference tenutasi a Las Vegas. Ma tutti i vari download sono disponibili solo da ieri.
&lt;br /&gt;Il plugin è in versione definitiva. I tool di sviluppo e Blend 4 sono ancora in Release Candidate.
&lt;br /&gt;Ecco tutti i riferimenti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.silverlight.net/" title="Silverlight 4 plugin" target="_blank"&gt;Silverlight 4 plugin (dal sito silverlight.net)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.microsoft.com/download/5/B/4/5B46BF8A-9350-49D5-B1E7-7789818FBF41/Silverlight4_Tools.exe" title="Silverlight 4 Tools RC per Visual Studio 2010 RTM" target="_blank"&gt;Silverlight 4 Tools RC per Visual Studio 2010 RTM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=88484825-1b3c-4e8c-8b14-b05d025e1541" title="Expression Blend 4 RC" target="_blank"&gt;Expression Blend 4 RC&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;L'unica cosa che non è pronta ancora, sono i tool per lo sviluppo su Windows Phone 7, che rimangono compatibili solo con la RC di Visual Studio 2010 e non con la &lt;a href="http://www.peppedotnet.it/Blog/VisualStudio2010RTMOnMSDNSubscription.aspx" title="Visual Studio 2010 RTM" target="_blank"&gt;RTM&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;Vi ricordo che trovate un articolo completo di tutte le nuove feature di Silverlight 4, su SilverlightItalia.com a questo indirizzo:
&lt;br /&gt;&lt;a href="http://www.silverlightitalia.com/articoli/silverlight/novita-silverlight-4.0.aspx" title="Le novità di Silverlight 4.0 su SiverlightItalia.com" target="_blank"&gt;http://www.silverlightitalia.com/articoli/silverlight/novita-silverlight-4.0.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 2010.aspx" title="TAG: Visual Studio 2010"&gt;Visual Studio 2010&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/Silverlight4Released.aspx#comm</comments><guid>/Blog/Silverlight4Released.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/449.aspx</trackback:ping></item><item><title>Silverlight colors - La gestione dei colori in Silverlight 3.0</title><link>http://www.peppedotnet.it/Blog/SilverlightColors.aspx</link><pubDate>Fri, 11 Sep 2009 10:37:26 GMT</pubDate><description>L'utilizzo dei colori in Silverlight 3.0 solitamente viene effettuato direttamente all'interno del file .xaml soprattutto grazie alla presenza dell'intellisense, che permette la scelta del friendly name proprio di ogni colore disponibile, all'interno delle proprietà di tipo Color degli elementi visivi facenti parte della nostra applicazione.
&lt;br /&gt;Ogni colore ha il suo nome e il relativo codice esadecimale, proprio come nell'html. In questa tabella potete trovare l'elenco completo dei colori disponibili:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://i.msdn.microsoft.com/ms635533.JOLT_local_-485375713_art_color_table(en-us,VS.95).png" alt="Silverlight colors" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Lato codice però, non abbiamo la stessa facilità di scelta.
&lt;br /&gt;Questo perchè la classe Color ha solamente un costruttore di default, senza parametri. Il che significa che volendo utilizzare semplicemente quest'ultima, dobbiamo poi far uso delle proprietà A, R, G e B.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Color c = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; Color();
&lt;br /&gt;c.A = 255; c.R = 0; c.G = 0; c.B = 0;
&lt;br /&gt;SolidColorBrush brush = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SolidColorBrush(c);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Come potete vedere risulta abbastanza scomodo. A fronte di tale mancanza però, hanno inserito la classe Colors, che permette di istanziare un colore a partire da un insieme predefinito di colori di base.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Color c = Colors.Black;
&lt;br /&gt;SolidColorBrush brush = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SolidColorBrush(c);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Il fatto è che tale insieme è composto solamente da pochi colori, però per le attività più veloci risulta un'ottima soluzione.
&lt;br /&gt;Lo stesso meccanismo vale anche per la classe SystemColors, che contiene un piccolo elenco di colori legati al sistema operativo.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Color c = SystemColors.ControlColor;
&lt;br /&gt;SolidColorBrush brush = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SolidColorBrush(c);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Un'altra possibilità che abbiamo, invece, per istanziare un nuovo colore è quella di utilizzare il metodo FromARGB() proprio sempre della classe Color, passando rispettivamente il valore per il canale alpha, il valore per il rosso, per il verde e per il blu.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Color c = Color.FromArgb(255, 255, 255, 255);
&lt;br /&gt;SolidColorBrush brush = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SolidColorBrush(c);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Anche questa però risulta parecchio scomoda, in quanto dobbiamo sapere sempre i valori da dare alle proprietà R, G e B per la costruzione del colore di cui necessitiamo.
&lt;br /&gt;Per quanto riguarda invece la creazione di una nuova istanza della classe Color a partire da un colore espresso in forma esadecimale, purtroppo Silverlight non ha la classe ColorTranslator del .NET Framework, presente all'interno delle sue librerie, ma nulla ci vieta di creare un piccolo metodo che permetta di convertire i valori esadecimali in byte.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;public&lt;/span&gt; &lt;span style="color: #0000FF"&gt;static&lt;/span&gt; Color GetColorFromHexadeciaml(&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; color)
&lt;br /&gt;{
&lt;br /&gt;        Color.FromArgb(
&lt;br /&gt;            Convert.ToByte(color.Substring(1, 2), 16),
&lt;br /&gt;            Convert.ToByte(color.Substring(3, 2), 16),
&lt;br /&gt;            Convert.ToByte(color.Substring(5, 2), 16),
&lt;br /&gt;            Convert.ToByte(color.Substring(7, 2), 16)
&lt;br /&gt;        );
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Se invece, siamo così pigri da voler creare dei colori lato codice, utilizzando il relativo firendly name, possiamo utilizzare un trucco abbastanza carino, di cui però non garantisco per quanto riguarda le performance in caso di utilizzo intensivo.
&lt;br /&gt;Attraverso la classe XamlReader è possibile creare un nuovo oggetto passando in stringa la sintassi che lo rappresenterebbe all'interno di un file .xaml; se quindi, creiamo un elemento di tipo Line e lo coloriamo tramite il colore LightBlue, come se lo stessimo facendo all'interno dell'editor testuale di Visual Studio, siamo poi in grado di recuperare l'istanza della classe Color dalla proprietà Fill, che abbiamo valorizzato all'interno della sintassi XAML.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;private&lt;/span&gt; Color FromKnownColor(&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; colorName)
&lt;br /&gt;{
&lt;br /&gt;    Line line = (Line)XamlReader.Load(&lt;span style="color: #A31515"&gt;"&lt;Line "&lt;/span&gt; +
&lt;br /&gt;        &lt;span style="color: #A31515"&gt;"xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" "&lt;/span&gt; +
&lt;br /&gt;        &lt;span style="color: #A31515"&gt;"xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" "&lt;/span&gt; +
&lt;br /&gt;        &lt;span style="color: #A31515"&gt;"Fill=\""&lt;/span&gt; + colorName + &lt;span style="color: #A31515"&gt;"\" /&gt;"&lt;/span&gt;);
&lt;br /&gt;    &lt;span style="color: #0000FF"&gt;return&lt;/span&gt; (Color)line.Fill.GetValue(SolidColorBrush.ColorProperty);
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;Color c = FromKnownColor(&lt;span style="color: #A31515"&gt;"LightBlue"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Sarete d'accordo con me che, rispetto al resto, questa è la soluzione più comoda per l'utilizzo dei colori tramite i relativi friendly name, lato codice.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight 3.0.aspx" title="TAG: Silverlight 3.0"&gt;Silverlight 3.0&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/SilverlightColors.aspx#comm</comments><guid>/Blog/SilverlightColors.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/391.aspx</trackback:ping></item><item><title>Silverlight Football Manager</title><link>http://www.peppedotnet.it/Blog/SilverlightFootballManager.aspx</link><pubDate>Tue, 18 Aug 2009 10:16:22 GMT</pubDate><description>In questi giorni sto aggiornando un pò il mio vecchio sito del fantacalcio. Ogni anno, in questo periodo, aggiungo qualche cosa qua e la, cercando sempre di utilizzare le ultime tecnologie Microsoft rilasciate.
&lt;br /&gt;Quest'anno, ovviamente, è stato il turno di Siverlight 3.0 !
&lt;br /&gt;Ho scritto quindi un controllo per l'inserimento della formazione, che utilizzo sia per inserire la formazione per la giornata attuale che per modificare e tenere aggiornata la formazione base. Ecco cos'è uscito fuori:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://gosilverlight.org/Home/EntryImage/6" alt="Silverlight Football Manager" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Per vedere il controllo in azione, seguire questo link:
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Silverlight/PeppeDotNet.Silverlight.FootballManager.html" title="Silverlight Football Manager"&gt;http://www.peppedotnet.it/Silverlight/PeppeDotNet.Silverlight.FootballManager.html&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Devo dire che sono molto fiero del risultato ottenuto. Talmente fiero, che ho iscritto il controllo ad un &lt;a href="http://gosilverlight.org/" title="Silverlight Control Builder Contest"&gt;concorso sulla scrittura di controlli in Silverlight&lt;/a&gt;. Come potete vedere, da oggi, il mio controllo è stato accettato tra i candidati (per ora siamo solo in tre): &lt;a href="http://gosilverlight.org/ContestEntries" title="Football Manager Control on Silverlight Control Builder Contest"&gt;http://gosilverlight.org/ContestEntries&lt;/a&gt;.
&lt;br /&gt;Da dopo il 19 settembre sapremo quale sarà il piazzamento del mio controllo.. speriamo bene ! ;)
&lt;br /&gt;
&lt;br /&gt;Ah, dimenticavo, se qualcuno è interessato a vedere la mia applicazione per la gestione di un fanta-campionato, non deve far altro che contattarmi direttamente &lt;a href="mailto:info@peppedotnet.it" title="Scrivimi"&gt;via mail&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight 3.aspx" title="TAG: Silverlight 3"&gt;Silverlight 3&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Fantacalcio.aspx" title="TAG: Fantacalcio"&gt;Fantacalcio&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/SilverlightFootballManager.aspx#comm</comments><guid>/Blog/SilverlightFootballManager.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/389.aspx</trackback:ping></item><item><title>La fine del controllo asp:Silverlight nella versione 3 e gli InitParams</title><link>http://www.peppedotnet.it/Blog/TheEndOfTheControlASPSilverlightInVersion3AndTheInitParams.aspx</link><pubDate>Mon, 17 Aug 2009 11:54:07 GMT</pubDate><description>Nella versione 3.0 di Silverlight, utilizzando quindi i relativi tools per Visual Studio 2008, vi sarete sicuramente accorti che non è più presente il controllo asp:Silverlight all'interno dell'assembly System.Web.Silverlight; la cosa è evidente soprattutto all'interno del template di sito web che viene creato per effettuare il test della propria applicazione Silverlight, in quanto entrambe all'interno delle pagine (.html e .aspx) di test, viene utilizzato sempre il tag "object" e un pò di codice javascript per la gestione degli errori.
&lt;br /&gt;Microsoft garantisce la compatibilità con le versione precedenti, infatti a fronte di applicazioni Silverlight 2.0 è ancora possibile continuare ad utilizzare il controllo senza problemi. Con qualche sforzo, è possibile utilizzare tale controllo anche in un'applicazione Silverlight 3.0, mantenedo però il numero minimo di versione richiesto alla versione 2 e perdendo tutte le novità della tecnologia riguardanti l'accallerazione hardware.
&lt;br /&gt;Il controllo in questione non è più parte della distribuzione ufficiale in quanto ritenuto meno flessibile rispetto all'utilizzo della tecnica del tag object o di quella che vede la scrittura di codice javascript, per l'inizializzazione del controllo Silverlight. Questo secondo approccio, sicuramente, offre un livello di complessità maggiore ma con risultati notevoli, soprattutto per quanto riguarda l'installazione del plug-in.
&lt;br /&gt;
&lt;br /&gt;Personalmente, su tutti i miei progetti Silverlight che man mano migro alla versione 3.0, il punto in cui mi manca maggiormente il controllo asp:Silverlight riguarda i parametri di inizializzazione. Non che questi non possano più essere utilizzati, sia chiaro. Ma perchè ora, attraverso l'utilizzo del tag object, che vede la presenza di parametri di input all'interno di un tag "param":
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="initParams"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="color=Blue"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt; 
&lt;br /&gt;volendo effettuare prima delle computazioni lato server, è necessario utilizzare tecniche differenti per il rendering dei valori all'interno di quel tag param.
&lt;br /&gt;Per esempio, possiamo valorizzare una proprietà o un campo lato server e renderizzarlo in questo modo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="InitParams"&lt;/span&gt; value="&lt;%=InitParams %&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;" /&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;protected&lt;/span&gt; &lt;span style="color: #0000FF"&gt;string&lt;/span&gt; InitParams { get; set; }
&lt;br /&gt;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;public&lt;/span&gt; &lt;span style="color: #0000FF"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: #0000FF"&gt;object&lt;/span&gt; sender, EventArgs e)
&lt;br /&gt;{
&lt;br /&gt;     InitParams = String.Format(&lt;span style="color: #A31515"&gt;"color={0}"&lt;/span&gt;, Request.QueryString[&lt;span style="color: #A31515"&gt;"color"&lt;/span&gt;]);
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;oppure possiamo renderizzare direttamente l'intero tag param, lato server, utilizzando un controllo di tipo Literal:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;div&lt;/span&gt;&lt;span style='color:#FF0000'&gt; id&lt;span style='color:#0000FF'&gt;="silverlightControlHost"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;object&lt;/span&gt;&lt;span style='color:#FF0000'&gt; data&lt;span style='color:#0000FF'&gt;="data:application/x-silverlight-2,"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="application/x-silverlight-2"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;paramname="source"value="ClientBin/PeppeDotNet.Silverlight.xap"/&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;paramname="onError"value="onSilverlightError"/&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;paramname="background"value="white"/&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;paramname="minRuntimeVersion"value="3.0.40624.0"/&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;asp:Literal&lt;/span&gt;&lt;span style='color:#FF0000'&gt; ID&lt;span style='color:#0000FF'&gt;="ParamInitParams"&lt;/span&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;!--&lt;/span&gt;&lt;span style='color:#FF0000'&gt;  ... --&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;object&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;div&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;ParamInitParams.Text = &lt;span style="color: #A31515"&gt;"&lt;param name=\"InitParams\" value=\"color=Red\" /&gt;"&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;oppure, possiamo aggiungere l'attributo id e l'attributo runat="server" all'elemento di tipo param, e gestire il valore dell'attributo "value" lato server, in questo modo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt; name&lt;span style='color:#0000FF'&gt;="initParams"&lt;/span&gt; id&lt;span style='color:#0000FF'&gt;="prmInitParams"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;prmInitParams.Attributes[&lt;span style="color: #A31515"&gt;"value"&lt;/span&gt;] = &lt;span style="color: #A31515"&gt;"color=Yellow"&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;In fin dei conti, l'utilizzo di una metodologia al posto delle altre è una scelta abbastanza personale. L'unica cosa cui dovete tener conto è che gli effettivi parametri che vengono renderizzati all'interno dell'attributo value di un tag param, siccome vanno poi a far parte del codice della pagina, vanno trattati preventivamente attraverso l'utilizzo del metodo HtmlEncode(). Inoltre, va trattato diversamente anche l'utilizzo delle virgole, in quanto queste vengono utilizzate per separare un parametro dall'altro, quindi devono essere sostituite all'interno dei valori dei vari parametri per non causare un malfunzionamento dell'applicazione.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight 3.aspx" title="TAG: Silverlight 3"&gt;Silverlight 3&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/TheEndOfTheControlASPSilverlightInVersion3AndTheInitParams.aspx#comm</comments><guid>/Blog/TheEndOfTheControlASPSilverlightInVersion3AndTheInitParams.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/388.aspx</trackback:ping></item><item><title>Silverlight 3.0 is out !!</title><link>http://www.peppedotnet.it/Blog/Silverlight3.aspx</link><pubDate>Fri, 10 Jul 2009 10:34:47 GMT</pubDate><description>E' uscita oggi la versione 3.0 di Silverlight !!
&lt;br /&gt;A questo indirizzo sono disponibili il runtime e i relativi tool di sviluppo per Visual Studio 2008 SP1:
&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;displaylang=en" title="Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;displaylang=en&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Ricordo anche, che è disponibile una versione valutativa di 60 giorni di Expression Blend 3.0 a questo indirizzo:
&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609" title="Expression Blend 3.0"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Infine, vi consiglio vivamente di leggere lo &lt;a href="http://www.aspitalia.com/focuson/1102/Speciale-Siverlight-3.0-Beta-1-Contatto.aspx" title="speciale Silverlight 3.0 su SilverlightItalia.com"&gt;speciale su Silverlight 3.0&lt;/a&gt; all'interno di &lt;a href="http://www.aspitalia.com/" title="SilverlightItalia.com"&gt;SilverlightItalia.com&lt;/a&gt; !
&lt;br /&gt;Sarà un'estate sicuramente molto calda ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Expression Blend.aspx" title="TAG: Expression Blend"&gt;Expression Blend&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/Silverlight3.aspx#comm</comments><guid>/Blog/Silverlight3.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/384.aspx</trackback:ping></item><item><title>Come richiamare dei metodi C# all'interno di Silverlight, tramite javascript</title><link>http://www.peppedotnet.it/Blog/HowToCallSilverlightMethodsFromJavascript.aspx</link><pubDate>Sat, 25 Apr 2009 17:06:17 GMT</pubDate><description>Le applicazioni Silverlight 2.0 hanno una stretta collaborazione con il browser che le ospita, soprattutto grazie alle classi presenti all'interno del namespace System.Windows.Browser, che appunto permettono l'interazione tra metodi scritti in managed code all'interno dei controlli Silverlight e codice scritto in Javascript presente nella pagine che ospita il controllo.
&lt;br /&gt;Per noi sviluppatori web, in ambito .NET, questa cosa è una vera rivoluzione in quanto siamo sempre stati abituati al concetto che il nostro codice C# o VB.NET venisse eseguito lato server, mentre quello Javascript venisse eseguito esclusivamente lato client; ora invece, essendo Silverlight un plug-in il cui codice quindi eseguito lato client, questo concetto viene totalmente sconvolto.
&lt;br /&gt;Lato managed code, Silverlight offre la classe HtmlPage che permette l'interazione tra Silverlight e la pagina.
&lt;br /&gt;L'interazione contraria, quindi da codice Javascript al managed code, deve essere invece preparata in un modo un pò più particolare. Innanzitutto, all'interno dell'evento Loaded dell'applicazione Silverlight, deve essere registrato l'oggetto tramite il quale poi potrà essere effettuata la comunicazione dalla pagina.
&lt;br /&gt;Tale registrazione viene fatta chiamando il metodo RegisterScriptableObject, sempre della classe HtmlPage:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;private&lt;/span&gt; &lt;span style="color: #0000FF"&gt;void&lt;/span&gt; UserControl_Loaded(&lt;span style="color: #0000FF"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
&lt;br /&gt;{
&lt;br /&gt;    HtmlPage.RegisterScriptableObject(&lt;span style="color: #A31515"&gt;"SilverlightToJavascriptControlObject"&lt;/span&gt;, &lt;span style="color: #0000FF"&gt;this&lt;/span&gt;);
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Notiamo che la chiave scelta è del tutto arbitraria.
&lt;br /&gt;Poi invece, dobbiamo scegliere il metodo che vogliamo sia richiamabile da codice Javascript e decorarlo con l'attributo "ScriptableMember".
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;[ScriptableMember]
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;public&lt;/span&gt; &lt;span style="color: #0000FF"&gt;void&lt;/span&gt; AddItem(&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; value)
&lt;br /&gt;{
&lt;br /&gt;    listbox.Items.Add(value);
&lt;br /&gt;    HtmlPage.Window.Alert(&lt;span style="color: #A31515"&gt;"richiamato da javascript !"&lt;/span&gt;);
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo, abbiamo appena abilitato la nostra applicazione Silverlight a ricevere informazioni dalla pagina che la ospita; in realtà, quello che effettivamente può essere richiamato è il metodo "AddItem".
&lt;br /&gt;Ora, vediamo il codice Javascript necessario per effettuare tale chiamata:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;script&lt;/span&gt;&lt;span style='color:#FF0000'&gt; type&lt;span style='color:#0000FF'&gt;="text/javascript"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    function SendToSilverlight()
&lt;br /&gt;    {
&lt;br /&gt;        var txt = document.getElementById("txt");
&lt;br /&gt;        var silverlight = document.getElementById("silverlightControl");
&lt;br /&gt;        silverlight.Content.SilverlightToJavascriptControlObject.AddItem(txt.value);
&lt;br /&gt;    }
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;script&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;body&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;   Manda qualcosa a Silverlight...&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;br&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;   &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;input&lt;/span&gt;&lt;span style='color:#FF0000'&gt; type&lt;span style='color:#0000FF'&gt;="text"&lt;/span&gt; id&lt;span style='color:#0000FF'&gt;="txt"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;   &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;input&lt;/span&gt;&lt;span style='color:#FF0000'&gt; type&lt;span style='color:#0000FF'&gt;="button"&lt;/span&gt; onclick&lt;span style='color:#0000FF'&gt;="javascript:SendToSilverlight()"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="send"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;   &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;br&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;br&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;   &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;div&lt;/span&gt;&lt;span style='color:#FF0000'&gt; id&lt;span style='color:#0000FF'&gt;="silverlightControlHost"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;object&lt;/span&gt;&lt;span style='color:#FF0000'&gt; id&lt;span style='color:#0000FF'&gt;="silverlightControl"&lt;/span&gt;
&lt;br /&gt;              data&lt;span style='color:#0000FF'&gt;="data:application/x-silverlight-2,"&lt;/span&gt;
&lt;br /&gt;              type&lt;span style='color:#0000FF'&gt;="application/x-silverlight-2"&lt;/span&gt;
&lt;br /&gt;              width&lt;span style='color:#0000FF'&gt;="100%"&lt;/span&gt; height&lt;span style='color:#0000FF'&gt;="100%"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="source"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="ClientBin/SilverlightAndJavascript.xap"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="onerror"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="onSilverlightError"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="background"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="white"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="minRuntimeVersion"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="2.0.31005.0"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;param&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="autoUpgrade"&lt;/span&gt; value&lt;span style='color:#0000FF'&gt;="true"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;a&lt;/span&gt;&lt;span style='color:#FF0000'&gt; href&lt;span style='color:#0000FF'&gt;="http://go.microsoft.com/fwlink/?LinkID=124807"&lt;/span&gt; style&lt;span style='color:#0000FF'&gt;="text-decoration: none;"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;            &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;img&lt;/span&gt;&lt;span style='color:#FF0000'&gt; src&lt;span style='color:#0000FF'&gt;="http://go.microsoft.com/fwlink/?LinkId=108181"&lt;/span&gt; &lt;br /&gt;alt&lt;span style='color:#0000FF'&gt;="Get Microsoft Silverlight"&lt;/span&gt; style&lt;span style='color:#0000FF'&gt;="border-style: none"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;         &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;a&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;object&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;iframe&lt;/span&gt;&lt;span style='color:#FF0000'&gt; style='visibility:hidden;height:0;width:0;border:0px'&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;iframe&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;div&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;body&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Come abbiamo visto, nel caso di utilizzo di una semplice pagine html per la fruizione dell'applicazione Silverlight, è necessario prima prelevare l'elemento di tipo "object" (tramite il suo id) che rappresenta il controllo Siverlight vero e proprio ed, in seguito, richiamare il metodo AddItem.
&lt;br /&gt;Allo stesso modo, è possibile eseguire la medesima operazione anche all'interno di una pagina ASP.NET:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;head&lt;/span&gt;&lt;span style='color:#FF0000'&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;script&lt;/span&gt;&lt;span style='color:#FF0000'&gt; language&lt;span style='color:#0000FF'&gt;="javascript"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="text/javascript"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;        function SendToSilverlight() 
&lt;br /&gt;        {
&lt;br /&gt;            var txt = document.getElementById("txt");
&lt;br /&gt;            var silverlight = document.getElementById("Xaml1");
&lt;br /&gt;            silverlight.Content.SilverlightToJavascriptControlObject.AddItem(txt.value);
&lt;br /&gt;        }
&lt;br /&gt;    
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;script&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;head&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;body&lt;/span&gt;&lt;span style='color:#FF0000'&gt; style&lt;span style='color:#0000FF'&gt;="height:100%;margin:0;"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;form&lt;/span&gt;&lt;span style='color:#FF0000'&gt; id&lt;span style='color:#0000FF'&gt;="form1"&lt;/span&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt; style&lt;span style='color:#0000FF'&gt;="height:100%;"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;asp:ScriptManager&lt;/span&gt;&lt;span style='color:#FF0000'&gt; ID&lt;span style='color:#0000FF'&gt;="ScriptManager1"&lt;/span&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;asp:ScriptManager&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        Manda qualcosa a Silverlight...&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;br&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;asp:TextBox&lt;/span&gt;&lt;span style='color:#FF0000'&gt; ID&lt;span style='color:#0000FF'&gt;="txt"&lt;/span&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;asp:Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; ID&lt;span style='color:#0000FF'&gt;="btn"&lt;/span&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt; Text&lt;span style='color:#0000FF'&gt;="Send"&lt;/span&gt; OnClientClick&lt;span style='color:#0000FF'&gt;="SendToSilverlight(); return false;"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;br&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;br&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;div&lt;/span&gt;&lt;span style='color:#FF0000'&gt;  style&lt;span style='color:#0000FF'&gt;="height:100%;"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;            &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;asp:Silverlight&lt;/span&gt;&lt;span style='color:#FF0000'&gt; ID&lt;span style='color:#0000FF'&gt;="Xaml1"&lt;/span&gt; runat&lt;span style='color:#0000FF'&gt;="server"&lt;/span&gt;
&lt;br /&gt;                             Source&lt;span style='color:#0000FF'&gt;="~/ClientBin/SilverlightAndJavascript.xap"&lt;/span&gt;
&lt;br /&gt;                             MinimumVersion&lt;span style='color:#0000FF'&gt;="2.0.31005.0"&lt;/span&gt;
&lt;br /&gt;                             Width&lt;span style='color:#0000FF'&gt;="100%"&lt;/span&gt; Height&lt;span style='color:#0000FF'&gt;="100%"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;div&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;form&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;body&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;In questo caso, l'identificativo per richiamare il controllo è il medesimo utilizzato all'interno dell'attributo ID del controllo asp:Silverlight, componente che si preoccupa di effettuare il rendering del relativo elemento di tipo "object".
&lt;br /&gt;Come avete potuto vedere, risulta veramente facile far interagire la pagina con il controllo Silverlight ospitato e viceversa, tramite le classi offerte dal .NET Framework. Chiaramente poi, le informazioni che vengono scambiate e che fanno parte di quello che è l'input dell'utente, devono passare sotto degli adeguati controlli di validazione per evitare qualsiasi tipo di vulnerabilità.
&lt;br /&gt;Vi lascio un piccolo esempio di quanto abbiamo visto fin'ora. 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Silverlight/FromJavascriptToSilverlight.html" title="Call Silverlight methods from javascript demo"&gt;DEMO ONLINE&lt;/a&gt; | &lt;a href="http://www.peppedotnet.it/zip/SilverlightAndJavascript.zip" title="Source code"&gt;Source code&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] </description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/HowToCallSilverlightMethodsFromJavascript.aspx#comm</comments><guid>/Blog/HowToCallSilverlightMethodsFromJavascript.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/370.aspx</trackback:ping></item><item><title>Abilitare Silverlight su IIS 6</title><link>http://www.peppedotnet.it/Blog/HowToEnableSilverlightInIIS6.aspx</link><pubDate>Wed, 25 Mar 2009 19:21:17 GMT</pubDate><description>In IIS 6.0 bisogna installare manualmente il mime type relativo alle applicazioni Silverlight 2.0, chiaramente oltre ad installare il framework 3.5 e il relativo service pack 1.
&lt;br /&gt;Per farlo, basta aprire la console di IIS, fare click con il tasto destro del mouse sul nome del server e selezionare la voce "Properties". Fatto questo, vi ritroverete questa finestra..
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/silverlightMime1.jpg" alt="Silverlight mime type configuration" /&gt;
&lt;br /&gt;
&lt;br /&gt;Facendo click sull'opzione "MIME Types..." saremo così in grado di aggiungere la mappatura all'estensione .xap, propria delle applicazioni Silverlight 2.0:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/silverlightMime2.jpg" alt="Silverlight mime type configuration" /&gt;
&lt;br /&gt;
&lt;br /&gt;inserendo i seguenti valori:&lt;ul&gt;&lt;li&gt;Extension: .xap&lt;/li&gt;&lt;li&gt;MIME Type: application/x-silverlight-app&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Così facendo siamo in grado di offrire applicazioni Silverlight all'interno di siti web ASP.NET hostati su IIS 6.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/IIS.aspx" title="TAG: IIS"&gt;IIS&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/HowToEnableSilverlightInIIS6.aspx#comm</comments><guid>/Blog/HowToEnableSilverlightInIIS6.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/363.aspx</trackback:ping></item><item><title>Gestione della tastiera in Silverlight 2.0</title><link>http://www.peppedotnet.it/Blog/KeyboardEventSilverlight2.aspx</link><pubDate>Sun, 22 Feb 2009 22:21:49 GMT</pubDate><description>E' da un pò che ho iniziato a giocare con Silverlight e, come ormai quasi tutte le tecnologie Microsoft, mi piace proprio tanto.
&lt;br /&gt;Una delle prime cose che ho voluto provare è stata la gestione degli eventi lanciati dalla tastiera della macchina client su cui viene eseguito il mio controllo Silverlight.
&lt;br /&gt;La maggior parte dei controlli Silverlight di interfaccia infatti, espongono due eventi ben precisi per poter ascoltare cosa succede sulla tastiera dell'utente. Questi sono gli eventi &lt;a href="http://msdn.microsoft.com/it-it/library/system.windows.uielement.keyup.aspx" title="KeyUp event"&gt;KeyUp&lt;/a&gt; e &lt;a href="http://msdn.microsoft.com/it-it/library/system.windows.uielement.keydown.aspx" title="KeyDown event"&gt;KeyDown&lt;/a&gt;, che vengono scatenati rispettivamente al rilascio di un pulsante della tastiera e ad un eventuale pressione, nel momento in cui il controllo ha il focus.
&lt;br /&gt;Entrambi i metodi sono ereditati dalla classe &lt;a href="http://msdn.microsoft.com/it-it/library/system.windows.uielement.aspx" title="Classe UIElement"&gt;UIElement&lt;/a&gt;, una delle classi base di Silverlight.
&lt;br /&gt;
&lt;br /&gt;La gestione di tali eventi è molto semplice. Possono infatti essere registrati nella parte di code-behind del controllo Silverlight:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;KeyDown += &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; KeyEventHandler(Page_KeyDown);
&lt;br /&gt;KeyUp += &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; KeyEventHandler(Page_KeyUp);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;oppure direttamente all'interno del file .xaml:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;UserControl&lt;/span&gt;&lt;span style='color:#FF0000'&gt; x:Class&lt;span style='color:#0000FF'&gt;="SilverlightKeyboardEvents.Page"&lt;/span&gt;
&lt;br /&gt;    xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt; 
&lt;br /&gt;    xmlns:x&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt; 
&lt;br /&gt;    Width&lt;span style='color:#0000FF'&gt;="400"&lt;/span&gt; Height&lt;span style='color:#0000FF'&gt;="300"&lt;/span&gt; Background&lt;span style='color:#0000FF'&gt;="White"&lt;/span&gt;
&lt;br /&gt;    KeyDown&lt;span style='color:#0000FF'&gt;="Page_KeyDown"&lt;/span&gt; KeyUp&lt;span style='color:#0000FF'&gt;="Page_KeyUp"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;UserControl&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo, abbiamo gestito la pressione e il rilascio di tasti della tastiera di tutto il controllo. Il che significa che questi eventi possono essere scatenati da qualunque sotto-elemento posto all'interno del nostro user control che riceve il focus.
&lt;br /&gt;
&lt;br /&gt;Poi, all'interno dei rispettivi gestori degli eventi KeyUp e KeyDown, abbiamo la possibilità di eseguire particolari operazioni a fronte della pressione o del rilascio di tasti da parte dell'utente. Il tasto che è stato schiacciato è disponibile grazie alla proprietà "Key" della classe KeyEventArgs, classe la cui istanza viene passata come parametro agli handler degli eventi in questione.
&lt;br /&gt;Sempre tramite la medesima classe, possiamo recuperare il codice legato al tasto premuto (secondo la codifica relativa alla piattaforma utilizzata dalla macchina client) e un'istanza del controllo che ha scatenato l'evento.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;void&lt;/span&gt; Page_KeyUp(&lt;span style="color: #0000FF"&gt;object&lt;/span&gt; sender, KeyEventArgs e)
&lt;br /&gt;{
&lt;br /&gt;    Key tastoRilasciato = e.Key;
&lt;br /&gt;    TextBox txt = e.OriginalSource &lt;span style="color: #0000FF"&gt;as&lt;/span&gt; TextBox;
&lt;br /&gt;
&lt;br /&gt;    &lt;span style="color: #008200"&gt;//operazioni a fronte del rilascio di un tasto&lt;/span&gt;
}
&lt;br /&gt;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;void&lt;/span&gt; Page_KeyDown(&lt;span style="color: #0000FF"&gt;object&lt;/span&gt; sender, KeyEventArgs e)
&lt;br /&gt;{
&lt;br /&gt;    Key tastoPremuto = e.Key;
&lt;br /&gt;    &lt;span style="color: #0000FF"&gt;object&lt;/span&gt; sourceControl = e.OriginalSource;
&lt;br /&gt;
&lt;br /&gt;    &lt;span style="color: #008200"&gt;//operazioni a fronte della pressione di un tasto della tastiera&lt;/span&gt;
}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;In questo modo, direi veramente semplice, possiamo dotare le nostre applicazioni Silverlight di particolari funzionalità legate all'utilizzo della tastiera. In applicazioni web, questo tipo di funzionalità erano disponibili scrivendo un pò di codice javascript, mentre ora, possiamo fare tutto nel nostro linguaggio ad oggetti preferito ;)
&lt;br /&gt;Vi lascio un piccolo esempio di quanto abbiamo visto fin'ora.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="/Silverlight/SilverlightKeyboardEvents.html" title="Gestione della tastiera in Silverlight 2.0 - Demo"&gt;DEMO ONLINE&lt;/a&gt; | &lt;a href="/zip/SilverlightKeyboardEvents.zip" title="Gestione della tastiera in Silverlight 2.0 - Source code"&gt;Source code&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight 2.aspx" title="TAG: Silverlight 2"&gt;Silverlight 2&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Keyboard events.aspx" title="TAG: Keyboard events"&gt;Keyboard events&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/KeyboardEventSilverlight2.aspx#comm</comments><guid>/Blog/KeyboardEventSilverlight2.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/359.aspx</trackback:ping></item><item><title>Rilasciato Silverlight 2.0</title><link>http://www.peppedotnet.it/Blog/Silverlight2.aspx</link><pubDate>Thu, 16 Oct 2008 11:08:05 GMT</pubDate><description>E' ormai di due giorni la notizia del rilascio della versione finale di Silverlight 2.0 !
&lt;br /&gt;Qua per i dettagli:
&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/10/14/silverlight-2-released.aspx" title="Silverlight 2 Released "&gt;http://weblogs.asp.net/scottgu/archive/2008/10/14/silverlight-2-released.aspx&lt;/a&gt;
&lt;br /&gt;&lt;a href="http://www.aspitalia.com/focuson/1066/Finalmente-Silverlight-2.0-RTW.aspx" title="Finalmente Silverlight 2.0 RTW!F"&gt;http://www.aspitalia.com/focuson/1066/Finalmente-Silverlight-2.0-RTW.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/Silverlight2.aspx#comm</comments><guid>/Blog/Silverlight2.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/343.aspx</trackback:ping></item><item><title>Silverlight 2.0 Release Candidate</title><link>http://www.peppedotnet.it/Blog/Silverlight2ReleaseCandidate.aspx</link><pubDate>Fri, 26 Sep 2008 11:12:12 GMT</pubDate><description>E' di stamattina l'annuncio da parte del solito &lt;a href="http://weblogs.asp.net/scottgu/" title="Scott Guthrie"&gt;Scott Guthrie&lt;/a&gt; del rilascio della Release Candidate di &lt;a href="http://silverlight.net" title="Silverlight.net"&gt;Silverlight 2.0&lt;/a&gt; !
&lt;br /&gt;Questo il post con tutte le info sul rilascio:
&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/25/silverlight-2-release-candidate-now-available.aspx" title="Silverlight 2 Release Candidate Now Available"&gt;http://weblogs.asp.net/scottgu/archive/2008/09/25/silverlight-2-release-candidate-now-available.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Sono stati eliminati un pò di bug e migliorate le prestazioni. E infine sono stati anche aggiunti 3 nuovi controlli:&lt;ul&gt;&lt;li&gt;PasswordBox&lt;/li&gt;&lt;li&gt;ProgressBar&lt;/li&gt;&lt;li&gt;ComboBox&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] </description><dc:creator> (Giuseppe Marchi)</dc:creator><comments>/Blog/Silverlight2ReleaseCandidate.aspx#comm</comments><guid>/Blog/Silverlight2ReleaseCandidate.aspx</guid><source url="http://www.peppedotnet.it/Blog/Rss.aspx" /><category>Silverlight</category><trackback:ping>http://www.peppedotnet.it/Blog/Trackbacks/337.aspx</trackback:ping></item></channel></rss>