DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Easy .net magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Aplicação completa com C#, Visual Studio e ASP.NET – Revista easy .net Magazine - Parte 5

O artigo mostra como criar um carrinho de compras para o site, logo vai tratar de assuntos relacionados a sessões Web (Session), bem como uso de técnicas de acesso a dados como ADO.NET e DataSets.






Neste artigo vamos falar muito de ADO.NET, tanto os componentes do provider para SQL Server quanto da classe DataSet. Esta classe faz parte do grupo de componentes desconectados. Podemos comparar o DataSet ao ClientDataSet da VCL do Delphi Win32, pois permite armazenar dados em memória. Porém, de nada adianta colocarmos estes dados em memória se não persistirmos esses dados no servidor de alguma forma, visto que, após processar uma requisição, o ASP.NET destrói tudo da memória (devido a sua natureza state-less). Para isso, veremos como usar o objeto Session, que permite gerenciar uma sessão de usuário.

  Um DataSet pode conter dados vindos de praticamente qualquer banco de dados, utilizando para isso uma “ponte” através de um Managed Provider, como para o SQL Server que estamos utilizando até aqui. Assim como o ClientDataSet, um DataSet independe de fonte de dados, podendo conter dados vindos de arquivos XML, Web Services, criados somente em memória (estilo tabelas temporárias – o que faremos aqui) entre outros.

  Na verdade, quando utilizamos o SqlDataSource até aqui, fizemos uso de um DataSet por baixo (dê uma olhada na propriedade DataSourceMode do controle). Como comentei anteriormente, o SqlDataSource não faz muita coisa além de ser uma “casca fina” em cima do ADO.NET. A partir deste artigo, nós veremos como utilizar ADO.NET no “braço”, ou seja, vamos codificar. Além disso, também veremos como usar também conexões e DataReaders do ADO.NET (conectado), em vista disso, vale uma introdução à tecnologia.

 

Nota: Como já comentei anteriormente, existem excelentes frameworks de persistência e mapeamento objeto / relacional para .NET, como o NHibernate e ADO.NET Entity Framework. Estudaremos ambos em futuras oportunidades.

 

Introdução ao ADO.NET

O ADO.NET é a tecnologia de acesso a dados do .NET Framework. Uma evolução do ADO (Active Data Objects), é totalmente escrito com código gerenciado (Managed Code). Uma importante mudança com relação ao ADO é que os DataSets são desconectados, por padrão – algo muito semelhante ao que temos no Delphi com a arquitetura dbExpress/DataSnap e o componente ClientDataSet. Ou seja, os dados são trazidos para uma cache local, a conexão é fechada, o cliente trabalha “off-line” e, quando precisa atualizar  os dados, uma nova conexão  é restabelecida. Isso torna aplicações do ADO.NET muito escaláveis permitindo que servidores atendam a uma demanda maior de conexões mantendo um desempenho consistente.

Algumas vezes, no entanto, não é uma boa solução conectar e reconectar a um banco de dados a cada transação de uma aplicação cliente. Para esses casos, o ADO.NET oferece um mecanismo de pool de conexões, com o qual uma mesma conexão pode permanecer ativa e atender a um grande número de solicitações.

O ADO.NET foi construído especialmente para aplicações multicamadas e para Web. Antes dele, o COM/COM+ era sinônimo de programação distribuída/multicamadas no Windows; no entanto utilizar COM em aplicações multicamadas dificulta a comunicação com clientes que rodem em outras plataformas, além de não ser uma boa solução quando se pretende distribuir informações na Web (devido a limitações impostas por Firewalls, por exemplo).

Diferentemente do ADO (que é baseado no COM), o ADO.NET utiliza XML para intercâmbio de dados ganhando, com isso, recursos de integração e interoperabilidade. Além disso, o ADO.NET pode ser utilizado em qualquer linguagem que dê suporte ao .NET, como VB.NET, C# e Delphi Prism. Isso significa que, se você conhecer o ADO.NET (e demais objetos do .NET Framework), poderá desenvolver aplicações em qualquer linguagem com relativa facilidade.

A seguir conheceremos os principais objetos que compõem a arquitetura ADO.NET. As classes do ADO.NET estão divididas em dois grandes grupos: Managed Providers (provedores gerenciados) e Content Components (componentes de conteúdo).

Managed Providers

Os componentes do grupo Managed são responsáveis pelo acesso a dados. Incluem classes para conexão ao banco, gerenciamento de transações, execução de comandos e leitura de dados. Atualmente são distribuídos alguns Managed Providers nativos com o .NET Framework, como SQL Server Data Provider, OLE DB Data Provider e ODBC. Você utiliza o primeiro tipo quando precisar criar uma aplicação que se comunique exclusivamente com SQL Server, é o nosso caso.

O segundo tipo permite a comunicação com outros bancos de dados que tenham suporte à drivers OLE DB, como Oracle, DB2, Access etc. Você pode encontrar na internet drivers OLE DB para uma série de bancos, inclusive Firebird, InterBase, MySQL e muitos outros. No entanto, o uso de OLE DB não é a única opção para acessar bancos de dados a partir de sua aplicação .NET. Muitas empresas fornecem Data Providers nativos para seus bancos, esta é a opção mais otimizada para trabalhar com ADO.NET, pois ninguém conhece melhor o próprio banco do que quem construiu ele, logo o provider nativo será sempre mais rápido.

Cada Managed Provider possui objetos básicos para a comunicação com um servidor de dados, por exemplo: DBConnection, DBCommand, DataReader e DataAdapter. No ADO.NET, seguindo um princípio importante da orientação a objetos, cada objeto tem uma responsabilidade bem definida e coesa; cada um desempenha uma função bem definida. Dessa forma, não se pode, por exemplo, passar um comando SQL em um objeto de conexão, ou usar o mesmo componente para conectar, obter dados, fazer cache e atualizar dados.

Tabela1 mostra os principais objetos do grupo Managed Providers. Para que você possa localizar-se mais facilmente é mostrado, para cada objeto/interface, o equivalente na arquitetura dbExpress. Você utilizará os objetos da primeira coluna através de uma das implementações disponíveis (terceira coluna). Por exemplo, no .NET Framework, para usar um DbConnection, você vai usar um SqlConnection no caso do SQL Server; para um DataReader, deve-se usar o SqlDataReader.  Os objetos de acesso ao SQL Server estão disponíveis no namespace System.Data.SqlClient.

Ainda na Tabela 1, você pode observar a similaridade do ADO.NET com o dbExpress. Cada objeto no ADO.NET implementa uma interface (IDbConnection, IDbCommand, IDataReader, IDataAdapter, IDbTransaction).  Essas interfaces são implementadas por cada um dos Managed Providers. De forma semelhante, no dbExpress, cada driver deve implementar as interfaces ISQLConnection, ISQLCommand, ISQLCursor e ISQLDriver. Veja na "



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Easy .net magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Guinther Pauli

Guinther Pauli - guintherpauli@gmail.com - Editor Geral .NET Magazine Brasil e ClubeDelphi - Microsoft Certified: MCP, MCAD, MCSD.NET, MCTS, MCPD e certificado Delphi: 3,5,6,7,2005,2006,Delphi for Web e Delphi for Linux http://guintherpauli.blogspot.com http://twitter.com/GuintherPauli http://cc....


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03