ASP .NET MVC - Usando o Code First MvcScaffolding package em seu projeto
Neste artigo eu vou mostrar como você pode usar o pacote MvcScaffolding para criar toda a estrutura de sua aplicação ASP .NET MVC a partir do Model e gerar as classes para o Controller e para as Views.
Dentre as muitas melhorias que a ASP .NET MVC 3 (já estamos na MVC 5) o novo pacote chamado MvcScaffolding permite automatizar tarefas comuns no desenvolvimento de uma aplicação ASP .NET MVC gerando toda a estrutura como Controllers e Views com base no seu Model bem como o banco de dados e as tabelas e permitindo que você edite os templates criados e os altere conforme suas necessidades.
Alguns recursos do pacote MvcScaffolding:
Suporte a projetos C# e VB NET;
Suporte a view engines Razor e ASPX;
Permite a personalização dos templates gerados;
Geração do banco de dados SQL Server via Code-First;
Vamos ver então o recurso funcionando para você entender melhor.
Abra o Visual Web Developer 2010 Express Edition e no menu File clique em New Project;
Selecione o template Internet Application e engine ASPX e tecle em OK:
Será criado um projeto ASP .NET MVC com uma estrutura pronta para ser usada.
Vamos iniciar definindo o nosso Model.
Clique com o botão direito sobre a pasta Models e a seguir clique em Add-> Class;
Informe o nome Time.cs e a seguir digite o código abaixo para definir a classe Time:
using System;using System.ComponentModel.DataAnnotations;namespace MvcScaffolding_Demo.Models{ public class Time { public int TimeId { get; set; } [Required] public string Nome { get; set; } public string cidade { get; set; } public DateTime DataFundacao { get; set; } } } |
Salve o projeto e compile-o acionando o menu Debug -> Build MvcScaffolding_Demo;
Vamos agora instalar o pacote MvcScaffolding no projeto usando Package Manager Console;
No menu Tools clique em Library Package Manager e a seguir em Package Manager Console;
O Package Manager Console será aberto. Digite o seguinte comando: Install-Package MvcScaffolding e tecle ENTER;
Vemos abaixo resultado da execução deste comando:
Você também pode acionar o menu Library Package Manager -> Manage Nuget Packages for Solution;
Selecione o pacote MvcScaffolding e clique no botão Install;
A próxima janela solicita a sua confirmação para a instalação e sua confirmação para o recurso Entity Framework que também será instalado.
Gerando o Controlador e as Views a partir do Model
O próximo passo é criar toda estrutura para as operações CRUD tanto nos controllers como nas Views para o nosso Model usando o seguinte comando do Scanffolding no Package Manager Console:
> Scaffold Controller Time
Abaixo vemos o resultado da execução do comando:
Note que foram criados os seguintes recursos:
Controlador - TImeController.cs na pasta Controllers
Views - Create.aspx, Delete.aspx, Details.aspx, Edit.aspx, Index.aspx e CreateOrEdit.aspx na pasta Views/Time
O Contexto do banco de dados MvcScaffoldingDemoContext.cs na pasta Models (usando pelo Entity Framework para gerar o banco de dados)
Já podemos ver o nosso projeto funcionando, mas antes abra o arquivo Site.Master na pasta Shared e altere o código incluindo a linha de código indicada abaixo:
Vamos executar o projeto...
Na página principal temos a opção Times. Clicando nesta opção iremos acionar a view Index.aspx da pasta Time;
A página abaixo será apresentada visto que ainda não temos nenhum informação gravada na tabela.
Clique no link Create New;
Clicando no link Create New teremos a página Create onde podemos informar o nome, cidade e data de fundação e clicar no botão Create:
Clicando no botão Create teremos a exibição das informações na página Index com as opções para Editar, ver os detalhes e deletar:
Podemos dessa forma realizar as operações CRUD para gerenciamento e persistência dos dados do nosso Model na aplicação ASP .NET MVC.
Ou seja o pacote MvcScanffolding criou toda estrutura, o banco de dados e a tabela usando o Code-First em nosso SQL Express.
O banco de dados MvcScaffolding_Mac.Models.MvcScaffoldingMacContext.mdf foi gerado na pasta App_Data;
Usando SQL Server Compact
Mas e se você não tiver o SQL Express Instalado ???
Sem problema, você pode mudar
rapidamente e usar o novo SQL Server Compact sem ter que fazer nenhum
download ou instalação. Basta digitar o seguinte comando no
Package Manager
Console:
Install-Package EFCodeFirst.SqlServerCompact -Version 0.8.8482.1
Abaixo vemos o resultado:
Será criada a pasta App_Start no seu projeto contendo o arquivo SQLCEEntityFramework.cs que configura o runtime para usar o SQL CE.
Usando um Repositório
E se você desacoplar o seu código criando um novo controlador ?
Sem problema basta digitar o comando abaixo na janela Package Manager Console::
Scaffold Controller Time -Repository -Force
Abaixo vemos o resultado :
O atributo -Force sobrescreve os arquivos que já foram criados no projeto.
Observe no projeto que foi criado o arquivo TimeRepository.cs na pasta Models e a interface ITimeRepository neste arquivo:
Agora o controlador TimeController somente irá ler e escrever dados usando o ITimeRepository.
Podemos concluir que esta ferramenta é uma verdadeira ajuda ao desenvolvedor que pode automatizar assim tarefas repetitivas ganhando tempo para coisas mais importantes.
Pegue o projeto completo aqui: MvcScaffolding_Mac.zip
1Pe 4:7
Mas já está próximo o fim de todas as coisas; portanto sede sóbrios e vigiai em oração;1Pe 4:8
tendo antes de tudo ardente amor uns para com os outros, porque o amor cobre uma multidão de pecados;1Pe 4:9
sendo hospitaleiros uns para com os outros, sem murmuração;1Pe 4:10
servindo uns aos outros conforme o dom que cada um recebeu, como bons despenseiros da multiforme graça de Deus.Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#