Desenvolvimento - ASP. NET
Acesso a dados em aplicações ASP.NET – Conceitos básicos – parte 1
Neste artigo, o ambiente de desenvolvimento será preparado com a instalação do SQL Server 2005 Express. Também serão mostradas algumas ferramentas do Visual Studio 2005 para trabalhar com o servidor de banco de dados.
por Ricardo OnedaA grande maioria das aplicações que encontramos no dia-a-dia utiliza alguma forma de acesso e armazenamento de dados. Isso é evidente, pois sistemas processam dados e os transformam em outros dados ou informações, seja para outros sistemas ou para usuários. Assim, pode-se dizer que o acesso, manipulação e persistência dos dados é parte fundamental de praticamente qualquer sistema. Neste e nos próximos artigos, veremos quais os recursos do ASP.NET 2.0 disponíveis para o desenvolvedor, no que se refere às operações de banco de dados. Para o bom entendimento deste capítulo, o leitor deve possuir conhecimentos da linguagem C#, além de noções básicas de comandos Transact SQL.
Preparação do ambiente
Para o desenvolvimento dos exemplos desta série de artigos, utilizaremos como servidor de banco de dados o SQL Server 2005 Express Edition da Microsoft, que normalmente já é instalado com o Visual Studio 2005. Entretanto, poderíamos utilizar praticamente qualquer outro servidor de banco de dados, já que o ADO.NET não é limitado a um de banco de dados específico. Se por qualquer motivo você não possui o SQL Server 2005 Express instalado, ele poderá ser obtido gratuitamente no site http://msdn.microsoft.com/vstudio/express/sql/. Essa é uma versão mais enxuta do banco de dados relacional SQL Server 2005, ou seja, algumas características da versão comercial não estão disponíveis na versão Express. Ele é ideal para o aprendizado e também pode ser utilizado como servidor de banco de dados em aplicações comerciais de pequeno porte. Para soluções que exijam mais robustez e disponibilidade, recomenda-se o uso da versão comercial do SQL Server 2005. Como a versão Express utiliza o mesmo engine de banco de dados da versão comercial, uma eventual migração entre versões é bastante simples.
Também utilizaremos o banco de dados de exemplo
NorthWind, que é um banco de dados bastante conhecido e utilizado em aplicações
de demonstração. Apesar de ter sido
desenvolvido para o SQL Server 2000,
nada impede de o utilizarmos no SQL Server 2005.
Como ele não vem com o SQL Server 2005 Express,
será necessários fazer o download dele em
http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034&DisplayLang=en.
Após baixar o arquivo SQL2000SampleDb.msi
e executá-lo, será criada uma pasta em "C:\SQL
Server 2000 Sample Databases" com os scripts e arquivos MDF e LDF dos banco
de dados NorthWind. Você irá notar que,
além do banco de dados NorthWind, o arquivo
também contém o banco de dados de exemplo Pubs.
No nosso caso, não iremos utilizá-lo.
Agora, vamos anexar o banco de dados que acabamos de obter à instância local do SQL Server 2005 Express. Abra uma janela de linha de comando (prompt) do Windows através do menu Start > All Programs > Accessories > Command Prompt. Na janela que aparece, digite o comando abaixo para acessar o diretório onde estão os arquivos do banco de dados que fizemos download e tecle ENTER:
cd "C:\SQL Server 2000 Sample Databases"
Em seguida, utilizaremos o utilitário administrativo de linha de comando sqlcmd.exe do SQL Server 2005 para anexar o banco de dados NorthWind à instância do servidor. Digite o seguinte comando (que deve ficar em uma única linha), tecle ENTER e aguarde alguns instantes até que a operação se complete:
sqlcmd -E -S .\SQLEXPRESS -Q "EXEC sp_attach_db N"Northwind", N"c:\SQL
Server 2000 Sample Databases\northwnd.mdf""
O comando acima utiliza alguns parâmetros que são explicados a seguir:
-E: indica que a forma de autenticação a ser utilizada é do tipo
trusted connection. Neste caso, é utilizado o contexto de segurança do usuário
do Windows que está sendo executado no momento. Assim, não é preciso fornecer um
usuário e senha.
- S .\SQLEXPRESS: o parâmetro –S indica que o que vem a seguir é o servidor ao qual
desejamos nos conectar. Utilizamos o servidor local – representado pelo ponto (.)
– seguido do nome da instância na qual o SQL
Server Express está instalado – neste caso, SQLEXPRESS.
-Q "EXEC sp_attach_db N"Northwind", N"c:\SQL Server 2000
Sample Databases\northwnd.mdf"": o parâmetro –Q indica que o que vem
a seguir é um comando SQL que deverá ser executado e, logo em seguida, o utilitário
sqlcmd.exe deve ser encerrado. Neste caso, foi executada a
Stored Procedure sp_attach_db,
responsável por anexar o Northwind ao
servidor de banco de dados.
Para uma lista completa de parâmetros possíveis, utilize o seguinte comando seguido por ENTER:
sqlcmd /?
Após o término do processo para anexar o banco de dados, a janela de comando deverá ficar parecida com a figura abaixo.
Figura 1 - Anexando o NorthWind ao SQL Server 2005 Express
Apesar de termos utilizado o utilitário sqlcmd.exe, essa não é uma ferramenta que podemos chamar de amigável. O SQL Server 2005 Express não vem com uma interface gráfica de gerenciamento como na versão comercial. Entretanto, a Microsoft desenvolveu uma ferramenta chamada SQL Server Management Studio Express que preenche essa lacuna. Como os demais produtos da família Express, ele também é gratuito e pode ser obtido em https://www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=en. Para um melhor gerenciamento do servidor de banco de dados, sugerimos fortemente que o programa seja baixado e instalado. Vale a pena fazer alguns testes e verificar o quanto produtiva é a ferramenta.
Acessando Banco de Dados com o Visual Studio 2005
Conectando-se ao servidor
O Visual Studio 2005 possui algumas ferramentas nativas para trabalharmos com banco de dados. Para iniciar, abra o Visual Studio 2005 e, através do menu File > New Web Site, escolha o template ASP.NET Web Site, e crie uma aplicação chamada BancoDados no diretório de sua preferência, utilizando a linguagem Visual C#. No campo Location, escolha a opção File System para que seja utilizado o servidor web nativo do Visual Studio 2005. A tela deve ficar parecida com a figura abaixo:
Figura 2 - Criando um novo projeto para acesso a Banco de Dados
Agora, vamos adicionar uma conexão ao servidor de banco de dados do SQL Server. Abra a janela do Server Explorer através do menu View > Server Explorer ou então através do atalho Ctrl + Alt + S. Clique com o botão direito do mouse sobre o item Data Connections e escolha a opção Add Connection. Na janela Choose Data Source, escolha o Data Source Microsoft SQL Server e clique no botão Continue. Na janela que é aberta, devemos fornecer alguns dados necessários para a conexão. No campo Server Name, devemos colocar o nome do servidor e da instância onde está instalado o SQL Server 2005 Express. Neste caso, iremos preencher com o valor .\SQLEXPRESS. O ponto (.) indica que a instância chamada SQLEXPRESS encontra-se no servidor local. Utilizamos o ponto para tornar a expressão mais genérica, mas nada nos impede de colocar o nome do servidor local no lugar dele. Além disso, escolha a opção Use Windows Authentication. No item Select or enter a database name, escolha o banco de dados Northwind. Sua tela deverá ser semelhante à figura 3:
Figura 3 - Adicionando uma conexão
Clique no botão Test Connection. Você deverá receber uma mensagem de sucesso. Isso indica que os dados para conexão com o banco de dados estão corretos. Clique então no botão OK para concluir a criação da conexão. Note que no item Data Connections do Server Explorer, agora aparece a conexão com o banco de dados Northwind. Expanda o item clicando no sinal de mais e veja que temos acesso aos vários objetos do banco de dados, como tabelas, stored procedures, views e functions. Expanda alguns desses elementos e veja os objetos que temos no banco de dados Northwind. Clique com o botão direito do mouse sobre a tabela Customers, por exemplo, e veja as opções que temos: criar uma nova tabela, criar uma trigger, fazer uma query, entre outras. Escolha a opção New Query para que seja aberto o editor de queries do Visual Studio 2005, chamado de Query Designer. Será aberta a janela Add Table (como na figura 4), na qual podemos escolher quais tabelas, views e functions farão parte de nossa query.
Figura 4 - Adicionando uma tabela
Escolha a tabela Customers e clique no botão Add e depois em Close. Temos acesso então ao Query Designer, que é um editor gráfico para nossas queries. Ele é dividido em quatro painéis: o primeiro é chamado de Diagram, e é onde ficam representadas as tabelas que estamos utilizando na nossa query. O segundo é chamado Criteria, no qual podemos definir os critérios da query, como ordenação e filtros. O terceiro é o painel SQL onde fica a query propriamente dita. E por fim, o Results, onde é mostrado o resultado da query após sua execução. Na tabela Customers, escolha os campos CompanyName e ContactName. No painel Criteria, na coluna Sort da linha relativa ao campo CompanyName, escolha a opção Ascending. O que acabamos de fazer foi montar uma query SQL graficamente, que irá nos retornar os campos CompanyName e ContactName da tabela Customers, ordenados de forma crescente pelo campo CompanyName. Note que conforme configuramos nossa query no editor gráfico, as alterações se refletem automaticamente no comando SQL apresentado. Execute a query através do menu Query Designer > Execute SQL, ou então através do ícone de ponto de exclamação presente na barra de ferramentas do Visual Studio 2005. O resultado deverá ser o da figura 5.
Esse é só um pequeno exemplo do que podemos fazer com o Query Designer. Essa ferramenta atende a maioria das necessidades dos desenvolvedores no que se refere à manipulação e gerenciamento de banco de dados, tudo de dentro do próprio Visual Studio 2005, dispensando o uso de outras ferramentas. Está fora do escopo deste artigo um maior detalhamento do uso do Query Designer, mas sugiro que você explore e descubra todo o seu poder.
Figura 5 - Editor de query do Visual Studio 2005
Conectando-se ao arquivo local de banco de dados
Além de fazer a conexão a um servidor de banco de dados, o ASP.NET 2.0 agora também permite conectar a aplicação diretamente ao arquivo de banco de dados local (arquivo com extensão .mdf) do SQL Server Express. Neste caso, o arquivo de banco de dados deverá ficar na pasta App_Data, que é um diretório especial introduzido no ASP.NET 2.0 e onde ficam os arquivos relacionados a dados, como arquivos do SQL Server, arquivos do Access (com extensão .mdb), arquivos XML, entre outros. Além disso, o conteúdo da pasta App_Data não é acessível via browser, o que a torna um lugar seguro para armazenar os dados da aplicação. Essa abordagem não elimina a necessidade de termos o SQL Server Express instalado, mas facilita a distribuição da aplicação, já que não precisamos configurar o servidor do banco de dados, além de tornar o desenvolvimento mais simples, já que o arquivo de banco de dados é anexado automaticamente ao SQL Server Express.
O Visual Studio 2005 permite criar um banco de dados SQL local. Para isso, abra a janela do Solution Explorer através do menu View > Solution Explorer ou através do atalho Ctrl + Alt + L. Clique com o botão direito sobre a pasta App_Data e escolha a opção Add New Item, como mostrado na figura 6.
Na janela Add New Item, escolha o template SQL Database e dê o nome de BDExemplo.mdf e clique no botão Add. Se formos ao Server Explorer, iremos notar que o novo banco de dados foi incluído. A partir desse momento, podemos fazer todas as operações que vimos anteriormente. Apague o banco de dados BDExemplo.mdf, pois ele não será utilizado.
Figura 6 - Adicionando um arquivo de banco de dados
Conclusão
Nesta primeira parte do artigo, preparamos o ambiente com a instalação do SQL Server 2005 Express, para que possamos utilizá-lo no decorrer dos exemplos. Além disso, também foi mostrado como que o Visual Studio 2005 faz a integração com o SQL Server e algumas das ferramentas disponíveis para o desenvolvedor. No próximo artigo, iremos ver o ADO.NET e o seu modelo de acesso a dados.