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:

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:

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:


José Carlos Macoratti