Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le novità  di Visual Studio 11 (parte terza)

Link copiato negli appunti

Continuando la nostra esplorazione delle novità  Visual Studio 11 (vNext) (qui la seconda parte) incontriamo migliorie e nuove funzionalità  anche nel complesso campo del Data Binding. Come abbiamo già  visto nel post precedente, in Visual Studio vNext potremo scrivere le espressioni di binding con l'aiuto dell'IntelliSense e quindi in modalità  Strongly-Typed, ovvero senza rischio di errori di scrittura e senza la necessità  di conoscere a memoria le proprietà  degli oggetti.

Oltre a questo, vNext porterà  con se anche un concetto totalmente nuovo di Data Binding, ovvero il Model Binding (ereditato da ASP.NET MVC). In pratica per Model Binding si intende un approccio al data binding focalizzato sul codice. Il Model Binding consente infatti di scrivere i nostri metodi per realizzare le quattro operazioni fondamentali sui dati (CRUD) e di associarli facilmente ai controlli server i quali, dal loro canto, sapranno fare buon uso di questi metodi richiamandoli quando opportuno nell'ambito del ciclo di vita della pagina ASP.NET.

Vediamo un esempio che vale più di mille parole:

<asp:GridView ID="gvProducts" runat="server" ModelType="MyApp.Product"
    SelectMethod="GetProducts" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" />
        <asp:BoundField DataField="Name" HeaderText="Nome" />
        <asp:BoundField DataField="Description" HeaderText="Descrizione" />
        <asp:TemplateField HeaderText="Venduti">
            <ItemTemplate><%# Item.Orders.Count %></ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

In questo caso abbiamo una GridView che visualizza l'elenco dei prodotti con il numero di pezzi venduti. Come vediamo abbiamo valorizzato la proprietà  ModelType affinchè potessimo utilizzare la nuova modalità  di scrittura delle espressioni di binding che utilizza l'oggetto Item. Poi vediamo che la proprietà  SelectMethod è stata valorizzata con il metodo GetProducts che troviamo nel code behind della pagina:


public IQueryable<Product> GetProducts() {
var dbECommerce = new dbECommerce();
return dbECommerce.Products.Include(o => o.Orders);
}

In questo caso specifico utilizziamo Entity Framework per recuperare l'elenco dei prodotti e contestualmente diciamo anche, con Products.Include che vogliamo recuperare anche le informazioni sugli ordini di ciascun prodotto.

In pratica, come vediamo, non è più necessario utilizzare un oggetto Data Source intermedio come SqlDataSource od ObjectDataSource perchè con il nuovo Model Binding i server controls sono in grado autonomamente di richiamare i metodi helpers preposti alla gestione dei dati.

Ti consigliamo anche