Dev (Back & Front)ARTIGO

Explorando o ASP.NET 3.5 Dynamic Data Controls

O ASP.NET revolucionou o desenvolvimento de aplicações para web oferecendo uma plataforma robusta e altamente produtiva elevando o potencial dos desenvolvedores com excelente recursos como: GridView, DataControls, Validators , WebParts entre outros.

Ao longo dos anos, outras necessidades foram surgindo no mercado como a criação de telas automáticas de cadastro conhecidas atualmente como Scaffold bastante populares com o Ruby on Rails. Já faz algum tempo que a Microsoft vem investindo em linguagens dinâmicas e agora, com o lançamento do Service Pack 1 do .NET 3.5, foi disponibilizando dentro do ASP.NET um novo conjunto de controles conhecido como Dynamic Data Controls que tem objetivo de montar as telas para as ações básicas de qualquer CRUD (Create, Read, Update, Delete).

Logo após instalar o Service Pack 1 do Visual Studio 2008, vai aparecer, conforme apresentado na figura 01, mais um novo tipo de projeto web para o .NET 3.5 chamado de “Dynamic Data

Figura 01 - Criando novo projeto \Figura 01 – Criando novo projeto \”Dynamic Data Web Application\”

Após criar seu novo projeto, verifique nas referências e vai observar que ele traz as os novos namespaces System.Web.DynamicData e System.Web.DynamicData.Design.

Agora, para dar continuidade ao nosso projeto de exemplo, você precisa escolher uma base de dados. Para esse caso, utilizaremos uma própria base do sqlExpress, criada no próprio projeto conforme figura 02.

Figura 02 - Banco de dados de exemploFigura 02 – Banco de dados de exemplo

Para otimizar mais ainda nosso projeto, vamos criar um mapeamento baseado no LINQ to SQL para que o LINQ se encarregue de todas operações de acesso a dados. Adicione a seu projeto o arquivo LINQClientes.dbml que deve ser trazer o mapeamento para essa tabela Clientes conforme figura 03.

Figura 03 - Mapeamento do LINQ to SQL para tabela Clientes.Figura 03 – Mapeamento do LINQ to SQL para tabela Clientes.

Agora que você já fez as configurações básicas do seu banco de dados, já podemos configurar o Dynamic Data para utilizar o LINQ to SQL e gerar automaticamente as telas de manipulação dessa tabela. Vá ao global.asax e localize o método RegisterRoutes() e dentro do mesmo modifique a linha Model.RegisterContext adicionando o nome do contexto gerado pelo LINQ que para o nosso exemplo foi LINQClientesDataContext conforme figura 04 e alterando o valor de ScaffoldAllTables para true.

Figura 04 - Configurando Dynamic Data ControlsFigura 04 – Configurando Dynamic Data Controls

Feito essa simples configuração, é só rodar sua aplicação e já testar diretamente no Internet Explorer para conferir sua primeira aplicação web dinâmica baseada no ASP.NET 3.5 conforme figura 05 a 08.

Figura 05 - Aplicação dinâmica usando ASP.NET 3.5Figura 05 – Aplicação dinâmica usando ASP.NET 3.5

Figura 06 - Atalho para  inclusão de dadosFigura 06 – Atalho para inclusão de dados

Figura 07 - Tela para inclusão de dadosFigura 07 – Tela para inclusão de dados

Figura 08 - Tela principalFigura 08 – Tela principal

Conforme você observou, com apenas uma pequena configuração você já ganhou um sistema completo para inclusão e manipulação dos dados. Prepara-se para uma nova era no mundo de aplicações usando a plataforma ASP.NET 3.5 SP1.

Comente esse artigo e não esqueça de uma frase importante “Não tem que ser difícil”. Até a próxima!

é diretor executivo na 2PC Brasil. Especialista em desenvolvimento de software focando em Agile Application Lifecycle Management (ALM) com diversas certificações, como Microsoft MVP Visual Studio ALM, Professional Scrum Developer (PSD), Professional Scrum Master (PSM), Certified ScrumMaster (CSM). É autor dos livros “Desenvolvendo para web usando o Visual Studio 2008” e “Gerenciando projetos de software usando Visual Studio Team System” pela editora Brasport. Palestrante nos principais eventos no Brasil, como TechEd (2005-2011) e Campus Party Brasil (2009-2012) além eventos regionais relacionados a grupos de usuários e universidades. Pesquisador de marketing digital, redes sociais, gestão 2.0 e agilidade. Para contatos, @ramonduraes no twitter.

Ver perfil