Back-End

3 ago, 2018

Iniciando com C# – Parte 05: primeiro projeto ASP.NET MVC

Publicidade

Vamos criar um projeto para uma faculdade utilizando os conceitos que vimos aqui?

Antes de criarmos um projeto que efetue consultas em uma base de dados, é importante sabermos que há diversos tipos de modelagem que podem ser utilizadas:

  • Database First (Database(.mdf)> Model > Code): criamos primeiro as tabelas no nosso banco, que serão convertidas para uma modelagem e, posteriormente, para o código;
  • Model First (Model (.edmx)> Code > Database): criamos primeiro o nosso modelo de dados, que é convertido para classes e para uma base de dados;
  • Code First (Code > Database): criamos primeiro as classes que serão nossas entidades do banco, e elas são transportadas para a base de dados depois.

Para nosso projeto, faremos uso do Entity Framework, que torna mais fácil o mapeamento dos elementos do nosso banco de dados com nossa aplicação orientada a objetos. Alguns dos conceitos que ele cobre:

  • ORM (Object Relational Mapping): mapeamento (praticamente um espelhamento) do que existe no banco para objetos e classes;
  • Data Annotation: marcações que definem configurações e comportamentos para propriedades e classes.
  • DbContext: classe que mapeia as entidades do banco. Permite que façamos consultas e manipulemos o conteúdo do banco.
  • Migrations: atualiza o banco baseado nas alterações efetuadas.

Passo a passo:

1 – Criar ASP.NET Web Application:

Na página seguinte, serão abertos mais detalhes sobre a solução a ser criada. Como faremos do zero, selecionem Empty > MVC. Não precisam marcar Host in the cloud, pois não armazenaremos nossa aplicação na nuvem neste momento.

Abaixo teremos a visão da nossa Solution Explorer após a criação do projeto, com as Models, Views e Controllers:

2 – Adicionar referência ao Entity.

Para fazermos isso, devemos ir em Tools > NuGet Package Manager > Package Manager Console.

Um terminal irá abrir logo em seguida. Digitaremos esse comando:

Install-Package EntityFramework

Feito isso, teremos instalado o Entity em nosso projeto! ?

3 – Alterar Web.config.

É nessa hora que determinaremos em qual banco de dados armazenaremos os nossos registros.

Iremos alterar o aquivo Web.config, conforme abaixo:

Esse arquivo está no formato .xml, composto por várias tags que se abrem <dessaforma> e se fecham </dessaforma>.

Adicionaremos uma nova tag após o fechamento da tag configSections (</configSections>), e antes da abertura da tag appSettings (<appSettings>):

<connectionStrings>
<add name=”EFConnectionString” connectionString=”Data Source=suamaquinaaqui;Language=Brazilian;Initial Catalog=Universidade;Integrated Security=True” providerName=”System.Data.SqlClient” />
</connectionStrings>

No Data Source, vocês precisam colocar o nome do computador de vocês. O Initial Catalog é o nome do banco que será usado. Não é necessário colocar uma base existente, pois o Entity criará uma nova para nós caso ela não exista. No nosso caso, como criaremos um aplicativo para uma Universidade, coloquei o nome do banco Universidade.

4 – Criação de Models:

Na nossa aplicação, teremos três entidades: Universidade, Curso e Aluno. Criamos uma Model para cada uma delas:

Para a classe Universidade, adicionaremos as seguintes propriedades:

Universidade.cs

Para o Entity Framework reconhecer a chave primária da tabela, adicionamos a propriedade int UniversidadeID, criamos uma propriedade virtual ICollection (similar à lista) do tipo Curso para podermos acessar informações dos cursos que aquela universidade possui dentro do nosso programa, mas sem criarmos uma coluna deles na tabela de Universidade (teremos uma tabela que será responsável por isso – por isso utilizamos o virtual!)

Curso.cs

Criamos a propriedade que será a chave primária da nossa tabela, CursoID. Também adicionamos uma propriedade int chamada UniversidadeID. Essa propriedade será nossa chave estrangeira com a Universidade, que dirá à qual universidade aquele curso está inserido. Para o Entity reconhecer que esta é uma chave estrangeira, adicionamos uma propriedade virtual do tipo Universidade e adicionamos um Data Annotation acima, dela que diz qual será a propriedade que será a chave estrangeira (no nosso caso, a UniversidadeID).

Aluno.cs

Criamos a propriedade que será a chave primária da nossa tabela, AlunoID. Também adicionamos uma propriedade int chamada CursoID. Essa propriedade será nossa chave estrangeira com o Curso, que dirá à qual curso aquele aluno está inserido. Criamos, como feito na classe anterior, a propriedade virtual Curso e adicionamos o Data Annotation.

5 – Criação de pasta DAO.

Criamos uma pasta que será responsável por ministrar nosso acesso ao banco de dados, (Data Access Object). Dentro dela, adicionaremos a classe EFContext, ficando com uma estrutura semelhante à esta:

Nessa classe, herdaremos as propriedades da DbContext. O seu construtor, EFContext(), irá herdar o construtor da classe base passando como parâmetro o nome da nossa Connection String que criamos no passo 3.

Adicionamos quais serão as entidades que serão criadas no banco (Universidade, Curso e Aluno) e sobrescrevemos o método da classe base OnModelCreating. Mas por que sobrescrevê-lo? Porque queremos que quando nosso model for criado, ele não seja convertido para o plural. Se não fizermos isso, o Entity criará nossas entidades todas convertendo para o plural em inglês  – Cursoes, Alunoes – e não queremos isso! Por isso, removemos essa convenção.

6 – Add Controller.

Agora iremos adicionar as Controllers do nosso sistema, que irão manipular as informações recebidas e efetuar a lógica apropriada do nosso aplicativo. Iremos adicionar uma para cada Model:

Selecionamos a model que queremos, a classe contexto (EFContext) e o nome da Controller.

No final, teremos a estrutura a seguir:

7 – Vamos efetuar nossas alterações no banco?

Para implantarmos tudo isso no banco, executaremos os comandos a seguir no Package Manager Console do NuGet:

Enable-Migrations
Add-Migration Initial
Update-Database

Se verificarmos nosso banco agora, estará assim:

8 – Vamos testar nossa aplicação?

Olhem como ficou no nosso banco:

9 – E se eu quiser adicionar alguma coluna nova?

1 – Adicionamos a propriedade na classe desejada;

2 – Executamos no Package Manager Console os seguintes comandos:

Add-Migration Adicao-Coluna
Update-Database

E pronto!

Esse foi o fim da nossa série “Iniciando com C#“, pessoal!

Espero que tenham gostado e, se tiverem alguma dúvida ou sugestão, podem me contatar!

Obrigada!

A solução criada está no GitHub, aqui!

Referência