{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}
15/01/2011
Scaffolding é a prática de criar, rapidamente, alguns pedaços de nossas aplicações.O termo ficou bastante popularizado após o "boom" do Ruby on Rails.O processo de Scaffolding, ou de contrução de pequenas partes da aplicação de forma automatizada, nos permite aliviar a carga que teríamos em processos repetitivos e, de certa forma, braçais.Estas partes, no geral, constituem: criação de controllers, criação de views com um layout padrão, criação de um mecanismo de acesso a dados e a codificação padrão dos métodos comuns de CRUD(Create, Read, Update e Delete).
MVC Scaffolding é o projeto de scaffolding coordenado por Scott Hanselman e Steven Sanderson, fontes podem ser baixados na página do MVC Scaffolding no codeplex.O projeto é algo bastante interessante pois nos permite trabalhar com ASP.NET MVC e as facilidades de uma ferramenta de scaffolding o que dá ainda mais poder e agilidade para projetos MVC.A instalação não poderia ser mais simples, via NuGet é claro.Nota: Se você ainda não conhece NuGet você precisa se informar. É algo que está cada vez mais presente na comunidade .NET.
A instalação é simples, basta utilizarmos o comando abaixo no console do NuGet:
Install-Package MvcScaffolding
Agora já temos o MVCScaffolding instalado vamos criar uma classe para realizarmos o Scaffolding da mesma. Neste caso, aproveitando o gancho do MVC Summit vou criar uma classe palestra:
public class Palestra{
public int PalestraId { get;
set;
}
public string Titulo { get;
set;
}
public string Resumo { get;
set;
}
public DateTime Data { get;
set;
}
}
Criamos esta classe pois é ela que será utilizada para o Scaffolding, ou seja, vamos pedir para que o MVCScaffolding crie o controller, as views, e um contexto do Entity Framework para esta classe. É importante lembrar que antes de executar o comando de scaffolding é preciso compilar o projeto.Para executarmos o Scaffolding precisamos apenas do comando abaixo:
Scaffold Controller Palestra
Podemos reparar que como resultado do comando temos os arquivos criados e adicionados ao nosso projeto:
O controller já é criado com todas as actions de CRUD preparadas, inclusive já contendo uma referência para um container do EF 4. O contexto do EF que é criado utiliza as novas feastures de Code First, ou seja, não é preciso criar um arquivo EDMX nem nada do tipo.E pasmem que o banco de dados também será criado!Por padrão o DbContext criado irá utilizar uma instância padrão do SqlExpress que esteja instalada na máquina. Em um próximo post mostrarei como mudar isso.Agora já podemos executar nossa aplicação e teremos as actions no nosso controller, as views e a persistência já criados e implementados, sem nenhum esforço adicional.Abaixo podemos ver algumas imagens das views que foram geradas. Reparem que estas views possuem comportamentos, mesmo aqueles que são comportamentos de banco de dados.
E se você não acredita que o banco já está criado e os dados foram persistidos:
Bom, por enquanto é isso galera. Há muito mais coisas no MVCScaffolding do que pude mostrar nesse primeiro post. Mas como vocês podem imaginar, não vou parar por aqui. Em breve publicarei mais algumas informações sobre como trabalhar e tirar o melhor proveito do MVCScaffolding.Enquanto isso podem conferir o código fonte todo desta pequena aplicação gerada aqui no github.
Abraços, Vinicius Quaiato.