DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Serialização - .net magazine 73

Os programas normalmente trabalham com uma grande quantidade de dados o tempo todo. Estes dados normalmente estão ordenados em forma de objetos/classes. Normalmente é necessário que se armazene estes dados para que sejam recuperados posteriormente. Uma das formas mais simples de se realizar esta tarefa é realizando a serialização das classes em arquivos para posterior leitura.






Serialização
Transformando objetos em documentos XML

Resumo do DevMan
O uso dos documentos XML é uma realidade, e boa parte dos programas existentes fazem uso intenso destes arquivos. Isto se deve ao fato de serem fáceis de ler e de compreensão imediata uma vez que gravam a estrutura junto com os dados enviados.
Iniciando o artigo com uma classe bem simples, simulando uma situação do mundo real, um pedido de vendas, vamos abordar quais os primeiros passos a serem tomados caso se deseje serializar o objeto.
Em seguida, criaremos um método que fará a serialização desta classe para um arquivo XML. Ao final do artigo seremos capazes de serializar qualquer tipo de objeto para um documento XML desde que a classe esteja preparada para isso, pois, alteraremos o método de serialização para receber qualquer tipo de classe para serialização.
Para que o exemplo seja melhor aproveitado, iremos agregar mais elementos na classe principal inclusive campos que são formados por outras classes e até mesmo uma lista de objetos para podermos observar como se comporta a serialização de listas de objetos.

A serialização é um processo em que um objeto armazenado na memória é convertido para um outro formato que pode ser gravado no disco, enviado pela rede e possibilita a posterior leitura por outros programas. A leitura destes dados e conversão para objeto é o processo inverso, também chamado desserialização.
A serialização no formato XML traz várias vantagens entre elas o fato de que os dados estarão em um formato que é inteligível por qualquer pessoa como, por exemplo, um administrador de sistema que poderá verificar a qualquer momento o conteúdo do arquivo.
Os arquivos XML também são autodescritivos, ou seja, a estrutura dos dados está armazenada no arquivo juntamente com os dados. Outra grande vantagem é que os arquivos XML permitem uma grande compatibilidade e interoperabilidade entre aplicações, uma vez que estes podem ser lidos por qualquer programa em diversas plataformas.
Outra vantagem da serialização no formato XML (é possível também se fazer a serialização em formato binário) é que um programa de outra plataforma poderá ler o arquivo e fazer sua desserialização, ou seja, convertendo o documento para uma classe. Reforçando a ideia: os arquivos XML permitem a troca de dados entre plataformas diferentes.
No artigo vamos criar uma aplicação de console que irá serializar um pedido e seus itens (produtos). O artigo está organizado de forma que a complexidade vá aumentando gradativamente.
Criando a primeira classe
No Visual Studio, crie uma aplicação console que servirá de base para o nosso exemplo, escolhendo o menu File>New Project. Selecione as opções como na Figura 1, escolha o .NET Framework 3.5 para podermos aproveitar novos recursos que esta versão oferece. Verifique todas as opções e quando tudo estiver correto clique em OK. Na janela Solution Explorer, clique com o botão direito do mouse sobre o ícone do projeto e escolha Add Class (Figura 2).

 
Figura 1. Criando o projeto

 
Figura 2. Inserindo uma nova classe

Esta será a classe de pedidos que irá armazenar os dados que iremos serializar. Na janela que se abre, nomeie o arquivo como pedido.cs (Figura 3).

 
Figura 3. Nomeando o arquivo da classe criada

Esta classe é bem simples. Não possui nenhum método em especial. Nela teremos apenas os campos para os dados e um construtor sem parâmetros. A Listagem 1 mostra os detalhes da implementação.
Listagem 1. Classe de pedidos
  1 using System;
    2
    3 namespace PedidoSerial
    4 {
    5     ///
    6     /// Classe para manipulação dos dados de pedido
    7     ///

    8     [Serializable]
    9     public class pedido
   10     {
   11         public int ID { get; set; }
   12         public DateTime Data { get; set; }
   13         public string NomeCliente { get; set; }
   14         public decimal Valor { get; set; }
   15         public decimal Desconto { get; set; }
   16         public decimal ValorTotal
   17         {
   18             get { return Valor - Desconto; }
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Guilherme Gomes Do Braz
Elaborado de forma bem didática, apresentou muito bem o assunto.
Aguardo outros artigos seus nessa linha didática.
[há +1 ano] - Responder

 



Publicidade
Autor
Vladimir Rech

Tecnólogo em Desenvolvimento de Sistemas pelo CEFET-PR, palestrante; trabalha com desenvolvimento de sistemas em .NET destacando-se aplicações Windows, ASP e Web Services.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03