Visual Basic .NET   - Criando uma aplicação Windows Completa: Locadora de Filmes - Parte 1


Atendendo milhares de pedidos resolvi mostrar como você pode desenvolver uma aplicação Windows no VB 2005 de 'cabo a rabo', ou seja do início ao fim. Será uma aplicação que se propõe a gerenciar uma locadora de filmes (DVD e VHS) com recursos básicos.

Primeiro quero deixar claro que tudo o que você vai ler neste artigo e nos artigos seguintes não é de minha autoria. Tudo está baseado nos exemplos da MSDN (MSDnVideo) que você pode acessar no site da Microsoft. Eu apenas refiz os exemplos citados com algumas adaptações e alterações.

Para acompanhar esta série de artigos você vai precisar ter os seguintes recursos instalados e funcionando no seu computador:

O objetivo principal deste artigo é apresentar os novos recursos de acesso a dados a aplicação será bem simples de forma a tornar possível, em um tempo razoável, a publicação dos artigos. Portanto a modelagem de dados e a definição de requisitos, pontos fundamentais em qualquer aplicação não estarão refletindo o que seria uma aplicação real de produção. A idéia é fornecer os fundamentos básicos para que você possa expandir e melhorar a aplicação e também para que os que estão começando agora possam acompanhar os artigos sem muito trauma.

Nesta primeira parte vou desenvolver os seguintes tópicos:

  1. Criação do Banco de dados , tabelas , campos , definição de chaves primárias e do relacionamento entre as tabelas do sistema

  2. Criação de uma conexão com a fonte de dados e definição dos DataSets

Nota: O item 1 já foi discutido no artigo VB.NET 2005   - Criando a base de dados, as tabelas e os relacionamentos no VB2005.

Para saber o que mudou na versão do VS 2012 Acompanhe o Curso - VB .NET  - ADO .NET Prático (Curso)

1- Criando o Banco de dados, as tabelas e definindo o relacionamento

Vamos então arregaçar as mangas e por a 'mão na massa'. Inicie o Visual Basic 2005 Express Edition e clique na opção Create Project, selecionando a seguir na janela New Project o Template Windows Application, e,  informando o nome do projeto como Locadora Filmes (ou algo que melhor lhe apetecer...eu vou usar o nome citado.) conforme figura abaixo:

Na janela Solution Explorer clique com o botão direito do mouse sobre o nome do projeto e selecione do menu suspenso a opção Add -> New Item, e na janela Add New Item , selecione o Template SQL Database informando o nome de Locadora.mdf; a seguir clique no botão Add. (figura abaixo)

Na janela Data Source COnfiguration Wizard, como vamos criar as tabelas clique no botão - Finished. Você verá, conforme figura abaixo,  o banco de dados Locadora.mdf criado e incorporado ao seu projeto. Isto é uma novidade do VB 2005.

Vamos criar as tabelas do nosso projeto; na janela DataBase Explorer expanda o item Locadora.mdf e clique com o botão direito do mouse sobre o item Tables, selecionando a opção Add New Table.

Digite o nome e os tipos de dados de cada campo e a seguir salve a tabela com o nome de Cliente, conforme figura abaixo:

Note que o campo CodigoCliente é a chave primária da tabela . Para definir a chave primária para cada tabela clique com o botão direito do mouse sobre o campo que deseja como chave primária e selecione a opção - Set As Primary Key.

Vamos definir campo CodigoCliente como sendo do tipo Identity. Para isto selecione o campo e na janela Column Properties defina Identity Specification como Yes ; (Is Identity) como Yes e aceite os valores padrão para Identity Increment e Identity Seed, conforme figura abaixo:

Repita o procedimento adotado acima e crie a tabela Filmes conforme figura abaixo:

Defina o campo CodigoFilme como chave primária e do tipo Identity.

Repita a operação para a tabela Movimento, conforme abaixo:

Defina o campo CodigoLocacao como chave primária e do tipo Identity.

