Arquitetura de Soluções

por Waldemir Cambiucci

SQL Azure : uma aplicação Web Role com SQL Azure – parte 2/2

Olá pessoal, tudo certo?

Esse post é a segunda e última parte da demonstração de aplicação ASP.NET consumindo uma base no SQL Azure. Você confere o post 1 neste link aqui. Na primera parte, criamos uma instância de SQL Azure na nuvem, pronta para consumo.

Importante: este post ainda está compatível com o portal antigo de administração do Windows Azure, assim como o SDK 1.2 do Windows Azure. O novo portal de administração está em Silverlight e entrou em operação esta semana. Em breve, farei a atualização dos principais recursos e funcionalidades sobre o novo portal, que ficou muito bonito. Aguardem!

Agora, vamos criar uma aplicação Web que irá consumir esse dados.

CRIANDO UMA APLICAÇÃO WEB ROLE PARA WINDOWS AZURE

No Visual Studio 2010, selecione a opção FILE / NEW / PROJECT. Quando a janela de novos projetos aparecer, você deve escolher a opção CLOUD, com o template “Windows Azure Cloud Service”, para sua linguagem preferida.

Nesta demonstração, estou usando a linguagem Visual C#, veja:

image

Para o projeto, estou escolhendo o nome “AdventureWorksAzure”, pois vamos consumir os dados da base ADVENTUREWORKSAZURE, no SQL Azure já criada.

Ao selecionar esse template, vamos poder escolher as ROLES necessárias em nossa aplicação. Para nossa demo, vamos escolher apenas a role “ASP.NET Web Role”, com o nome “AdventureWorksWeb”, como vemos a seguir:

image

A seguir, o Visual Studio irá expandir esse template, criando uma aplicação simples de ASP.NET, pronta para uso. Ao final da criação do projeto, você pode executar a aplicação pela primeira vez, notando a página ASP.NET a seguir:

image

Essa aplicação Web Role possui apenas 1 instância de máquina virtual cadastrada. Você pode checar isso no arquivo de configuração do projeto, “ServiceConfiguration.cscfg”, onde vemos o atributo Instance count  =  ‘1’:

image

Em nosso ambiente local, nossa aplicação Web é executada pelo Development Fabric, um simulador de instâncias do Windows Azure que permite testes locais com o ambiente do Visual Studio 2010. Você pode checar o Development Fabric funcionando através do ícone a seguir:

image

Selecionando a opção “Show Development Fabric UI”, você verá as instâncias de máquinas virtuais criadas em sua estação, quando a aplicação estiver rodando para testes. Rode novamente a aplicação e veja a máquina Web Role em operação:

image

CONSUMINDO DADOS DO SQL AZURE

Agora que nossa aplicação ASP.NET está corretamente criada, podemos partir para o binding com o SQL Azure e consumo de seus dados. Para isso, vamos usar um objeto GRIDVIEW, que vamos adicionar na página principal de nossa aplicação ASP.NET Web Role, como vemos a seguir:

image

Para o binding do Data Source, vamos escolher a opção “New Data Source”. Uma janela de configuração irá aparecer, onde vamos selecionar “SQL Database”. como vemos a seguir:

image

Estou aceitando o nome default para o data source criado, aqui chamado “SqlDataSource1”. Como próximo passo, vamos criar uma conexão com o banco de dados. Para isso, vamos selecionar “New Connection” na janela a seguir:

image

A janela de conexão irá aparecer, onde vamos indicar o nome do servidor SQL Azure que temos, assim como nossas credenciais.

image

Aqui, você pode usar as mesmas credenciais que usou no SQL Azure Migration Wizard, ou pode ainda usar uma conta de usuário específica para sua aplicação. Para criar contas específicas, você pode usar o próprio SQL SERVER MANAGEMENT STUDIO, para conectar ao SQL Azure e operar suas instâncias, usuários e dados, do mesmo modo que faz localmente.

