/* Customized template */ Diário de um Desenvolvedor de Software: Serialização de DataSets

Diário de um Desenvolvedor de Software

Descobertas, idéias e informações que acontecem no meu trabalho como desenvolvedor de sistemas aplicativos em .NET.

Minha foto
Nome:
Local: Blumenau, SC, Brazil

Sou arquiteto de software e ajudo a definir soluções de tecnologia para necessidades de negócio. Atualmente trabalhando com a plataforma Windows Azure.

terça-feira, outubro 18, 2005

Serialização de DataSets

Nos projetos em que estou trabalhando eu optei por utilizar as vantagens dos DataSets tipados para encapsular as entidades de negócio.

Isto traz vários benefícios para a arquitetura. Mas também traz dificuldades que precisam ser contornadas.

Uma das mais surpreendentes foi quando eu serializei um DataSet com um único registro no ViewState de uma página web, e o ViewState ficou com 64KB...

Investigando o assunto, descobri que esta mesma situação afeta projetos em camadas, na qual DataSets são usados para transferir dados entre camadas.

A serialização padrão do DataSet é um gigantesco e detalhado documento XML.

Felizmente, o framework .NET foi muito bem projetado, e dificuldades como esta podem ser contornadas.

O artigo Binary Serialization of DataSets traz uma explicação atualizada do problema. O site DataSet FAQ também tem um artigo muito bom sobre isto.

Uma das soluções mais simples é fornecida pela própria Microsoft, com código-fonte, no artigo Improving DataSet Serialization and Remoting Performance.

Este problema afeta projetos atuais. No ADO.NET 2.0 existe o recurso de serialização binária de DataSets que suporta melhor as necessidades de arquiteturas em camadas.

De qualquer modo eu imagino que as técnicas desenvolvidas para lidar com o problema hoje poderão ser combinadas com os novos recursos do ADO.NET 2.0 para obter resultados ainda melhores.