domingo, 30 de janeiro de 2011

Serialização de objetos

Serializar um objeto consiste em poder armazenar os dados contidos dentro deste objeto em arquivos binários, xml, txt e etc. Este recurso é bastante utilizado quando necessitamos gravar informações em disco. A seguir iremos demostrar como guardar uma lista de objetos em um arquivo xml e como recuperar estes dados.
Primeiramente iremos criar uma classe Cliente com as propriedades Nome, IDCliente, Idade, Endereco e Email. Esta classe para que seja possível a serialização, iremos adicionar [Serializable] logo acima da declaração da classe conforme imagem abaixo.


No botão serializar iremos montar uma lista do tipo Cliente e popular com 3 dados de clientes. Em seguida iremos verificar se o arquivo cliente.xml já existe e caso já exista iremos deletá-lo. Iremos utilizar a classe XMLSerializer para serializar o objeto e gerar o arquivo xml com os dados conforme imagem a seguir.


Após executar o evento de click do botão serializar,irá gerar o arquivo xml com as propriedades da classe Cliente e os dados adicionados conforme a seguir.


Utilizando novamente a classe XMLSerializer, iremos deserializar o arquivo xml, recuperando os dados e montando uma lista do tipo Cliente novamente.


Após executar o click do botão deserializar, irá recuperar os dados e a lista será adicionada em uma grid view apresentando na tela os dados que estavam no xml.



Agora, iremos adicionar [XmlIgnoreAttribute] na propriedade Endereco e isso fará com que esta propriedade seja ignorada no momento de serializar o objeto e não irá adicionar esta propriedade no xml.


Após executar novamente o click do botão serializar, veja na imagem abaixo que não foi adicionada a propriedade Endereco no xml.


Após executar novamente o click do botão deserializar, será recuperado os dados do xml e adicionados na grid view, porém o campo endereço estará vazio, pois não foi salvo no momento da serialização.



segunda-feira, 17 de janeiro de 2011

Utilizando método Sort da classe List

Neste tópico iremos abordar sobre o método Sort da classe List. Este método é utilizado para realizarmos ordenações dos objetos contidos dentro de uma lista.
Para utilizarmos este método, precisamos primeiramente ter as informações. Vamos criar uma página com um controle ListBox, 1 botão para ordenar de forma crescente e outro para ordenar de forma decrescente.

Controles da página aspx


Criado os controles ao carregar a página iremos popular o ListBox com nomes de clientes.

Adicionando nomes ao listbox


Ao executar a página estará da seguinte forma:

Página com lista de nomes desordenada


Criaremos uma classe chamada Cliente e nela adicionaremos 2 propriedades para serem populadas no objeto: Nome e IDCliente.

Classe cliente com as propriedades do objeto




Ao clicar no botão ordenar crescente será executado o código a seguir, onde após recuperar os nomes do ListBox e montar uma lista do objeto cliente, será chamado método Sort onde irá realizar as comparações e fazer a ordenação e após a ordenação irá atualizar o ListBox com a nova lista.

 
Utilizando o método sort para ordenação crescente

Após a execução deste trecho de código, os nomes estarão ordenados em ordem crescente. 



Página com lista ordenada crescente
Ao clicar no botão ordenar decrescente será executado o código a seguir, onde é quase igual ao de ordenação crescente, porém para que faça a ordenação decrescente apenas será invertida a comparação ao chamar o método Sort,ao invés de cliente1.Nome.CompareTo(cliente2.Nome), será cliente2.Nome.CompareTo(cliente1.Nome).

Utilizando o método sort para ordenação decrescente


Após a execução deste trecho de código, os nomes estarão ordenados em ordem decrescente. 

Página com lista ordenada decrescente