msdn26_capa.jpg

Clique aqui para ler todos os artigos desta edição

 

Novidades do ADO.NET 2.0

Serialização Binária, SqlConnectionStringBuilder, melhorias no DataView e Batch Updates

John Papa

Este artigo discute

Este artigo usa as seguintes tecnologias

·        Serialização de DataSets e DataTables em formato binário como alternativa a XML;

·        Como construir strings de conexão dinamicamente;

·        Melhorias no DataView;

·        Atualizações em Lote no DataAdapter (Batch Updates).

·        ADO.NET 2.0, Visual Studio 2005.

 

Chapéu: ADO.NET

 

 

Várias melhorias significativas foram introduzidas no ADO.NET 2.0, incluindo otimização de desempenho, flexibilidade e adição de novos recursos. No meu artigo da edição 24 (“DataSet e DataTable em ADO.NET 2.0”), discuti as melhorias adicionadas à classe DataTable, o efeito da nova e poderosa enumeração LoadOption, como mudar o estado de um registro e a nova classe DataTableReader. Nesta edição vamos explorar o novo SqlConnectionStringBuilder, melhorias no DataView, atualização em lote (batch update) e serialização otimizada de DataSet. Também mostrarei como algumas das novas características se comportam quando são colocadas à prova.

Serialização binária

O ADO.NET 1.x provê formas para serializar um DataSet. A má notícia é que o formato XML usado para DataSets pode causar problemas de desempenho quando um grande DataSet for serializado e transmitido via rede. O ADO.NET 2.0 pode serializar um DataSet ou um DataTable em formato binário puro, resultando em menor consumo de memória e largura da banda de rede.

Vejamos como implementar serialização binária em um DataTable. A propriedade RemotingFormat do DataTable foi introduzida no ADO.NET 2.0 que pode ser usada para fixar o formato da serialização. A propriedade RemotingFormat espera por um dos dois valores de enumeração do SerializationFormat: SerializationFormat.Xml ou SerializationFormat.Binary. Uma vez definido o RemotingFormat, podemos criar uma instância da classe BinaryFormatter para serializar o DataTable. O exemplo da Listagem 1 carrega uma lista de clientes em um DataTable e o serializa no formato binário.

 

Listagem 1. Serialização binária de um DataTable

string cnStr = @"server=.;database=northwind;integrated security=true;";

using (SqlConnection cn = new SqlConnection(cnStr))

{

    string sql = "SELECT o.OrderID, o.CustomerID, o.OrderDate, " +

                 "od.ProductID, p.ProductName, od.UnitPrice, " +

                 "od.Quantity FROM Orders o " +

                 "INNER JOIN [Order Details] od " +

                 "ON o.OrderID = od.OrderID INNER JOIN Products p ON " +

                 " p.ProductID = od.ProductID ";

    SqlCommand cmd = new SqlCommand(sql, cn);

    SqlDataAdapter adpt = new SqlDataAdapter(cmd);

    DataTable dtCustomers = new DataTable("Customers");

    adpt.Fill(dtCustomers);

  ...

Quer ler esse conteúdo completo? Tenha acesso completo