www.devmedia.com.br
[versão para impressão]
Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=3951

Ado.Net 2.0 - Serializar dados em formato binário

Uma das novas funcionalidades do Framework 2.0 (Ado.Net) é serializar dados em formato binário...

Pessoal,

Uma das novas funcionalidades do Framework 2.0 (Ado.Net) é serializar dados em formato binário. Na versão 1.1 do Framework, tínhamos a serialização em XML, mas que criava um arquivo muito grande (considerando uma grande massa de dados). Para suprir isto, foi incorporado esta nova feature no Framework 2.0.

Veja a tabela abaixo (disponibilizado pela Microsoft) da diferença do tamanho do arquivo (xml e binário)

 adonetfig01.JPG

Importe as seguintes classes:

Imports System.Runtime.Serialization.Formatters.Binary 'Responsável pela serialização

Imports System.IO 'Responsável pela criação do arquivo

Salvar o dataset em formato binário:

Dim str As Stream 'stream para o arquivo

Dim bf As New BinaryFormatter 'objeto que irá fazer a serialização

str = File.Open("c:\a.bin", FileMode.Create, FileAccess.Write) 'criação do arquivo

bf.Serialize(str, ds)  'Serializa o dataset ds no arquivo str

str.Close() 'fecha o arquivo

bf = nothing

Recuperar um dataset de um arquivo binário:

Dim bf As New BinaryFormatter 'Objeto para "deserializar"

Dim fileBin As Stream 'Objeto para leitura do arquivo

Dim ds As DataSet 'Dataset - Onde os dados do arquivo serão carregados

fileBin = File.Open("c:\a.bin", FileMode.Open) 'Abertura do arquivo binário

ds = bf.Deserialize(fileBin) '"deserializa" o arquivo binário e o carrega no dataset

fileBin.Close() 'Fecha o arquivo

bf = nothing

Isto foi um overview da utilização desta nova feature. É claro, tratamento de erros devem ser incorporados (ex: verificar se foi possível criar um arquivo e etc...) mas, como visto, é muito simples utilizarmos este novo recurso em nossos sistemas.

[]´s

William Leme

Guru .net e tecnologias MS