Desenvolvendo um projeto Loja em C#.Net


Esse é o primeiro artigo de uma série onde desenvolveremos o projeto Loja em C#.Net para demonstrar o uso do desenvolvimento em camadas. Veremos quais são elas:
  • Model Layer (ML, é a camada de modelo);
  • Data Access Layer (DAL, é a Camada de acesso a Dados);
  • Business Logic Layer (BLL, é a Camada de Regras de Negócio);
  • User Interface (UI, é a Camada de Interface do Usuário). 
Cada camada herdará o conteúdo das demais, a grande vantagem de usar esse procedimento é organizar melhor o código, dando facilidade para outro programador ou colega de trabalho entender o seu projeto sem necessidade de fazer muitas perguntas sobre ele.


A figura a seguir ilustra o conceito do desenvolvimento em camadas.




Usaremos o banco de dados SQL Server que acompanha o Visual Studio, vamos aproveitar a oportunidade para explorar as stored procedures e rever alguns comandos de SQL.


Criando o banco de dados Loja

Abra o Visual Studio, e vá ao Menu View e clique em SQL Server Object Explorer como mostra na figura a seguir:


O painel será aberto do lado esquerdo da tela, ele lista os banco de dados que o Visual Studio está integrado, expanda a opção referente ao SQL Server para ver a sua instância, em seguida, expanda a instância e assim terá três opções "Databases", "Security", e "Server Objects". Clique com o botão direito do mouse em Databases, e no menu escolha "Add new Database" como mostra na figura a seguir:


Dê o nome de Loja a base dados e clique em OK, conforme mostra a figura a seguir:




A base de dados é criada, e pode ser visualizada dentro da opção Databases, veja:




Com a base de dados pronta, podemos começar criando as tabelas. Clique com o botão direito na base de dados Loja, escolha a opção New Query.




O Visual Studio irá disponibilizar uma área para uso de comandos SQL para criarmos as tabelas, e as store procedures. Copie o script SQL a seguir para criar a tabela clientes:

 CREATE TABLE [CLIENTES]  
 (  
      [CODIGO] [INT] IDENTITY (1,1) NOT NULL,  
      [NOME] [VARCHAR] (100),  
      [EMAIL] [VARCHAR] (100),  
      [TELEFONE] [VARCHAR] (80),  
      CONSTRAINT [PK_CLIENTES] PRIMARY KEY CLUSTERED  
      (  
           [CODIGO]   
      )ON [PRIMARY]  
 ) ON[PRIMARY]  
 GO  

Depois de digitar o script clique em Execute para o Visual Studio executar o comando e confirmar que a Query foi executada com sucesso, conforme mostra a figura a seguir:


Até aqui você já criou a base de dados, e a tabela clientes, segue o script para criação da tabela Produtos:

 CREATE TABLE [PRODUTOS]  
 (  
      [CODIGO] [INT] IDENTITY (1,1) NOT NULL,  
      [NOME] [VARCHAR] (100),  
      [PRECO] DECIMAL(10,2),  
      [ESTOQUE] [INT],  
      CONSTRAINT [PK_PRODUTOS] PRIMARY KEY CLUSTERED  
      (  
           [CODIGO]  
      ) ON [PRIMARY]  
 ) ON [PRIMARY]  
 GO  

Próximo script para criar a tabela Vendas:

 CREATE TABLE [VENDAS]  
 (  
      [CODIGO] [INT] IDENTITY (1,1) NOT NULL,  
      [DATA] [DATETIME],  
      [QUANTIDADE] [INT],  
      [FATURADO] BIT,  
      [CODIGOCLIENTE] [INT],  
      [CODIGOPRODUTO] [INT],  
      CONSTRAINT [PK_VENDAS] PRIMARY KEY CLUSTERED  
      (  
           [CODIGO]  
      ) ON [PRIMARY],  
      CONSTRAINT [FK_CODIGO_CLIENTE] FOREIGN KEY  
      (  
           [CODIGOCLIENTE]  
      ) REFERENCES [CLIENTES] ( [CODIGO] ),  
      CONSTRAINT [FK_CODIGO_PRODUTO] FOREIGN KEY  
      (  
           [CODIGOPRODUTO]  
      ) REFERENCES [PRODUTOS] ( [CODIGO] )  
 ) ON [PRIMARY]  
 GO  

Agora as tabelas já foram criadas, iremos criar a store procedure responsável para inserir um registro na tabela clientes, digite o script a seguir:

 USE Loja  
 GO  
 CREATE PROCEDURE [dbo].[insere_cliente]  
      @codigo int output,  
      @nome varchar(100),  
      @email varchar(100),  
      @telefone varchar(80)  
 AS  
 INSERT INTO CLIENTES (nome, email, telefone)  
 VALUES (@nome, @email, @telefone)  
 SET @codigo = (SELECT @@IDENTITY)  

Próximo script cria a store procedure para alterar um registro na tabela clientes:

 USE Loja  
 GO  
 CREATE PROCEDURE [dbo].[altera_cliente]  
      @codigo int,  
      @nome varchar(100),  
      @email varchar(100),  
      @telefone varchar(80)  
 AS  
 UPDATE Clientes SET nome = @nome, email = @email, telefone = @telefone WHERE codigo = @codigo  

Script para excluir um registro na tabela clientes:

 USE Loja  
 GO  
 CREATE PROCEDURE [dbo].[exclui_cliente]  
      @codigo int  
 AS  
 DELETE FROM Clientes WHERE codigo = @codigo  

O próximo e último script é da store procedure para selecionar os dados existentes na tabela clientes:

 USE Loja  
 GO  
 CREATE PROCEDURE [dbo].[seleciona_cliente]  
      @filtro varchar(100) = NULL  
 AS  
 BEGIN  
      IF @filtro IS NULL  
           SELECT * FROM Clientes  
      ELSE  
           SELECT * FROM Clientes  
           WHERE nome LIKE '%' + @filtro + '%'  
           OR email LIKE '%' + @filtro + '%'  
           OR telefone LIKE '%' + @filtro + '%'  
 END  

Se não houve problema algum na execução dos comandos, vá até o painel SQL Server Object Explorer, clique com o botão direito na base de dados Loja e clique em Refresh, isso irá atualizar as informações no painel.


A figura a seguir mostra que as tabelas e as store procedures foram criadas:



No próximo artigo criaremos o projeto no Visual Studio e implementaremos a camada modelo, até mais.

Tiago Sousa

Sou Desenvolvedor Web Full-Stack com ênfase em Java, atuando no mercado de TI há 15 anos. Ao longo da carreira, adquiri conhecimentos sólidos e abrangentes em diversas tecnologias.