C# - Programa loja de instrumentos musicais (estudo)


Hoje apresento um singelo programa feito na linguagem C# usando o Visual Studio 2012 Express for desktop onde veremos alguns conceitos básicos da linguagem aplicados na prática.

Juntando a prática com a teoria temos neste programa para loja de instrumentos musicais um exemplo de como usar os recursos da linguagem C# tais como: classes, coleções, serialização; bem como o uso dos controles de formulário como picturebox, textbox, label, listview, button.

Neste exemplo específico estamos usando a classe Array.

A classe Array fornece métodos para criar, manipular, pesquisar e ordenar arrays, deste modo esta classe serve como base para todas os arrays no Common Language Runtime.

A aplicação não utiliza um banco de dados relacional. Os dados são persistidos em arquivos texto através da serialização.

Já ouviu falar em serialização ? O que é serializar ? Como podemos fazer isto na plataforma .NET ?

De forma genérica, a serialização é uma técnica usada para persistir objetos, ou seja : gravar objetos em disco, fazer a transmissão remota de objetos via rede , armazenar os objetos em um banco de dados e/ou arquivos (binários , xml, etc.)

Serializar nada mais é do que colocar os valores que o objeto está utilizando juntamente com suas propriedades de uma forma que fique em série (sequencial) . Fazendo isto estamos tornando o objeto Serializable, e, tornando um objeto Serializable, estamos atribuindo essa qualidade a ele, e dando privilégios para que o mesmo possa ser gravado em disco ou enviado pela rede.

A serialização é o processo de armazenar um objeto, incluindo todos os atributos públicos e privados para um stream.

Se você faz a serialização, naturalmente vai querer fazer o processo inverso - desserialização, que seria restaurar os atributos de um objeto gravado em um stream. (Este stream pode ser um arquivo binário, xml , etc.)

Nota: Tradução de stream - fluxo (no caso de dados) . Melhor deixar stream mesmo.

Por que você iria querer usar a serialização

Primeiro por que nem tudo se pode armazenar em um banco de dados. As vezes a natureza da sua aplicação não exige um banco de dados ou usar um banco de dados pode ficar muito caro para o tamanho dos dados que se quer guardar ou ainda você pode também querer gravar os dados em disco para posterior recuperação. Enfim, se você não quer usar um banco de dados, e quer persistir seus objetos pode fazer isto de diversas maneiras mas o trabalho exigirá mais código, mais esforço e mais tempo.

Usando a serialização as informações da aplicação exemplo são armazenadas em uma pasta criada automaticamente pela aplicação usando o código a seguir:

FileStream stmArmazenaItem = null;

EstoqueItem item = new EstoqueItem();

EstoqueItems items = new EstoqueItems();

BinaryFormatter bfmEstoqueItem = new BinaryFormatter();

// se o diretorio nao existe então cria

Directory.CreateDirectory(@"C:\InstrumentosMusicais\Dados");

// este arquivo trata a lista de itens

string nomeArquivo = @"C:\InstrumentosMusicais\Dados\EstoqueItems.mis";

 

Os arquivos criados e usados para armazenar as informações serializadas são:

As informações são serializadas nos arquivos através dos objetos criados conforme mostra o código abaixo:

 

// Cria o item

item.ItemNumber = txtItemNumero.Text;

item.Category = cbxCategorias.Text;

item.Type = cbxTipos.Text;

item.ItemName = txtItemNome.Text;

item.UnitPrice = double.Parse(txtPrecoUnitario.Text);

// Cham o método Add da coleção para adicionar o item

items.Add(item);

// Salva a lista

stmArmazenaItem = new FileStream(nomeArquivo,

FileMode.Create,

FileAccess.Write,

FileShare.Write);

 

O sistema permite o cadastramento de categorias e itens de categorias de forma automática, sendo os mesmos persistidos em arquivos textos. Na abertura do programa os dados das categorias e itens serão carregados se existirem, permitindo a seleção pelo usuário.

A seguir vemos os principais formulários do  projeto:

1- O formulário Central apresentando as opções do sistema.  Primeiro devemos cadastrar os itens (instrumentos) e/ou as categorias definindo o valor e atribuindo uma imagem. A opção de venda pode ser usada após esses cadastramentos.

2- O formulário para editar/cadastrar Categorias e Tipos

Você monta o pedido conforme o estoque existente:

O botão Salvar persiste as informações do pedido no disco rígido. Para recuperar uma pedido feito basta informar o número de registro e clicar no botão Abrir.

O sistema foi criado com o objetivo do mostrar a utilização das classes, coleções e da serialização usando a linguagem C#.

O programa não tem a pretensão de ser usado para gerenciar uma loja de instrumentos real,  mas você pode melhorar o programa ou se basear nele para criar o seu próprio sistema com mais recursos.

Obs: No Super DVD .NET existem mais de 100 programas como este com o código fonte aberto para estudo.

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

Quer migrar para o VB .NET ?

Quer aprender C# ??

Pegue o projeto completo aqui: InstrumentosMusicais.zip

Rom 8:27 E aquele que esquadrinha os corações sabe qual é a intenção do Espírito: que ele, segundo a vontade de Deus, intercede pelos santos.

Rom 8:28 E sabemos que todas as coisas concorrem para o bem daqueles que amam a Deus, daqueles que são chamados segundo o seu propósito.

Referências:


José Carlos Macoratti