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.