Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

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.

Em que situação o tema é útil

Sessões são úteis para persistir objetos na memória do servidor Web, que não são perdidas entre requisições. DataSets são muito úteis como estruturas de dados temporárias em memória, consumindo poucos recursos, que ficam persistentes até a compra ser finalizada com os dados enviado ao banco de dados.

C#, Visual Studio e ASP.NET

Nesta parte da série, vamos adicionar uma das principais funcionalidades do site, a possibilidade do usuário adicionar produtos a um carrinho de compras, com os dados sendo exibidos em um grid que fica disponível para consulta.

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/DataSnape 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 ...

Quer ler esse conteúdo completo? Tenha acesso completo