VB 2008 - Criando uma aplicação completa com LINQ To SQL - I


Este artigo mostra como criar uma aplicação completa no VB 2008 Express Edition usando o  LINQ to SQL. Quando eu digo 'aplicação completa' estou querendo dizer que na aplicação foram implementadas as principais funcionalidades para manutenção de dados como : alterar, incluir, excluir e buscar registros na base de dados.

Para facilitar vou utilizar o banco de dados Northwind.mdf e usar a tabela Shippers cuja estrutura é mostrada a seguir:

Nota: Você pode fazer o download dos scripts SQL para gerar o banco de dados Northwind.mdf no sítio: http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en

Como podemos ver a tabela Shippers possui os campos: ShipperID, CompanyName e Phone , sendo que o campo ShipperID é a chave primária do tipo Identity (auto-incremental). Desta forma você já tem o banco de dados e a tabela prontos para usar.

Nota: Nesta aplicação eu vou usar o texto na língua inglesa de forma que você se habitue com os termos técnicos básicos.

Meu objetivo é mostrar como incluir , alterar, excluir e consultar dados da tabela Shippers usando LINQ to SQL.

Eu vou usar stored procedures para interagir com o banco de dados , portanto teremos que criar as seguintes stored procedures:

Você vai precisar ter instalado o VB 2008 Express Edition. Se não tiver pegue aqui: Visual Basic 2008 Express Edition

Vamos começar criando um projeto

Abra o VB 2008 Express e crie um novo projeto no menu FIle->New Project do tipo Windows Forms Application com o nome VB_Linq1 (ou algo mais sugestivo);

A seguir vamos definir uma conexão com o banco de dados Northwind.mdf se a conexão ainda não existir no seu ambiente faça o seguinte:

1- No menu View , selecione DataBase Explorer e clique com o botão direito do  mouse sobre o item Data Connections e selecione Add Connection...

2- Na janela Add Connection Clique no botão Browse e selecione o banco de dados Northwind.mdf a partir do local onde você o instalou e clique no botão Abrir;

Após realizar a conexão com o banco de dados Norhtwind, o mesmo deverá aparecer na janela DataBase Explorer. Localize o banco de dados Norhtwind e expanda os seus objetos. Selecione o objeto Stored Procedures e clique com o botão direito do mouse selecionando a opção Add New Stored Procedure.

Será aberto um editor onde vamos digitar o texto das nossas stored procedures. Como exemplo eu vou mostrar como criar a stored procedure AddShippers. Digite o código , conforme abaixo e clique no botão Save.

Nota: A estrutura da Stored Procedure(SP) é a seguinte :

1- Cria a SP chamada AddShippers usando o comando CREATE PROCEDURE

3- Cria os parâmetros de entrada: CompanyName e Phone

4- Define a instrução SQL que será executada. No caso a inclusão de dados na tabela Shippers via INSERT INTO.

Para criar as outras stored procedures repita o procedimento anterior. Veja a seguir o código referente a cada uma delas:

DeleteShippers
CREATE PROCEDURE DeleteShippers
(
  @ShipperID int
)  
AS
DELETE FROM Shippers WHERE ShipperID = @ShipperID
ListShippers
CREATE PROCEDURE ListShippers
AS
SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers
GO
SearchShippers
CREATE PROCEDURE SearchShippers
(
  @companyName nvarchar(40)
)
AS
Select * from Shippers WHERE CompanyName like @Companyname
UpdateShippers
CREATE PROCEDURE UpdateShippers
(
    @ShipperID int,
    @CompanyName nvarchar(40),
    @Phone nvarchar(24)
)
AS
UPDATE dbo.Shippers SET [CompanyName] = @CompanyName, [Phone] = @Phone
WHERE ShipperID = @ShipperID;

Incluindo a referência ao LINQ To SQL

Para poder usar o LINQ To SQL usando o descritor visual temos que incluir uma referência no projeto,  para isso usamos o template LINQ To SQL Classes;

No menu Project opção Add New Item selecione na janela Templates o template LINQ to SQL Classes alterando o nome para Shippers.dbml (você pode usar qualquer nome);

Neste momento será exibida a janela do Descritor Objeto Relacional. Expanda os objetos do banco de dados Northwind.mdf e selecione a tabela Shippers, arraste e solte-a na janela Object Relational Designer;

A seguir arraste e solte cada uma das stored procedures criadas para a janela do Object Relational Designer, no panel Methods (se ele não estiver visível clique com o botão direito sobre o descritor e selecione Show Methods Pane);

Vemos acima a classe Shipper e os métodos criados no descritor LINQ. Se espiarmos o descritor objeto Relacional iremos verificar que foi criado um objeto ShippersDataContext do tipo DataContext que contém as informações da conexão e do mapeamento entre o banco de dados e as classes de entidades criadas.

O DataContext é a fonte de todas as entidades mapeadas sobre a conexão do banco de dados e efetua o tratamento das alterações feitas para todas as entidades mantendo um cache de entidades que garantem que as entidades retornadas mais que uma vez são representadas usando a mesma instância de objetos.

Então já temos tudo pronto:

- O banco de dados Northwind.mdf e a tabela Shippers;
- As stored procedures que irão realizar as operações de acesso e manutenção dos dados;
- O Mapeamento Objeto Relacional usando LINQ To SQL onde já temos todas entidades mapeadas;

O que esta faltando ???

  1. - A camada de negócio - BAL - através da qual iremos realizar as operações de manutenção da nossa tabela Shippers;
  2. - A interface da aplicação onde iremos interagir com o usuário;

Na segunda parte do artigo vou criar a camada de negócios contendo os métodos necessários a manutenção dos dados da aplicação.

Acompanhe : VB 2008 - Criando uma aplicação completa com LINQ To SQL - II

Até mais...


José Carlos Macoratti