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.

Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Do que trata o artigo

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.

Dentro do framework .NET é possível realizar a serialização em forma de arquivos binários ou no padrão XML. Com a serialização em um documento no padrão XML é possível usarmos os dados salvos em um determinado programa em outros ou até mesmo em outras plataformas, uma vez que os arquivos XML são multiplataforma. Para que seja possível serializar as classes do .NET Framework, deve-se tomar algumas providências ao se definir a estrutura da classe. Seus campos devem estar preparados para a serialização. Tudo isto será exposto no artigo permitindo que se comece com uma classe bem simples até estendermos sua funcionalidade para classes mais complexas e com aplicações perto das situações do dia a dia.

Para que serve

Uma das aplicações típicas da serialização de objetos em um documento no padrão XML é permitir a troca de dados entre programas. Um exemplo bastante clássico está na comunicação com Web Services.

Os Web Services são um tipo especial de programa que são acessados remotamente pela Internet que usam dados no formato XML para troca de informações. Os documentos no formato XML também são bastante usados para se arquivar dados dos programas para serem lidos posteriormente. Um exemplo de programa que faz uso deste tipo de arquivo para armazenar seus dados é o próprio Microsoft Word que a partir da versão 2007 passa a armazenar os seus documentos neste formato de arquivo.

Outro exemplo bem vinculado com uma aplicação do mundo real é a Nota Fiscal Eletrônica (NF-e) que usa o XML como base de troca de informações através dos Web Services. Outra aplicação interessante para os arquivos XML está no armazenamento das configurações e parâmetros dos sistemas sendo que aplicações para Internet (Web Applications) e Windows desenvolvidas com o .NET por padrão armazenam suas configurações neste tipo de arquivo.

Em que situação o tema é útil

A serialização de uma classe é comum em cenários onde se deseja persistir os dados de um objeto criado por um programa. Sempre que for necessário persistir os dados o uso da serialização de classes com XML vai facilitar o trabalho. Se precisarmos enviar estes dados para outro programa como, por exemplo, um Web Service, a geração do XML a partir da classe já existente se torna bem mais fácil se a construirmos tendo em vista a serialização. A serialização de objetos dentro do framework .NET é simples. Com poucas instruções o desenvolvedor poderá fazer sua aplicação gerar os arquivos XML e facilmente ler o conteúdo destes arquivos.

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 auto descritivos, 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."

[...] continue lendo...

Artigos relacionados