RSS feed
Controles de Dados Fortemente Tipados (Série de posts sobre a ASP.NET vNext) - ScottGu's Blog em Português

Controles de Dados Fortemente Tipados (Série de posts sobre a ASP.NET vNext)


Este é o segundo post de uma série de posts que estou escrevendo sobre a próxima versão da ASP.NET ( ASP.NET vNext ).

Os próximos lançamentos do .NET e Visual Studio ( vNext ) incluem vários novos e ótimos recursos e capacidades. Com a ASP.NET vNext você vai ver um monte de melhorias realmente emocionantes em formulários da Web ( Web Forms ) e MVC - assim como no núcleo da base de código da ASP.NET, no qual estas tecnologias são baseadas.

O post de hoje é o primeiro de alguns posts que vou escrever para falar sobre algumas das melhorias que estão chegando para Web Forms. O post de hoje cobre o novo suporte que estamos introduzindo para controles de dados fortemente tipados.

Algumas informações sobre Modelos/Templates para Controle de Dados

A ASP.NET Web Forms introduziu o conceito de "templates" ( modelos ) começando com o primeiro lançamento. Templates permitem que você personalize (ou substitua) a marcação HTML emitida por controles do servidor, e são normalmente utilizados em expressões de data-binding ( ligação/vinculação de dados ).

Hoje, quando você usa data-binding dentro de um template, você usa expressões late-bound ( vinculação-tardia ) para ligar os dados. Por exemplo, a seguir nós estamos usando o método de ajuda Eval() para vincular as propriedades "Name" e "LastName" de uma lista de objetos ligada a um controle do tipo repeater:

<ul>

    <asp:Repeater runat="server" ID="customers">

        <ItemTemplate>

            <li>

                First Name: <%# Eval("FirstName") %><br />

                Last Name: <%# Eval("LastName") %><br />

            </li>

        </ItemTemplate>

    </asp:Repeater>

</ul>

Hoje, quando você realiza 2-way data-binding ou ligação de dados em 2 vias (leitura/escrita), você usa o método de ajuda Bind() da seguinte forma:

<asp:FormView ID="editCustomer" runat="server" >

    <EditItemTemplate>

        <div>

            First Name:

            <asp:TextBox ID="firstName" runat="server" Text='<%# Bind("FirstName") %>' />

        </div>

        <div>

            Last Name:

            <asp:TextBox ID="lastName" runat="server" Text='<%# Bind("LastName") %>' />

        </div>

        <asp:Button runat="server" CommandName="Update" />

    </EditItemTemplate>

</asp:FormView>

Uma desvantagem das abordagens mostradas acima é que as chamadas para Eval() e Bind() são late-bound - o que significa que você passa strings para representar os nomes das propriedades. Isto significa que você não terá Intellisense para os nomes dos membros, nem suporte à navegação de código (como Go To Definition/Ir para Definição), nem suporte para verificação do código no tempo de compilação.

Controles de Dados Fortemente Tipados

A próxima versão da ASP.NET fornece a capacidade para habilitar templates de dados fortemente tipados. Especificamente, nós adicionamos a capacidade de declarar a qual tipo de dado um controle vai ser ligado, por meio de uma nova propriedade chamada "ModelType" nos controles de dados. Quando esta propriedade é definida, duas novas variáveis ​​serão geradas no escopo das expressões de ligação de dados do modelo: Item e BindItem.

Os desenvolvedores podem usar essas variáveis ​​em expressões de data-binding obtendo Intellisense completa e suporte para verificação do código no tempo de compilação. Por exemplo, a seguir nós setamos a variável ModelType em um controle <asp:repeater> para que ela seja um objeto "Customer". Uma vez feito isso, podemos utilizar Item.FirstName ao invés de Eval ("FirstName") para referenciar a propriedade.

Nós obtemos intellisense completa para o código no Visual Studio quando passamos a utilizar a variável Item:

imagem

No caso de expressões 2-way data-binding (leitura/escrita), também podemos agora usar a variável BindItem e obter os mesmos benefícios fortemente tipados:

<asp:FormView ID="editCustomer" runat="server">

    <EditItemTemplate>

        <div>

            First Name:

            <asp:TextBox ID="firstName" Text='<%# BindItem.FirstName %>' runat="server" />

        </div>

        <div>

            Last Name:

            <asp:TextBox ID="lastName" Text='<%# BindItem.LastName %>' runat="server" />

        </div>

        <asp:Button runat="server" CommandName="Update" />

    </EditItemTemplate>

</asp:FormView>

Se cometermos um erro durante a digitação, vamos obter um feedback instantâneo do motor da IntelliSense informando que algo está errado:

imagem

Vídeo rápido do Recurso

Damian Edwards tem um ótimo video de 90 segundos que mostra o uso de controles de dados fortemente tipados em ação. Você pode vê-lo aqui.

Sumário

Suporte para controles de dados fortemente tipados, é um pequeno, mas bom recurso, que torna o trabalho com expressões de vinculação/ligação de dados mais fácil e mais limpo. Nos próximos posts cobrirei também algumas das melhorias mais substanciais no que diz respeito a dados para Web Forms na ASP.NET vNext que tornam a vinculação de dados e edição de dados ainda mais poderosa e fácil.

Espero que ajude,

Scott

P.S. Além do blog, eu uso o Twitter para disponibilizar posts rápidos e para compartilhar links. Meu apelido no Twitter é: @scottgu


Texto traduzido do post original por Leniel Macaferi.

Published Thursday, September 01, 2011 11:29 PM by Leniel Macaferi
Filed under: , ,

Comments

# S&#233;rie de posts sobre a pr&#243;xima vers&#227;o da ASP.NET ( vNext ) - ScottGu's Blog em Portugu??s

Pingback from  S&#233;rie de posts sobre a pr&#243;xima vers&#227;o da ASP.NET ( vNext ) - ScottGu's Blog em Portugu??s

# Ligação do Modelo de Dados com Web Forms - Parte 1: Selecionando Dados (Série de posts sobre a ASP.NET vNext)

Saturday, November 05, 2011 10:35 PM by ScottGu's Blog em Português

Este é o terceiro post de uma série de posts que estou escrevendo sobre a próxima versão da ASP.NET

Leave a Comment

(required) 
(required) 
(optional)
(required)