Revista MSDN Magazine Edição 24 - A Enterprise Library do Data Access Application Block - Parte II

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Artigo Originalmente Publicado na MSDN Magazine Edição 24

msdn24_capa.jpg

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

 

A Enterprise Library do Data Access Application Block - Parte II

 

No mês passado explorei os fundamentos do Enterprise Library Data Access Application Block (DAAB), inclusive o modo como a mesma se ajusta em uma arquitetura. Também abordei o Configuration Tool, como usar as características de criptografia e a configuração com o DAAB, e como o DAAB oferece abstração de banco de dados através do database factory pattern e por reflection.

Este mês, continuarei explorando o assunto, através de exemplos de código que demonstram as diferentes maneiras existentes para recuperação de dados, usando o DAAB. Discutirei também como usar as características de ADO.NET via DAAB e mostrarei como tirar proveito da database-specific abstraction, que a Enterprise Library DAAB oferece através do database factory pattern.

Começarei montando um projeto que usa a Enterprise Library DAAB e mostrando como o mesmo pode beneficiar-se dos eventos post-build. Veremos então, exemplos que recuperam dados usando várias abordagens diferentes, incluindo o retorno dos dados em um DataReader, um DataSet, um valor string e XML.

Mostrarei como executar uma query parametrizada que usa SQL inline e stored procedures. O uso de parâmetros de saída para recuperar dados pode ser muito eficiente, assim como o uso do método ExecuteScalar do ADO.NET (e do DAAB). Demonstrarei como podem ser ambos realizados e apresentarei métodos para recuperar rowsets múltiplos de uma vez só. O DAAB é como qualquer outra ferramenta: para rodar eficientemente tem que ser usado corretamente. Portanto, ao longo do artigo, discutirei como pode ser feito o ajuste fino e como o mesmo opera por trás dos bastidores (todos os código de exemplo, podem ser carregados a partir do web site da MSDN®Magazine).

Os Enterprise Library Application Blocks, podem ser carregados do web site da MSDN em Enterprise Library. Os workspaces GotDotNet também são um bom lugar para obter os dados mais recentes a respeito da Enterprise Library e qualquer outra atualização: Enterprise Library: Workspace Home (http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=295a464a-6072-4e25-94e2-91be63527327).

 

Preparando o Projeto

Para os exemplos seguintes, montarei uma aplicação Windows® Forms que usa a Enterprise Library DAAB para recuperar e manipular dados do banco de dados Northwind, via SQL Server™. A Figura 1 mostra o projeto acabado (note que as opções para rodar cada procedimento que discutirei aqui, são mostradas do lado esquerdo da janela). Em primeiro lugar, criei uma aplicação Windows Forms que usa o Visual Studio® .NET chamada MSDN200508. Acrescentei então uma referência ao DAAB e ao Configuration Application Block (pois este é usado pelo DAAB). Os assemblys do Enterprise Library encontram-se no Program Files\Microsoft Enterprise Library\bin.

 

image001.gif

Figura 1 – Testando o DAAB Usando um Windows Form

 

A Enterprise Library usa o arquivo Web.config para apontar para os seus arquivos de configuração em aplicações ASP.NET. Em uma aplicação Windows Forms, a Enterprise Library usa o arquivo app.config para apontar para os seus arquivos de configuração. Depois de criar a aplicação Windows Forms, acrescentei um arquivo app.config ao projeto. A seguir, abri o Enterprise Library configuration tool, selecionei File | Open Application e escolhi o arquivo app.config do projeto Windows Forms MSDN200508.

Neste ponto, configurei o arquivo mconfig do DAAB, para apontar para o banco de dados Northwind na minha instância do SQL Server local, e sendo consciente das questões de segurança, também encriptei o arquivo dataConfiguration.config (para detalhes sobre como usar o Configuration Tool para montar um arquivo config de DAAB, de modo a apontar para o banco de dados Northwind e como encriptá-lo). Uma vez pronto o arquivo de configuração, adicionei o arquivo dataConfiguration.config ao projeto Windows Forms. Então, só para testar as coisas, acrescentei um botão e um DataGrid ao formulário, o código a seguir ao evento button1_Click, compilei e rodei:

 

private void button1_Click(object sender, System.EventArgs e)

{

    string sSql =

        "SELECT CustomerID, CompanyName, City, Region FROM Customers";

    Database dbNorthwind = DatabaseFactory.CreateDatabase();

    DBCommandWrapper cmdCust =

        dbNorthwind.GetSqlStringCommandWrapper(sSql);

    DataSet dsCust = dbNorthwind.ExecuteDataSet(cmdCust);

    dataGrid1.DataSource = dsCust.Tables[0].DefaultView;

}

 

Supõe-se que este código irá obter a lista de clientes do banco de dados e preencher o DataGrid com eles. Porém, ao invés disso, recebo uma exceção que me diz que não foi possível achar o arquivo dataConfiguration.config. Este erro aconteceu, devido ao fato de ter construido uma aplicação Windows Forms e tê-la rodado no modo de depuração, o arquivo executável do assembly (MSDN200508.exe) e o arquivo config (MSDN200508.exe.config) são criados na pasta bin\debug do projeto. O arquivo MSDN200508.exe.config diz para a aplicação procurar o arquivo dataConfiguration.config na mesma pasta onde a aplicação reside. Por padrão, a ferramenta de configuração não inclui a informação do caminho para o arquivo dataConfiguration.config (nem qualquer outro arquivo config do Enterprise Library). Desde que não adicionei especificamente o caminho, quando a aplicação foi rodada no modo de depuração, foram criados os arquivos exe e o exe.config na pasta bin\debug. Não tendo achado o arquivo dataConfiguration.config na pasta bin\debug foi gerada uma exceção."

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?