Após terminar você deverá ter 3 tabelas conforme abaixo:

  1. Cliente - Contém os dados dos clientes da locadora

  2. FImes - Contém os dados sobre os filmes oferecidos pela locadora

  3. Movimento - Contém os dados sobre a locação dos filmes pelos clientes

Vamos definir o relacionamento entre as tabelas. Clique agora no item Database Diagrams e selecione a opção Add New Diagram.

Nota: Informe o nome do Diagrama como DiagramaLocadora

Na janela Add Table, selecione cada uma das tabelas e clique no botão Add.

Como já vimos, para definir a chave primária para cada tabela clique com o botão direito do mouse sobre o campo que deseja como chave primária e selecione a opção - Set As Primary Key, aceitando o valor padrão das telas seguintes.

Vamos definir os seguintes relacionamentos entre as tabelas:

1- Cliente (CodigoCliente) -->   Movimento (CodigoCliente)  - Relacionamento do tipo UM-PARA-MUITOS

2- Filmes(CodigoFilme) -->  Movimento (CodigoFilme)  -  Relacionamento do tipo UM-PARA-MUITOS

Ou seja:

1- Existe um relacionamento entre a tabela Cliente e a tabela Movimento entre as chaves primárias CodigoCliente onde para cada Cliente da tabela Cliente eu posso ter infinitos Clientes na tabela Movimento.

2- Existe um relacionamento entre a tabela Filmes e a tabela Movimento entre as chaves primárias CodigoFilme onde para cada Filme da tabela Cliente eu posso ter infinitos Filmes na tabela Movimento.

Nota: Esta modelagem foi adotada apenas com objetivo didático e não deve ser usada em uma aplicação de produção pois não está, como podem notar, corretamente normalizada.

Pronto ! Já temos o banco de dados criado no SQL Server 2005 e as tabelas Cliente, Filmes e Movimento também criadas e com campos e relacionamentos definidos. Note que tudo foi feito usando o VB.NET 2005 com ajuda dos seus assistentes.

2- Criação de uma conexão com a fonte de dados e definição dos DataSets

Vamos agora criar a conexão e as fonte de dados do tipo  DataSet usando o assistente do VB 2005.

1- Clique na guia Data Sources e selecione a opção - Add New DataSource; Na janela Data Source Configuration Wizard, selecione a opção DataBase e clique no botão Next>.

Fontes de dados

O Visual Studio 2005 apresenta o conceito de fontes de dados em um projeto. Uma fonte de dados representa os dados disponíveis para um aplicativo. Esses dados não estão necessariamente em um banco de dados, o Data Source Configuration Wizard (Assistente para Configuração de Fonte de Dados) que você usa para definir a fonte de dados permite obter os dados de três fontes diferentes:

1.

Banco de dados — pode ser um banco de dados baseado no servidor, como o SQL Server ou o Oracle, ou um banco de dados baseado em arquivo, como o Access ou o SQL Server Express. O Visual Studio gera automaticamente os DataSets de tipos, bem como outras classes, e os adiciona ao projeto.

2.

Objeto — qualquer objeto com propriedades públicas pode ser a fonte de dados. Não é necessário implementar nenhuma interface especial.

3.

Serviço da Web — criar uma fonte de dados em um serviço da Web cria objetos correspondentes ao tipo de dados retornado por esse serviço.

A finalidade da fonte de dados é dupla. Em primeiro lugar, ela torna mais fácil especificar, criar e gerar classes com rigidez de tipos que representam os dados do aplicativo. Em segundo lugar, fornece um mecanismo flexível, porém uniforme, de criação rápida de interfaces de usuário WinForm e WebForms avançadas e altamente funcionais. Neste artigo, veremos o quanto isso é rápido, fácil e flexível.

Também nos concentraremos na criação de fontes de dados de banco de dados (DataSet) e no uso dessas fontes em aplicativos WinForms. No entanto, é importante salientar estes dois pontos:

Após a criação de uma fonte de dados, você a utiliza da mesma maneira, independentemente da origem dos dados. Ou seja, assim como você pode facilmente (e graficamente) ligar uma fonte de dados baseada em um Database a uma grade ou a um conjunto de controles, também pode fazer isso com os dados cuja origem é um serviço da Web ou seus objetos comerciais personalizados.

