Design Patterns “Repository e MVC” – Parte 1


Nesse artigo gostaria de compartilhar a forma prática de utilização do padrão de projeto Repository, muito utilizado para separação da camada lógica da camada de acesso a dados. Aproveitando, uniremos os recursos do Repository ao do MVC para mostrara facilidade na implementação e no reaproveitamento de código.

Sendo assim, começaremos nossa aplicação pelo modelo do banco de dados que será utilizado.

Para os exemplos gerados nesse artigo estou utilizando:

Visual Studio 2010

.NET Framework 4.0

Entity Framework

LINQ

Sql Server

ASP.NET MVC 4 Web Application

Razor

 

Gerando o Banco de Dados

Abra o Sql Server Management Studio e crie o banco de  dados para nossa aplicação como mostra a imagem01.

1
Imagem 01 – Criando o Banco de Dados da aplicação.

Em “New Database” o nome dado a nossa base será MVC, após digitar o nome, clique em OK como mostra a imagem 02.

2
Imagem 02 – Banco de dados nomeado como MVC.

Com o Banco de Dados criado, abra uma nova janela clicando em “New Query” e utilize o script CREATE TABLE a seguir:

 

CREATETABLE [Usuario](
     [IdUsuario] [bigint] IDENTITY(1,1)NOTNULL,
     [NomeUsuario] [varchar](50)NOTNULL,
     [EmailUsuario] [varchar](50)NOTNULL,
     [Login] [nchar](15)NOTNULL,
     [Senha] [nchar](15)NOTNULL
    
    
CONSTRAINT [PK_Usuario] PRIMARYKEYCLUSTERED
(
     [IdUsuario] ASC
)WITH (
     PAD_INDEX=OFF,
     STATISTICS_NORECOMPUTE=OFF,
     IGNORE_DUP_KEY=OFF,
     ALLOW_ROW_LOCKS=ON,
     ALLOW_PAGE_LOCKS=ON)ON [PRIMARY]
)ON [PRIMARY]

 

Antes de rodar o comando, certifique-se de que o banco selecionado é o MVC, como mostra a imagem 03.

3
Imagem 03 – Script executado no Banco de dados MVC.

Com o Banco de Dados e a Tabela criada, precisamos de pelo menos dois registros na tabela, conforme script a seguir:

INSERTINTO [Usuario]
([NomeUsuario]
,[EmailUsuario]
,[Login]
,[Senha])
VALUES
('João Marcos'
,'contato@tilosofia.com.br'
,'jmsaka'
,'12345')

INSERTINTO [Usuario]
([NomeUsuario]
,[EmailUsuario]
,[Login]
,[Senha])
VALUES
('Aderbal Lacerda'
,'aderbal@gmail.com'
,'aderb'
,'ABC')

 

Com os dados inseridos, podemos continuar a preparação da nossa aplicação.

 

Gerando a Aplicação

No visual studio 2010, selecione o projeto ASP.NET MVC 4 Web Application e nomeie para MVCRepoApp e clique em “OK” como mostra a imagem 04.

4
Imagem 04 - Projeto ASP.NET MVC 4 Web Application.

Na janela “New ASP.NET MVC 4 Project” selecione o template “Basic” como mostra a imagem 05.

 

5
Imagem 05 - Projeto ASP.NET MVC 4 com template Basic.

Repare como ficou a estrutura de pastas na Solution Explorer com as camadas Model, View, Controller como mostra a imagem 06.

6
Imagem 06 – Model, View, Controller na composição do projeto MVCRepoApp.

Com a estrutura padrão estabelecida, vamos utilizar o Entity Framework para mapear nossa tabela de usuários e prover o objeto e seus recursos que facilitarão nossa implementação.

Para isso, realize as seguintes etapas:

Vá até a janela Solution Explorer, clique com o botão direito no projeto MVCRepoApp e escolha Add -> New Item.

Na janela que se abrirá “Add New Item – MVCRepoApp” selecione a opção “Data” em “Installed Templates” e a primeira opção “ADO.NET Entity Data Model” e coloque o nome de MVC.edmx conforme imagem 07.

7
Imagem 07 – inclusão do Entity Data Model

 

Na janela que se abrirá você estará na etapa “Choose Model Contents”, clique em “Generate from Database” (pois, nesse caso, já temos a tabela e a entidade do banco que será reconhecida automaticamente) e em seguida clique em Next conforme imagem 08.

 

8
Imagem 08 – opção “Generate from Database” selecionada.

 

Na etapa “Choose your data Connection” clique em “New Connection” e selecione “Microsoft SQL Server” e depois clique em “Continue” conforme imagens 09 e 10:

 

9
Imagem 09 – Seleção de nova conexão clicando em “New Connection”.

10
Imagem 10 – Seleção do nosso Data Source Microsoft SQL Server

Em “Connection Properties” informe os dados (Server Name, Authentication Mode, Select or enter a database name) para acesso conforme imagem 11.

 

11
Imagem 11 – Connection Properties

Após preencher os dados, testar a conexão e clicar em “OK”, a tela “Entity Data Model” deverá estar preenchida conforme imagem 12.

12
Imagem 12 - Entity Data Model após estabelecer conexão.

Na tela seguinte será necessário escolher os objetos que serão mapeados, no caso desse artigo somente a tabela Usuários como mostra a imagem 13.

13
Imagem 13 – Seleção do objeto que será mapeado.

Finalizando essa etapa e clicando em “Finish”, o arquivo MVC.edmx será exibido como mostra a  imagem 14.

14
Imagem 14 – Arquivo MVC.edmx gerado.

Com o banco de dados definido e mapeado encerramos a primeira parte, onde o foco foi direcionado principalmente para questões teóricas e preparação inicial da nossa aplicação.

 

Conclusão

Nesse artigo iniciamos apenas a estrutura do nosso projeto de forma que esteja preparado para que o design pattern Repository possa ser apresentado junto com a estrutura da aplicação em MVC.


 

Sobre o Autor

João Marcos Sakalauska, 32 anos, é Analista de Sistemas e atua a mais de 10 anos na área de TI.
Sócio proprietário na empresa IT Solution (http://www.itsolution.com.br/), prestando serviços de consultoria atuando como Analista de Sistemas em projetos que utilizam as tecnologias VB6, .NET e Sql Server.

E-mail: www.lucianopimenta.net

The Club - O Maior Clube de programadores do Brasil