ASP .NET MVC 4 - Code First com EF 5 usando o recurso MvcScaffolding
Hoje vamos criar uma aplicação ASP .NET MVC4 usando o Entity Framework 5 usando o recurso da tecnologia Code First onde iremos criar os controladores e views usando o recurso MvcScaffolding.
A ASP .NET MVC 4 é o sucessor de MVC3, sendo um framework para a construção de aplicações escaláveis e baseadas em padrões da web utilizando padrões de projeto bem estabelecidas e o poder do ASP.NET e do NET Framework.
O Entity Framwork Entity (EF) é um mapeador Objeto-Relacional (OR/M) que permite aos desenvolvedores NET trabalhar com dados relacionais usando o domínio de objetos específicos.. Ele elimina a necessidade da maioria do código de acesso a dados que os desenvolvedores geralmente precisam escrever.
O Code -Frist é um recurso que permite descrever um modelo usando classes Visual Basic ou C# sendo uma nova metodologia disponível a partir da versão 4.1 do EF.
O MvcScaffolding é um pacote para ASP.NET que é instalado via NuGet usando o comando 'MvcScaffolding Install-Package' e que permite criar de forma automática a estrutura completa para controladores e views.
Recursos usados neste artigo:
Abra o Visual Studio Express 2012 for Web e no menu File clique em New Project;
Selecione o template Visual Basic -> Web -> ASP .NET MVC4 Web Application e informe o nome Tarefas e clique no botão OK;
A seguir selecione o template Internet Application e o engine Razor e clique no botão OK;
EM seguida vamos instalar o SQL Server Compact Edition usando Nuget. Para isso no menu TOOLS clique em Library Package Manager e a seguir em Package Manager Console;
Na janela do Package Manager Console digite o comando : Install-Package EntityFramework.SqlServerCompact
Dessa forma podermos usar o SQL Server Compact com o Entity Framework 5.
Vamos agora instalar outros componentes necessários ao nosso projeto.
Ainda na janela Package Manager Console digite o comando : Install-Package EntityFramework
Isso irá instalar o Entity Framework 5 no projeto se o mesmo ainda não estiver instalado.
Agora vamos usar o recurso MvcScaffolding digitando na janela do Package Manager Console o comando: Install-Package MvcScaffolding
Vamos definir agora as classes do nosso domínio na pasta Models;
Clique com o botão direito do mouse sobre a pasta Models e a seguir clique em Add-> Class;
Informe o nome Tarefa.vb e digite o código abaixo que define a classe Tarefa:
Imports System.ComponentModel.DataAnnotationsImports System.ComponentModel.DataAnnotations.Schema
< Key> _Public Property TarefaId() As Integer Public Property Nome() As String Public Property Descricao() As String Public Property StatusId() As System.Nullable(Of Integer) < ForeignKey("StatusId")> _Public Overridable Property Status() As Status Public Overridable Property Notas() As ICollection(Of Nota) Public Property CriadaEm() As System.Nullable(Of DateTime) Public Property ModificadaEm() As System.Nullable(Of DateTime) End Class
|
Repita o procedimento e crie também a classe Nota:
Imports System.ComponentModel.DataAnnotations
< Key> _Public Property NotaId() As Integer Public Property Descricao() As String Public Property TarefaId() As System.Nullable(Of Integer) Public Property CriadEm() As System.Nullable(Of DateTime) Public Property ModificadaEm() As System.Nullable(Of DateTime) End Class |
E finalmente a classe Status:
Imports System.ComponentModel.DataAnnotations
< Key> _ Public Property StatusId() As IntegerPublic Property Nome() As String End Class |
Nosso domínio irá gerenciar tarefas definindo o seu status e definindo observações associadas a cada tarefa.
Agora que já temos os recursos instalados vamos criar os controladores digitando na janela Package Manager Console o comando : Scaffold Controller Tarefa - Repository
A seguir repita o comando para a classe Nota e para a classe Status conforme mostrado abaixo pelos comandos:
A palavra -Repository indica que eu vou efetuar o acesso aos dados usando um repositório.
Observe que são criados de forma automática na pasta Controllers os respectivos Controladores e na pasta Views a respectiva pasta com suas Views;
E Pronto ! já temos tudo preparado para rodar a aplicação.
Só precisamos fazer um pequeno ajuste para podermos acessar diretamente os recursos instalados.
Abra o arquivo _Layout.vbhtml na pasta Views/Shared e altere o seu conteúdo conforme mostrado a seguir:
Agora é só rodar...
Não acredita !!!
Então rode o projeto e você irá ver a janela principal
Acessando o link para Tarefas teremos um link para criar um nova tarefa visto que ainda não temos nada cadastrado.
Clicando no Link teremos a página abaixo onde podemos cadastrar as nossas tarefas:
O mesmo irá ocorrer com os links para Notas e Status.
Abaixo vemos a janela exibindo algumas informações para Status:
Se você estiver se perguntando onde as informações são armazenadas, a resposta é que elas são armazenadas no banco de dados e nas tabelas que o Code-First criou de forma automática com base nas classes POCO.
Selecione a pasta App_Data e n a janela Solution Explorer clique no ícone Show All Files;
Clique duas vezes sobre o item Tarefas.Models.TarefasContext.sdf e você verá na janela DataBase Explorer o banco de dados SQL Server Compact e as tabelas Notas, Status e Tarefas conforme mostra a figura abaixo:
Vamos abrir a tabela Status e verificar se os dados que cadastramos estão armazenados na tabela.
Clique com o botão direito sobre a tabela Status e selecione Show Table Data;
Voilá.. temos os dados armazenados conforme esperado.
Pois é isso aí...
Você pode alterar a aplicação criada à vontade melhorando-a e incrementando os seus recursos mas o que quis mostrar foi como todo o trabalho de geração das classes para controladores e views e como a geração do banco de dados e das tabelas pode ser feito de forma automática com os recursos da ASP .NET MVC e da plataforma .NET.
Mais produtividade e mais qualidade de vida com menos probabilidade de erros.
Mar 3:20
Depois entrou numa casa. E afluiu outra vez a multidão, de tal modo que nem podiam comer.Mar 3:21
Quando os seus ouviram isso, saíram para o prender; porque diziam: Ele está fora de si.Mar 3:22
E os escribas que tinham descido de Jerusalém diziam: Ele está possesso de Belzebu; e: É pelo príncipe dos demônios que expulsa os demônios.Mar 3:23
Então Jesus os chamou e lhes disse por parábolas: Como pode Satanás expulsar Satanás?Mar 3:24
Pois, se um reino se dividir contra si mesmo, tal reino não pode subsistir;Mar 3:25
ou, se uma casa se dividir contra si mesma, tal casa não poderá subsistir;Referências: