ASP.NET Dynamic Data

Imagine-se na seguinte situação: Uma amiga muito querida proprietária daquela \locadora que você sempre pega filmes na faixa (de grátis), disse que precisa de uma maneira “simples” de cadastrar no computador determinadas informações de sua locadora, como ela é realmente muito especial você não consegue dizer não, esquecendo de que seu tempo está corrido, estudo de certificação, trabalho atrasado e ainda fazendo o TCC da faculdade, como criar um sistema de cadastro para locadora sem nenhum tempo para isso?

Ahhhh! O nosso bom e velho amigo Visual Studio pode nos dar uma força, existe um template pouco utilizado devido algumas limitações para projetos complexos e de grande porte, mas para sistemas simples que podem ser baseados em seus modelos de dados Dynamic Data é seu nome.

Nas palavras da Microsoft “ASP.NET Dynamic Data lets you create extensible data-driven Web applications by inferring at run time the appearance and behavior of data fields and by deriving UI behavior from”.

Com o Dynamic Data é possível criar aplicações de forma simples e rápida,  partindo da criação de um modelo de dados, com isso o Visual Studio fará todo o trabalho pesado ou quase todo, pois afinal precisamos justificar nossos baixos salários.

E ai vamos colocar a mão na massa?

Conforme já foi dito vamos começar pelo modelo.

Como pode ser visto é um modelo bem simples.

Aconselho a criar o modelo manualmente para lembrar como se faz, mas como a criação de modelo de dados não é o foco desse artigo, irei disponibilizar o SQL de criação desse banco ao final do artigo.

Agora vamos criar nosso sistema.
Selecione no Visual Studio File/New/Project quando a tela abrir em Installed Templates selecione Web e na tela ao lado selecione ASP.NET Dynamic Data Linq to SQL Web Application.
A figura abaixo ilustra.

Darei o nome de DynamicData para o projeto.
Como podemos verificar existe outra opção, o “Data Entities”, no entanto como iremos usar o SQL Server vamos ficar com o “Data Linq to SQL” pois existem debates que dizem que por sua estrutura ser mais simples ele acaba se tornando mais rápido, aproveitando a oportunidade gostaria que soubessem que tudo que for feito no Visual Studio 2010 pode também ser feito no 2008 com SP 1, mas por questões meramente viciantes vou brincar com o 2010 mesmo.

Após alguns segundos o VS2010 criará um projeto com seguinte estrutura.

Agora iremos ligar o nosso banco à aplicação.
– Mas já?
– Isso ai.
Com o “Ctrl + Alt + S”, temos a janela Server Explorer, que viabiliza conexões as bases de dados SQL Server. Clique com o botão direito em Data Connections é em Add Connection.

A próxima tela e para configurar a conexão, partirei do pressuposto que você saiba criar essa conexão, caso não saiba, existem vários tutorias na internet explicando. Na minha maquina a configuração fica assim e após clicar em ok, teremos a seguinte estrutura no Server Explorer.

Agora iremos criar o mapeamento desse modelo, algo parecido com o que a galera do Hibernate está cansado de fazer.
A Microsoft facilitou mais uma vez criando o template que facilita esse trabalho, o “Linq to SQL Classes”, para chegar até ele basta digitar a seqüência “Ctrl + Shift + A”, quando a tela Add New Item se abrir, navegue ate Visual C#  / Data  e nos templates escolha “Linq to SQL Classes” e de o nome de “ModeloLocadora.dbml“.

Ao clicar em Add, será aberto o arquivo criado que estará totalmente em branco, para fazer o mapeamento iremos fazer algo extremamente complicado, vamos arrastar as tabelas que queremos para essa área branca.

Depois de alguns segundo com o Visual Studio processando, eis a tela que surge.

Pode falar. É Legal não é mesmo! 🙂
Agora é necessário fazer o Visual Studio entender que é para ele configurar a aplicação de acordo com esse modelo.
– Como?
– Fácil.!

Localize no Solution Explorer o arquivo “Global.asax” e vamos editá-lo.

Vamos descomentar a seguinte linha e mudar seus valores.
// DefaultModel.RegisterContext(typeof(YourDataContextType),
// new ContextConfiguration() { ScaffoldAllTables = false });

Ficará assim:

DefaultModel.RegisterContext(typeof(ModeloLocadoraDataContext),
new ContextConfiguration() { ScaffoldAllTables = true });

O que foi mudado?

Trocamos o valor “YourDataContextType” pelo DataContext que foi criado a partir do modelo “ModeloLocadora.dbml” que criamos, Ficando “ModeloLocadoraDataContext

Trocamos também o valor de

ScaffoldAllTables= false” para  “ScaffoldAllTables = true” ao dizermos que o ScaffolAllTable e verdadeiro, estamos dizendo ao Visual Studio que ele deve gerar a lógica para todas as tabelas do DataContext configurado. Faça a mágica.

– E agora?
– “Ctrl + F5” 🙂
– O que?????????

É isso mesmo está pronto, e foi preciso editar apenas uma linha, gasto apenas uns 5 ou 10 minutos dependo da qualidade do freguês que criou.
Eis a tela inicial.

Logicamente, existe muita customização a ser feita visto que o sistema foi gerado a partir do que foi criado no banco de dados. Podemos alterar o Design através do arquivo “Site.css” e podemos alterar as descrições em inglês através de edições feitas no arquivos .aspx e .ascx

Se quiserem um novo artigo mostrando um pouco dessas customizações é só pedir nos comentários, caso queriam  enviar um e-mail e só usar as redes sociais ao lado ou entrar em contato pelo próprio e-mail.

Você  gastará mais uns 30 minutos ou menos para customizar, vai levar para sua amiga instalar e garantir muitos outro filmes no 0800 (na faixa como se diz aqui em Goiânia) e sua eterna gratidão, 🙂 . Sem prejudicar seu trabalho que já está atrasado e muito menos seu TCC de final de curso.

Comentem para incentivar novos artigos!

Como prometido eis o link para o SQL de criação do banco de dados locadora, se tiver alguma dificuldade em criar o banco com as instruções SQL tente executar cada bloco de código separadamente e não todo de uma vez.

SQL Locadora

Só lembrando pra quem mora em Goiânia não se esqueçam de participar da reunião técnica do DevGoias.
Será um evento muito interessante.

Publicidade

5 Comments

  1. Muito bom o artigo, com esse Dynamic Data dá para criar ulguns sisteminhas legais e rápido. Eu gostaria de ver um pouco dessas customizações que você disse no artigo. Vlw.

  2. Muito prático, “duas mãos na roda” para aplicações pequenas e de pouca complexidade.
    Tutorial 100%!!

  3. É interessante o que o Dynamic Data pode fazer. Mais interessante ainda, é notar o que anda acontecendo neste modelo de “facilidades”. RIA Services e Visual Studio LightSwitch são grandes exemplos. Daqui a alguns tempos, qualquer um poderá programar, mas criar um sistema, ainda será para poucos

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s