ADO.NET Data Service al servizio di Silverlight 2.0
di Marco Leoncini, in Silverlight 2.0, 28 ottobre 2008
Archiviato in: .NET Framework, .NET Framework 3.5, LINQ, Silverlight, WCF Data Services, Web Service, XAML, ADO.NET, Architettura, Silverlight 2.0
Gestire l'inserimento
Come accennato in precedenza, ADO.NET Data Services permette di eseguire tutte le operazioni tipiche di un'applicazione CRUD, compreso naturalmente l'inserimento.
Aggiungiamo quindi un nuovo UserControl al nostro progetto, dove inseriamo come elemento principale uno StackPanel, due TextBox, un Button e una TextBlock: la prima TextBox ci servirà per inserire l'identificativo del Customers, mentre la seconda verrà usata per la compagnia, alla pressione del bottone eseguirà l'inserimento e visualizzeremo l'esito dell'operazione nella TextBlock.
Prima di passare al Codebehind non dimentichiamoci di aggiungere un event handler per l'evento click del bottone e dichiariamo un campo del tipo NorthwindEntities che andremo poi a valorizzare nel costruttore dell'UserControl.
Continuiamo aggiungendo il codice nell'event handler del bottone, creiamo una nuova istanza del tipo Customers, impostiamo le proprietà prelevando i valori dai controlli dell'interfaccia e dall'istanza di NorthwindEntities richiamiamo il metodo BeginSaveChanges, il quale accetta come parametro un metodo di callback, che chiamiamo SaveCallBack, ed un oggetto di stato, nel nostro caso l'istanza di Customers.
Nel metodo SaveCallBack, utilizzando l'istanza di NorthwindEntities istanziata in precedenza, richiamiamo il metodo EndSaveChanges passando l'oggetto IAsyncResult: se l'inserimento termina senza problemi l'interfaccia mostrerà un messaggio di conferma.
public partial class PageInsert : UserControl { NorthwindEntities _dataServiceContext; public PageInsert() { InitializeComponent(); _dataServiceContext = new NorthwindEntities(new Uri("NorthWindWebDataService.svc", UriKind.Relative)); } private void OnInserted(object sender, RoutedEventArgs e) { Customers _customers = new Customers(); _customers.CustomerID = textBoxCustomerID.Text; _customers.CompanyName = textBoxCompanyName.Text; _dataServiceContext.AddToCustomers(_customers); _dataServiceContext.BeginSaveChanges(SaveCallBack, _customers); } void SaveCallBack(IAsyncResult result) { try { _dataServiceContext.EndSaveChanges(result); textBlockMessage.Text = string.Format("Salvataggio del customer con ID: {0} eseguito correttamente", ((Customers)result.AsyncState).CustomerID); } catch (DataServiceRequestException ex) { textBlockMessage.Text = string.Format("Si è verificato un errore {0}", ex.Response.ToString()); } } }
Conclusioni
ADO.NET Data Services potrebbe sembrare solo un altro semplice sistema per esporre dati, in realtà rappresenta se non la scelta obbligata sicuramente una delle più appetibili in chiave Silverlight ed AJAX. L'architettura REST, aperta indistintamente ad applicazione AJAX, ASP.NET, WPF, WinForms e SilverLight, le API client che consentono di utilizzare LINQ per interrogare il servizio, il DataLayer completamente personalizzabile ed estendibile rappresentano indubbiamente una serie di features irrinunciabili per un' applicazione moderna e menutenibile.
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 3
- Pagina 4
- Pagina 5
- Pagina 6
- Pagina 7
- Pagina 8
- Pagina 9
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.