Accesso ai dati in Silverlight 2.0
di Alessio Leoncini, in Silverlight 2.0, 30 settembre 2008
Al di là dell'esempio precedente, gli scenari dove si sfrutta appieno le potenzialità dei web service e di avere collezioni tipizzate di oggetti in risposta ad una chiamata remota sono nei contesti di DataBinding, è possibile infatti associare la collezione items dell'esempio direttamente come DataContext di un controllo nel quale viene fatto esplicito uso della Binding Markup Extension:
void menuService_GetItemsCompleted2(object sender, MenuWebService.GetItemsCompletedEventArgs e) { ObservableCollection<MenuWebService.MenuDataItem> items = e.Result; if (!e.Cancelled && e.Error == null) { foreach (MenuWebService.MenuDataItem item in items) { MenuItem link = new MenuItem(); link.DataContext = item; Menu2.Children.Add(link as UIElement); Menu2.UpdateLayout(); } } }
Il MenuItem è un UserControl personalizzato di questo tipo:
<UserControl x:Class="SilverlightItalia.Accessoaidatisilverlight2.MenuItem" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <HyperlinkButton x:Name="simpleLink" Content="{Binding text}" Foreground="{Binding foreground}" NavigateUri="{Binding url}" TargetName="{Binding targer}" FontSize="{Binding fontSize}"></HyperlinkButton> </UserControl>
Ancora più interessante è l'uso con un oggetto come ListBox al quale è specificato un DataTemplate:
<ListBox x:Name="Menu3"> <ListBox.ItemTemplate> <DataTemplate> <HyperlinkButton Content="{Binding text}" Foreground="{Binding foreground}" NavigateUri="{Binding url}" TargetName="{Binding targer}" FontSize="{Binding fontSize}"> </HyperlinkButton> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
void menuService_GetItemsCompleted3(object sender, MenuWebService.GetItemsCompletedEventArgs e) { ObservableCollection<MenuWebService.MenuDataItem> items = e.Result; if (!e.Cancelled && e.Error == null) { Menu3.ItemsSource = items; } }
Dall'associazione della collezione direttamente come ItemsSource della ListBox si ottiene un menu completo e personalizzabile con pochissime righe di codice.
- WCF Services
I web service WCF rappresentano l'evoluzione dei servizi ASP.NET ed incorporano dentro sè tutte le tecnologie Microsoft di intercomunicazione tra sistemi; la grande flessibilità di configurazione ha elevato WCF a naturale sostituto degli ASMX anche nel semplice ambito di accesso ai dati in Silverlight. In Visual Studio è presente un template di servizio WCF già configurato per la compatibilità con i protocolli supportati dal plugin.
In linea di principio nell'ambito applicativo di un progetto Silverlight, un servizio ASP.NET è molto simile ad un servizio WCF, quest'ultimo è da preferire per la maggiore raffinatezza di strumenti di serializzazione dati e per il complessivo modello di programmazione molto più sofisticato e personalizzabile. Inoltre la flessibilità di configurazione consente di condividere i servizi tra più applicazioni anche di diverso tipo e tecnologia in modo da realizzare una base comune per la distribuzione remota dei dati.
Tendenzialmente WCF ha anche maggiori prestazioni e a riguardo è interessante l'articolo comparativo presente su MSDN.
In Silverlight è possibile utilizzare il BasicHttpBinding il quale è il più semplice modello di elaborazione dati di WCF che non richiede autenticazione da parte del client e serializza nativamente le informazioni con lo standard SOAP 1.1.
Con l'aiuto dei tool di Visual Studio l'uso di un servizio WCF è del tutto analogo a quello di un ASMX, eseguendo "Add Service Reference" viene generata la classe proxy ed il file di configurazione con le specifiche di accesso; il proxy può essere utilizzato nello stesso modo illustrato nel precedente paragrafo.
E' possibile approfondire questa tecnologia iniziando da questo articolo e seguendo le pubblicazioni di WinFxItalia riguardo WCF.
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Sullo stesso argomento
-
Applicazioni Silverlight con il cloud computing su Windows Azure
-
Aggiungere interattività al controllo Chart di Silverlight 3.0
-
Realizzare un sito completo in Silverlight: una galleria fotografica
-
Supporto audio e video in Silverlight 3.0
-
Effetti speciali sulle immagini in Silverlight 3.0
-
Anteprima di Expression Blend 3.0
-
Le novità di Silverlight 3.0 beta 1
-
Realizzare un menu riutilizzabile utilizzando DataTemplate e DataBinding
-
Un tocco di stile alle applicazioni Silverlight: style e template
-
Multithreading in Silverlight 2.0

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.