TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Edcmiranda

Seminário: Edcmiranda. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  11/9/2014  •  Seminário  •  2.174 Palavras (9 Páginas)  •  233 Visualizações

Página 1 de 9

Hoje apresento um singelo programa feito na linguagem C# usando o Visual Studio 2012 Express for dekstop.

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

Neste exemplo específico estamos usando a classe Dictionary.

A classe Dictionary representa uma coleção de chaves e valores. É uma coleção do tipo chave/valor e implementa a interface IDictionary que possui duas coleções no seu interior uma para guardar a chave e outra para guardar o valor.

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

á 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 por 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 trabalho e mais tempo.

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 stnCarros = null;

BinaryFormatter bfmCarros = new BinaryFormatter();

Directory.CreateDirectory(@"C:\JcmSoft_Carros");

string strNomeArquivo = @"C:\JcmSoft_Carros\Carros.crs";

O programa esta criando a pasta JcmSoft_Carros no drive C:\ da máquina local:

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

• Carros.crs

• Clientes.crc

• Empregados.cre

• PedidoLocacao.cro

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

// Cria um carro

Carro veiculo = new Carro();

veiculo.Fabricante = txtFabricante.Text;

veiculo.Modelo = txtModelo.Text;

veiculo.Ano = int.Parse(txtAno.Text);

veiculo.Categoria = cbxCategorias.Text;

veiculo.TemCDPlayer = chkCDPlayer.Checked;

veiculo.TemDVDPlayer = chkDVDPlayer.Checked;

veiculo.EstaDisponivel = chkDisponivel.Checked;

// Chama o método Add da coleção para adicionar o carro

listaCarros.Add(txtTagNumber.Text, veiculo);

// salva a lista

stnCarros = new FileStream(strNomeArquivo, FileMode.Create, FileAccess.Write, FileShare.Write);

Quando do registro de pedido de locação, ao informar o número da carteira de motorista (CNH) na caixa de texto, é feita uma busca nos arquivos e a informação é recuperada e exibida nos controles de formulário conforme mostra o código abaixo:

Nota: Observe que estamos usando o evento Leave da caixa de texto

private void txtNumeroRegistroCNH_Leave(object sender, EventArgs e)

{

Cliente locador = null;

string strNumeroCNH = txtNumeroRegistroCNH.Text;

if (strNumeroCNH.Length == 0)

{

MessageBox.Show("Informe o número de registro da carteira de habilitação do Cliente.");

txtNumeroRegistroCNH.Focus();

return;

}

Dictionary<string, Cliente> listaClientes = new Dictionary<string, Cliente>();

BinaryFormatter bfmClientes = new BinaryFormatter();

string strNomeArquivo = @"C:\JcmSoft_Carros\Clientes.crc";

if (File.Exists(strNomeArquivo))

{

...

Baixar como (para membros premium)  txt (8.3 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com