VB.NET - Aplicação de acesso a dados em 3 camadas - parte 1


Estou começando hoje o artigo no qual irei mostrar como você pode desenvolver uma aplicação com acesso a dados em 3 camadas no Visual Basic.NET/VB 2005, para tentar criar o hábito salutar de programar em camadas.

Não se faz isto por que é uma moda ou algo parecido, toma-se esta atitude para facilitar a vida, e não ficar gastando tempo refazendo coisas que já estão prontas ou tendo que ter um trabalhão só por que o cliente resolveu mudar um detalhe no requisito. Assim você pode usar o tempo que sobra para algo mais agradável. (Existem outras coisas interessantes na vida, além de programar é claro...)

Então, se você tem aquele hábito de programar usando a técnica one-button-click este artigo é para você.

Nota: A técnica one-button-click (nem sei se é assim que se escreve; é aquela na qual você coloca no formulário um botão e coloca nele o código, com centenas de linhas, que realiza uma centena de tarefas, basta clicar no botão.)

O assunto será coberto em 3 artigos assim divididos:

  1. Definição do sistema, da estrutura de dados, da estrutura da aplicação e da Camada de Apresentação
  2. Definição da Camada de Negócios
  3. Definição da Camada de Dados

vamos começando pelo item 1 que o meu tempo não esta sobrando...

Definição do sistema, da estrutura de dados, da estrutura da aplicação e da Camada de Apresentação

Neste artigo eu vou apresentar um sistema de Agenda que tem por objetivo controlar o cadastro de pessoas(clientes,contatos,etc...) permitindo as seguintes tarefas:

As informações que serão gerenciadas pela aplicação são:

O sistema será desenvolvido no Visual Studio .NET 2003 (.NET Framework 1.1) mas deve poder ser aberto pelo Visual Basic 2005 Express Edition (.NET Framework 2.0). Portanto você vai precisar de uma destas ferramentas para acompanhar este artigo. (Lembrando que o VB 2005 é grátis e pode ser baixado no link: Visual Basic 2005 Express)

Não iremos usar nenhum banco de dados relacional tradicional, ao invés, iremos persistir as informações em um arquivo XML chamado Agenda.xml  Desta forma você não terá que ter nenhum aplicativo de banco de dados instalado.

A estrutura do arquivo agenda.xml  que iremos criar será a seguinte :

- <NewDataSet>
- <Contatos>
  <Nome></Nome>
  <Endereco></Endereco>
  <Cidade></Cidade>
  <Estado></Estado>
  <CodPostal></CodPostal>
  <Telefone></Telefone>
  <EMail></EMail>
  </Contatos>
  </NewDataSet>

Sendo que todos os dados gerenciados são do tipo String.

A solução criada no VS.NET 2003/VB2005 será composta de 3 projetos conforme descritos a seguir:

  1. Solução AgendaNet - composta por 3 projetos.
  2. Projeto AgendaNET - Representa a camada de apresentação da aplicação; é composto pelos formulários : FrmInicio.vb, Agenda.vb e FrmNovaPessoa.vb
  3. Projeto CamadaDeDados - Representa a camada de dados da aplicação; é composto pelo arquivo AgendaDB.vb que contém os métodos para tratamento dos dados.
  4. Projeto CamadaDeNegocios - Representa a camada de negócios da aplicação; é composto pelo arquivo Pessoa.vb  que defina a classe Pessoa suas propriedades e métodos.

A seguir temos as figuras que exibem a estrutura da solução proposta já criada no VS.NET 2003 e migradas para o  VB 2005:

Estrutura Solução - VS.NET Estrutura Solução - VB 2005

Não iremos utilizar nenhum assistente, todas as funcionalidades serão implementadas via código.

A interface com usuário irá utilizar 3 formulários Windows Forms:

  1. FrmInicio.vb - Apresenta a tela de splash da aplicação
As propriedades do formulário são:
  • Name:FrmSplash
  • FormBorderStyle : FixedSingle
  • ControlBox: False
  • MaximizeBox: False
  • StartPosition : CenterScreen
  • Backcolor : white