As fontes de dados são definidas da mesma maneira, independentemente de serem usadas em um aplicativo WinForms ou WebForms. Os diferentes provedores de dados também são abstratos; assim, se o seu acesso aos dados estiver exposto somente pelo uso de DataSets e TableAdapters, para alterar o banco de dados real, bastará alterar a seqüência de caracteres de conexão e gerar as classes novamente.

fonte MSDN - Novos recursos de DataSet no Visual Studio 2005 - Jackie Goldstein - Renaissance Computer Systems

2- Na tela seguinte, defina a conexão com o banco de dados Locadora.mdf. Lembrando que podemos exibir a string de conexão. Clique no botão Next>

3- No próximo passo vamos criar uma fonte de dados do tipo DataSet para cada uma das tabelas. Poderíamos criar um DataSet com mais de uma tabela se desejamos apresentar um relacionamento do tipo mestre-detalhes. Selecione então a tabela Clientes, informe o nome ClienteDS e clique no botão Finish.

Repita o procedimento acima (item 1 ao 3) e crie as fontes de dados FilmesDS e MovimentoDS para as tabelas Filmes e Movimento.

Se tudo deu certo você deverá ter 3 fontes de dados do tipo DataSet em sua janela, conforme figura abaixo:

Podemos navegar pelos objetos DataSet criados exibindo os campos de cada um deles e também editar o DataSet. Para isto clique com o botão direito do mouse sobre o DataSet e selecione a opção - Edit DataSet with Designer.

Será exibido a representação do objeto MovimentoDS, conforme figura acima, onde temos a tabela com seus respectivos campos e o objeto TableAdapter que permite alimentar,  atualizar e aplicar filtros a fonte de dados.

E chegamos ao final da primeira parte onde temos a base de dados e as entidades relacionadas a esta base de dados que simbolizam os nossos objetos de negócios os quais são representados pelas tabelas Cliente, Filmes e Movimento; temos também o adaptador que permite sincronizar essas entidades em memória com a base de dados.

Conceito:

O conceito de um TableAdapter, por outro lado, é novo no Visual Studio 2005. A idéia subjacente é que um TableAdapter com rigidez de tipos é o equivalente com rigidez de tipos do DataAdapter padrão. Você usa o TableAdapter para se conectar a um banco de dados e executar consultas (ou procedimentos armazenados) nesse banco de dados, bem como para preencher com dados um DataTable associado. Cada par DataTable-TableAdapter é indicado simplesmente como um TableAdapter

O TableAdapter é essencialmente um invólucro ao redor de um DataAdapter padrão, que oferece vários benefícios:

A mesma classe TableAdapter pode ser usada em mais de um formulário ou componente para que qualquer alteração em consultas/comandos seja automaticamente refletida em todas as instâncias. Essa situação é diferente da existente, na qual cada componente que acessa o banco de dados deve ter seu próprio DataAdapter configurado individualmente. Dessa forma, fica muito mais fácil garantir a sincronização de DataTables e DataAdapters.

Em vez de usar vários DataAdapters (ou código de comutação artesanal) para ter várias consultas/comandos para um único DataTable, um TableAdapter permite definir facilmente vários comandos para um DataTable específico.

Os comandos de preenchimento têm nomes legíveis ("amigáveis") e o TableAdapter inclui um código para preencher automaticamente as informações de tipo e valor de todos os parâmetros desses métodos de comando. Você não precisa mais se preocupar em passar tipos de dados específicos do provedor, como SqlInt.

fonte MSDN - Novos recursos de DataSet no Visual Studio 2005 - Jackie Goldstein - Renaissance Computer Systems

Acompanhe a continuação deste artigo em : VB.NET  2005 - Criando uma aplicação completa : Locadora de Filmes II

VB.NET 2005 , é fácil, é simples, é legal. Divirta-se... 

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

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti

setstats