ASP.NET 2.0 - ObjectDataSource - trabalhando em camadas I


Como eu estou embalado pelo artigo VB.NET - Camada de Acesso a dados , de negócio e apresentação I resolvi  falar um pouco sobre  o desenvolvimento em camadas para web usando o objectDataSource.

Quando se usa o componente SqlDataSource ,  o ObjectDataSource ou outros componentes, o assistente do ASP .NET entra em ação para criar a conexão e as instruções SQL ou  stored Procedures que serão usadas no acesso a base de dados. Muitos desenvolvedores fogem dos assistentes por acreditarem que não terão um controle sobre o código gerado, não podendo assim efetuar alterações quando estas se fizerem necessárias no futuro.

Muitos desenvolvedores pensam também que não é possível usar os assistentes no desenvolvimento em camadas. Esse artigo vai mostrar de forma objetiva e direta que você pode desenvolver em camadas usando os assistentes do ASP .NET podendo assim obter produtividade sem perder o controle sobre o seu projeto.

Neste artigo eu vou usar as seguintes ferramentas:  Visual Studio 2005  e SQL Server 2005 Express.

Abra o VS 2005 e crie um novo Web Site , opção Create Web Site, e na janela New Web Site informe o nome do projeto oDataSourceCamadas, Location igual a File System e linguagem Visual Basic;

Agora vamos incluir um novo projeto que será usado para criar a camada de dados. Teremos então o web site e o projeto que será responsável pela camada de acesso a dados como iremos ver adiante.

No menu File selecione Add -> New Project

Selecione o tipo de projeto Visual Basic e o template Class Library com o nome acessoDados na mesma localização do web site

Neste momento , na janela Solution Explorer , você terá a seguinte visão da sua solução:

Como eu vou usar os assistentes para configuração do Data Source e também o componente ObjectDataSource eu não preciso do arquivo Class1.vb pois não vou usar código para criar a camada de acesso a dados.

Vamos excluir então o arquivo Class1.vb e clicar com o botão direito do mouse sobre o nome do projeto - acessoDados - e selecionar a opção Add -> New Item;

Na janela Add New Item, selecione o template DataSet e informe o nome dsNorthwind , ou um nome relacionado com o banco de dados que você vai acessar.

Eu vou acessar o banco de dados Northwind.mdf que contém uma tabela chamada Territories que será usado neste exemplo.

Agora selecione o dataset criado, e, a partir da ToolBox, arraste um controle TableAdapter para o descritor. No assistente de configuração selecione , ou crie se não existir , a conexão com o banco de dados Northwind.mdf;

Clique em Next> e salve a string de conexão, NORTHWNDConnectionString, no arquivo de configuração , clicando em Next> , novamente;

Agora , selecione a opção Use SQL Statements e clique em Next>;

Ative o Query Builder e selecione a tabela Territories clicando no botão Add;

Clique em Next> até a a janela Enter a SQL Statement , clique no botão Advanced Options e desmarque as opções : Use Optimistic concurrecy e Refresh the data table;

Clique no botão OK e a seguir em Next>. Na janela Table Adapter Configuration Wizard , desmarque a opção - Create methods to send updates directly to the database(...)

Clique em Next> e a seguir em Finish. Ao final teremos o Datatable Territories e o TableAdatper TerritoriesTableAdapter prontos para serem usados

Vamos criar consultas no TableAdapter para efetua a atualização , inclusão e exclusão de dados. Para isso clique com o botão direito do mouse sobre o mesmo e selecione Add -> Query;

A seguir selecione Use SQL Statements e clique em Next>, selecionando o tipo de consulta que deseja criar; Iremos criar primeiro um Update, marque então esta opção e clique em Next>;

Será apresentada a instrução SQL para atualizar o banco de dados, e, se você observar vai notar que precisamos fazer um pequeno ajuste no SQL.

Após ajustar o nome do parâmetro clique em Next>  e informe o nome atualizaTerritorios para a consulta de atualização criada;

Clique em Next> e teremos que a consulta será gerada no tableAdapter;

Ao final você verá o seu TableAdapter conforme a figura abaixo:

Repita o procedimento para criar uma consulta para excluir dados da tabela dando o nome excluiTerritorio para o método e usando a instrução SQL conforme a figura abaixo:(Note que temos que ajustar o nome do parâmetro TerritoryID)

Repita o procedimento para criar uma consulta para incluir dados da tabela dando o nome incluiTerritorio da mesma forma que feita anteriormente usando a instrução SQL  para inserir dados na tabela Territories.

Ao final deste processo você deverá ter  o seu tableAdapter contendo as 3 consultas criadas conforme abaixo:

Neste momento efetue um Rebuild do projeto acessoDados , no menu Build -> Rebuild acessoDados.

Para encerrar esta primeira parte vamos agora incluir uma referência no projeto Web ao nosso projeto acessoDados. Clique com o botão direito do mouse sobre o nome do web site e selecione Add -> Reference;

Na janela Add Reference selecione a aba Projects, pois nossa referência será a nível de projeto , e selecione o projeto acessoDados clicando em OK;

Pronto ! na segunda parte iremos usar a camada de dados no nosso web site. Até lá...

Até a segunda parte do artigo ASP.NET 

ASP.NET 2.0 - ObjectDataSource - trabalhando em camadas II

referências:


José Carlos Macoratti