Quando a conexão for testada, selecione a base de dados ADVENTUREWORKSAZURE, que irá aparecer no combo “Select or enter a database name”, que vemos na figura acima.

A próxima janela indica o nome da ConnectionString corretamente gerada para nossa aplicação. Essa ConnectionString estará configurada no arquivo WEB.CONFIG de nossa WEB ROLE.

image

Podemos agora indicar qual será nossa consulta SQL sobre nossa base de dados. Vou selecionar uma consulta customizada, como vemos na janela a seguir:

image

Agora, vou entrar uma query customizada, sobre a tabela SALESLT da base ADVENTUREWORKSAZURE que temos no SQL Azure, veja:

SELECT [ProductID]
      ,[Name]
      ,[ProductNumber]
      ,[Color]
      ,[ListPrice]
      ,[Size]
      ,[Weight]
      ,[SellStartDate]
      ,[ModifiedDate]
  FROM [ADVENTUREWORKSAZURE].[SalesLT].[Product]
GO

image

Fazendo o teste de consulta na janela seguinte, já temos o retorno de dados do SQL Azure em nossa janela do Visual Studio, veja:

image

Finalmente, estamos prontos para executar pela primeira vez nossa aplicação ASP.NET WEB ROLE consumindo dados do SQL Azure. Faça seu F5 e veja os resultados:

image

Uma vez terminado os testes locais, podemos publicar nossa aplicação para o Windows Azure. Isso é feito através da opção “PUBLISH” da janela do Solution Explorer no Visual Studio 2010, veja:

image

Selecionando “Publish”, temos duas opções para realizar a publicação de aplicação no Windows Azure: ou fazemos manualmente, com o upload dos arquivos de projeto e configuração através do portal do Windows Azure; ou fazemos o upload através das credenciais cadastradas no Visual Studio. Vamos escolher a segunda opção.

Para isso, estou usando minha SUBSCRIPTION ID, que você encontra no portal do Windows Azure, na aba ACCOUNT, como vemos a seguir:

image

Obtido o Subscription ID, minha opção PUBLISH no Visual Studio pode ser feita, onde vemos a seguinte janela:

image

A janela de Publicação do Visual Studio ainda pede outras informações além das credenciais, como o SLOT para deployment, se PRODUÇÃO ou STAGE, o nome do STORAGE que será usado no Windows Azure e um label para o deployment.

A partir desses dados, o Visual Studio inicia o processo de upload do projeto, mostrando o andamento da operação:

image

Ao final da operação, nossa aplicação ASP.NET estará publicada no Windows Azure, no slot de STAGE, como vemos a seguir:

image

Note que no slot de STAGE, nossa aplicação oferece uma URL temporária, apenas para testes. A partir dos testes realizados em STAGE, podemos migrar nossa aplicação para o slot de PRODUÇÃO (PRODUCTION), onde teremos acesso a URL definitiva.

image

Em nosso exemplo, minha URL definitiva é a HTTP://ADVENTUREWORKSWEB.CLOUDADPP.NET/, que deve abrir a aplicação ASP.NET WEB ROLE consumindo os dados do SQL Azure, conforme vimos até aqui.

image

Terminamos assim essa demonstração simples de criação de uma Web Application com base de dados no Windows Azure.

Porém, existem muitas outras combinações de aplicações que podemos fazer na plataforma Azure. De fato, quanto mais exploro seus recursos, mais me surpreendo com a facilidade de desenvolvimento e clareza de seus projetos.

Não deixe de visitar o Windows Azure Guidance, que está consolidando muitos outros exemplos para a plataforma. Veja mais no link a seguir:

patterns & practices – Windows Azure Guidance
Ref.: http://wag.codeplex.com/

Se você gostou dessa demo ou tem novas sugestões para outras demonstrações, não deixe de colocar seus comentários.

Por enquanto é só! Até o próximo post 🙂

Waldemir.