Os componentes usados neste formulário são:

  • Label1 - Indica o nome do sistema
  • Label2 - Indica o nome da máquina
  • Label3 - Indica o nome do usuário
  • Label4 - Indica o idioma local usado
  • PictureBox1 - Exibe a imagem
    • Image - A imagem indicada
    • SizeMode = StretchImage
  • Timer1
  1. Agenda.vb - O formulário principal da aplicação, que exibe os dados cadastrados e permite ao usuário : consultar, cadastrar ou excluir dados.
Propriedades do formulário:
  • Name: FrmAgenda
  • Text: Agenda
  • FormBorderStyle : FixedSingle
  • KeyPreview : True

Controles usados no formulário:

  • DataGrid1 - exibe os dados
  • Panel1 - contém os controles TextBox
  • TextBox1,TextBox2,TextBox3,TextBox4,TextBox5,
    TextBox6,TextBox7 (Nome, Endereço,Cidade, Estado, Cód.Postal, Telefone e Email respectivamente)
  • Button1 - Novo
  • Button2 - Excluir
  • Button3 - Encerrar
  1. FrmNovaPessoa.vb - Usado para informar o nome de um novo cliente no cadastro.
Propriedades do formulário:
  • Name: FrmNovaPessoa
  • Text: Novo Contato
  • FormBorderStyle : FixedSingle

Controles usados no formulário:

  • TextBox1 - Nome
  • Button1 - Aceitar
  • Button2 - Cancelar
  • ErroProvider1
 

Como criar a estrutura da solução

Pode parecer simples para quem já conhece mas quem esta iniciando agora com o VB.NET pode ficar confuso com a estrutura da solução usada pois ela contém 3 projetos. A seguir uma breve explicação de como podemos criar este tipo de estrutura:

1-  Primeiro você deve iniciar o VB.NET  e criar uma nova Solução com o nome de AgendaNet. Indique a localização do projeto na pasta AgendaNet na caixa Location.

1.1  - A seguir altere o nome do formulário padrão form1.vb para Agenda.vb usando as configurações indicadas acima.

1.2  - Clique com o botão direito do mouse sobre o nome do Projeto e selecione a opção Add -> Add New Item

1.3  - Na janela Selecione Windows Forms e informe o nome : FrmInicio.vb usando as configurações indicadas acima.

1.4  - Repita o procedimento acima e inclua um novo formulário Windows com o nome de FrmNovaPessoa.vb usando as configurações indicadas acima.

2- A seguir clique com o botão direito do mouse sobre o projeto e no menu suspenso selecione a opção Add -> New Project

3- Na janela Add New Project inclua um novo projeto do tipo Class Library informando o nome de CamadaDeDados na caixa Name e a seguir, na caixa Location esteja certo de informar a localização deste arquivo na pasta AgendaNet, conforme figura abaixo:    

4- Repita o procedimento e inclua um novo projeto do tipo Class Library com o nome de CamadaDeNegocios na mesma localização do projeto.

Ao final, se você verificar as propriedades da solução deverá estar com a seguinte configuração:

Definindo as dependências dos projetos

Você não deve esquecer de definir as dependências entre os projetos de forma que possa acessar as classes que estão nos projetos que compõem a solução. Se você não fizer isto não conseguir ter acesso ao código dos projetos da solução.

As dependências estão assim definidas:

Projeto Dependência
AgendaNet CamadaDeNegocios
CamadaDeNegocios CamadaDeDados

Para efetuar esta operação clique sobre o nome da solução e selecione a opção Properties e a seguir expanda a caixa Commom Properties e marque a opção Project Dependencies. A seguir Selecione o Projeto e marque a opção de dependência conforme indicado na tabela acima. Abaixo temos as figuras representando estas operações:

Estamos apenas aquecendo as turbinas, no próximo artigo irei abordar a criação das funcionalidades da camada de Negócios - CamadaDeNegocios.

Acompanhe o próximo artigo  : VB.NET - Aplicação de acesso a dados em 3 camadas - parte 2

Até o próximo artigo VB.NET ...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti