ASP.NET Dynamic Data ASP.NET 4.0 suporta diferentes tipos de desenvolvimento de aplicações web e modelos associados. Podemos criar vários tipos de aplicações web: o tradicional ASP.NET Web Forms, ASP.NET MVC( aplicação baseada no padrão Model View Controller), ASP.NET Dynamic Data(aplicação que cria dinamicamente as páginas), etc. O foco do nosso artigo é o ASP.NET Dynamic Data. Se for necessário desenvolver um aplicativo para web, orientado a dados e num período muito curto de tempo, vale a pena dar uma olhada nesta forma de desenvolvimento. Além de podermos utilizar juntamente com aplicações webforms ou aplicações MVC. Existem alguns inconvenientes, como o desempenho. Pois as paginas são geradas dinamicamente em tempo de execução, temos um pequeno impacto na velocidade do site. Vamos ao exemplo: Va em File -> New -> Project Selecione ASP.NET Dynamic Data Entities Web Application conforme imagem abaixo.

Aqui tem um detalhe importante. Repare que o tipo de aplicação criada é do tipo Entities. Ou seja, para acessar os dados usaremos o Entity Framework. Não entraremos em detalhe neste artigo sobre o Entity Framework, já que este é um assunto muito complexo para ser abordado neste mesmo post. Vá em Add -> New Item Selecione ADO>NET Entity Data Model conforme imagem abaixo

Aparecerá uma janela para escolher se criaremos o modelo de dados a partir de um Database ou se criaremos um modelo de dados vazio. Como nossa aplicação é orientada a dados, utilizaremos a primeira opção: Generate from database. Criaremos uma nova conexão utilizando o banco de dados Microsoft SQL Server. Basta colocar os dados para conexão do seu banco de dados. No meu caso usarei o banco de dados AdventureWorks no meu Sql Server local. Vale a pena ressaltar que o Entity Framework pode ser utilizado com qualquer bando de dados que tenha o provider desenvolvido para ele. Após colocar os dados para conexão corretamente e clicar em next, aparecerá os objetos do banco de dados selecionados: Tabelas, views e SP’s. Como estamos montando um exemplo, escolherei apenas algumas tabelas de Produtos e clicarei em Finish. Temos pronto um modelo com as tabelas selecionada.  

Agora basta pegar o nome do DataContext no ModeloNegocio.Designer.cs e tirar a linha de comentário no arquivo Global.asax. No meu caso segue imagem com o nome do DataContext(AdventureWorks2008R2Entities)

Abaixo a linha que temos que tirar o comentário.

DefaultModel.RegisterContext(typeof(
AdventureWorks2008R2Entities), new ContextConfiguration()
 { ScaffoldAllTables = true });
Repare que coloquei o ScaffoldAllTables = true. Isso significa que vai exibir todas as tabelas selecionadas na aplicação web. Em nossa aplicação, podemos ter uma tabela usada para definir relacionamentos Muitos para Muitos entre duas tabelas. Esta tabela não pode ser exibida na interface do usuário. Pronto. Nosso site esta pronto para ser utilizado. Vamos compilar nossa aplicação.

Basta clicar em algum item do grid de tabelas que aparece um grid com paginação, CRUD, etc.

Como vimos no artigo acima, com o Dynamic Data se tornou fácil criar uma aplicação web de forma rápida e prática com base no banco de dados. Claro que isso não se aplica a todos os cenários, porem é de grande utilidade em alguns casos específicos. Podemos customizar praticamente tudo no Dynamic Data. Porem isso é assunto para outro artigo.