Do que trata o artigo

Vamos desenvolver um aplicativo Silverlight, acessando um banco de dados SQL Server através do Entity Framework (EF) e vamos apresentar e utilizar o recurso chamado Data Annotations. Vamos entender como ajustar os metadados gerados pelo EF de acordo com nossa necessidade.

Para que serve

Através do uso de Data Annotations é possível mudar a apresentação de um objeto de domínio do EF, na camada de interface. Existem vários atributos que podem ser aplicados.

Em que situação o tema é útil

Em aplicações Silverlight onde temos uma separação real do que é interface e o que é camada de acesso a dados, é possível ajustar esses dados sem necessariamente alterar a camada de apresentação.

Resumo do DevMan

Separar as camadas de um sistema é o objetivo de todo bom desenvolvedor. Nesse artigo veremos como o Silverlight trata essa separação e quais recursos nós temos disponíveis para manter as camadas desacopladas, umas da outras. No caso, faremos uso de Data Annotation, que são atributos contidos no namespace System.ComponentModel.DataAnnotations e podem ser utilizados para controlar a exibição dos dados.

O Silverlight desde o seu lançamento vem com a idéia de que a interface do usuário tem que ser desconectada do resto da aplicação, separando assim o trabalho de design da tela do restante da aplicação. Quem trabalha com desenvolvimento em camadas também costuma trabalhar desta forma, mas às vezes ocorre algum desvio e o programador acaba colocando alguma lógica na camada de interface, geralmente para validação.

O namespace System.ComponentModel.DataAnnotations provê atributos de classes e métodos para definir metadados que são utilizados em controles de dados para ASP.NET e Silverlight. Utilizaremos esses atributos para definir quais serão os dados que irão aparecer na tela para o usuário e algumas validações.

Neste projeto iremos utilizar o Visual Studio 2008 SP1, .NET Framework 3.5 SP1, Silverlight 3, Silverlight Toolkit de novembro de 2009, RIA Service, SQL Server 2005 e ADO.NET Entity Framework, mas caso você não tenha as versões completas poderá utilizar as versões Express destas ferramentas.

Data Annotations

Antes de qualquer coisa, vamos a uma introdução ao conceito Data Annotations. No Service Pack 1 do .NET Framework 3.5, lançado no final de 2008, a Microsoft introduziu um novo assembly (DLL) chamado System.ComponentModel.DataAnnotations. Essa nova DLL, inicialmente veio como parte do projeto ASP.NET Dynamic Data.

O propósito desta nova DLL é permitir que você defina no seu modelo de dados, determinados comportamentos que naturalmente são feitos na camada de interface. E isso é feito sem que o seu modelo de dados tenha conhecimento de como a camada de interface será implementada. È o que chamamos de implementação UI-agnóstic.

Esses comportamentos são declarados na forma de “anotações”, daí vem o nome Data Annotations. A forma de se fazer isso é através de atributos semânticos, inclusos nas propriedades das classes do nosso modelo, como [Required] para determinar que uma propriedade é obrigatório, ou [Range] para determinar os tamanhos mínimos e máximos que um campo texto deve ter.

O ASP.NET Dynamic Data interpreta esses atributos quando vai gerar automaticamente as interfaces de consulta, inclusão, alteração e exclusão das entidades do seu modelo. Assim, com essas anotações, ele pode determinar os controles de validação que deverá utilizar para cada propriedade.

A idéia de se criar uma forma de definir comportamento de interface no modelo, independente de como a interface será implementada, é muito boa, e obviamente rompe as barreiras do ASP.NET.

Durante a fase de desenvolvimento do .NET Framework 4.0, a equipe responsável pelo projeto .NET RIA Services já havia anunciado que iria oferecer suporte ao DataAnnotations, feito inicialmente para o ASP.NET Dynamic Support.

Isso significa que os modelos onde você aplicou anotações com o DataAnnotations, podem ser reaproveitados em aplicações ASP.NET Web Forms, com o Dynamic Data, e agora também em aplicações Silverlight, com o uso do RIA Services.

Além disso, também há meios de se aproveitar as anotações do DataAnnotations em aplicações feitas com o ASP.NET MVC, o que abrange ainda mais a ideia de se criar anotações agnósticas no modelo. Neste artigo, é claro, veremos como utilizar o DataAnnotations em uma aplicação Silverlight.

Nota do DevMan - ASP.NET Dynamic Data

Lançado oficialmente no Service Pack 1 do .NET Framework 3.5, o ASP.NET Dynamic Data é um conjunto de ferramentas que nos permite criar dinamicamente aplicações ASP.NET baseadas em um modelo de dados. A idéia é que com base em uma estrutura de dados pré-definida, as interfaces de consulta, inclusão, alteração e exclusão de dados, sejam criadas em tempo de execução, dinamicamente, sem que tenhamos que codificá-las.

...
Quer ler esse conteúdo completo? Tenha acesso completo