Este é um post disponível para assinantes MVPEste 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.
.net Magazine 73
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 73
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 73
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
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 MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal .net
Publicidade
Vladimir Rech
Space do autor
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


0
0
