ADO.NET Data Service al servizio di Silverlight 2.0

9 pagine in totale: <<Indietro 1 2 3 4 5 6 7 8 [9]

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.

9 pagine in totale: <<Indietro 1 2 3 4 5 6 7 8 [9]

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

TUTORIALS
TOP TEN ARTICOLI
ARTICOLI VIA E-EMAIL

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

MEDIA
IN EVIDENZA
MISC