ASP.Net  »  Articoli  »  Silverlight 

MVVM: Applicare il pattern in progetti Silverlight

di: Andrea Boschin     28 Aprile 2010

Un esempio pratico

Ora che sono stati delineati i concetti che governano il funzionamento del pattern MVVM vale la pena di provare a realizzare una semplicissima applicazione il cui scopo sia di dimostrare come occorre strutturare classi, proprietà e quant'altro. L'applicazione si occuperà di visualizzare un elenco di prodotti e quindi innanzitutto dimostrerà come raccogliere i dati dal model e visualizzarli all'utente.

Prima di tutto quindi, partendo dal basso, il Model espone un metodo per estrarre i prodotti secondo un criterio ben definito. Nel caso dell'esempio in questione il metodo accetta una stringa in ingresso con lo scopo di simulare una ricerca; la stringa verrà usata in seguito per selezionare i prodotti che la contengono.

public class ProductRepository : IProductRepository
{
  public void GetProductsByKeyword(
        string searchKey, 
        Action<IEnumerable<Product>> success,
        Action<Exception> fail)
  {
    // qui chiamo un WebService oppure WCF Ria Services
    ProductsClient client = new ProductsClient();
    
    client.GetProductsByKeyword +=
           (s, e) =>
           {
              // qui ho il risultato...
              if (e.Error != null) fail(e.Error);
              
              // ...e lo ritorno 
              success(e.Result);
           };
   
    client.GetProductsByKeywordAsync(searchKey);
  }
}

A prima vista può sembrare strano il modo con cui viene ritornato il risultato del metodo. Bisogna però tenere in considerazione che in Silverlight l'accesso ai dati sarà sempre mediato da un WebService, piuttosto che da un Ria Service e questa operazione sarà sempre asincrona. Strutturare il metodo in questo modo consente di trarre vantaggio dalle lambda expressions e mantenere il codice più compatto senza dover ricorrere a delegate ed eventi.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto