Você está na página 1de 33

Construindo uma aplicao ASP.

NET para Windows Azure e SQL Azure


Este tpico ainda no foi avaliado como - Avalie este tpico Waldemir Cambiucci Dezembro 2010 Tecnologias: SQL Azure, Windows Azure, SDK 1.2 e SDK 1.3 da plataforma Windows Azure, Visual Studio 2010 Sumrio: Este artigo apresenta os passos para a construo de uma aplicao ASP.NET WEB ROLE para a plataforma Windows Azure, consumindo dados de uma base no SQL Azure. Neste artigo, voc ir aprender a preparar sua estao de desenvolvimento, migrar uma base de dados para o SQL Azure, criar sua primeira aplicao ASP.NET Web Role, acessar os dados de uma instncia de SQL no SQL Azure e finalmente publicar sua aplicao no Windows Azure. Confira! Importante: Este artigo est baseado no SDK 1.2 da plataforma Windows Azure, com comentrios sobre as funcionalidades do novo SDK 1.3 de Novembro de 2010.

Contedo
Criando uma conta no Windows Azure Preparando o ambiente de desenvolvimento Criando uma base no SQL Azure Migrando dados para o SQL Azure Criando uma aplicao ASP.NET para o Windows Azure Consumindo dados do SQL Azure Publicando uma aplicao no Windows Azure Concluses Referncias Sobre o Autor

Criando uma conta no Windows Azure


Para acompanhar esse artigo, voc ir precisar de uma conta ativa no Windows Azure. Voc pode rapidamente criar uma conta para testes na plataforma escolhendo a opo INTRODUCTORY SPECIAL, disponvel para a regio Brasil. A conta INTRODUCTORY SPECIAL oferece recursos gratuitos at um certos limites de utilizao bem indicada para seus primeiros passos na plataforma Azure. Veja mais no link a seguir: Windows Azure Introductory Special Ref.: http://www.microsoft.com/windowsazure/offers/

Preparando o ambiente de desenvolvimento

Para comear, voc precisa preparar seu ambiente de desenvolvimento com o Visual Studio 2010. Se ainda no o tiver instalado, use o Visual Studio Express Edition, com download gratuito a partir do link abaixo: Visual Studio 2010 Express Edition Ref.: http://www.microsoft.com/express/Downloads/ Com o Visual Studio corretamente instalado, faa o download de outro componente importante para a demo, o SQL Azure Migration Wizard, a partir do link abaixo: SQL Azure Migration Wizard Ref.: http://sqlazuremw.codeplex.com/ Agora abra o Visual Studio 2010 como ADMINISTRADDDOR e selecione a opo File / New / Project. A janela de templates ir aparecer. Nela, escolha a pasta Cloud e o template 'Windows Azure Project, para a linguagem de sua preferncia. Nesse exemplo, estarei usando a linguagem Visual C#. Como sua primeira aplicao, o Visual Studio ir direcion-lo para instalar o pacote Azure Tools for Visual Studio, no link a seguir: Windows Azure Tools for Microsoft Visual Studio Ref.: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2274a0a8-5d374eac-b50a-e197dc340f6f&displaylang=en Siga as instrues de instalao do Azure Tooks for Visual Studio e terminar, sua mquina est pronta para comear a demonstrao. O primeiro passo ser criar uma base de dados no SQL Azure.

Criando uma base no SQL Azure


Em sua conta no SQL Azure, abra o portal de administrao e crie uma nova instncia de SQL Azure para nosso exerccio. O portal de administrao do SQL Azure visto na figura 1 a seguir: Portal de Administrao do SQL Azure Ref.: https://sql.azure.com/

Figura 1 Portal de administrao do SQL Azure, no link https://sql.azure.com/ Vamos criar uma base chamada ADVENTUREWORKSAZURE, pois vamos migrar essa base local para o SQL Azure. Ao clicar no boto Create Database, vamos escolher uma base de 1 GB, edio Web, pois ser suficiente:

Figura 2 Criando uma instncia de SQL Azure para testes. Ao final, temos uma base da verso WEB Edition do SQL Azure, com tamanho mximo de 1 GB de dados. Note que a base de administrao master continua na lista. A base master no cobrada como servio do usurio, serve apenas para controle interno do SQL Azure.

Figura 3 Instncias de SQL Azure disponveis no portal do SQL Azure. Outra tarefa importante para nossa aplicao configurar os IPs liberados no FIREWALL do SQL Azure. Isso feito na aba Firewall Settings, que voc v na figura abaixo.

Figura 4 Configurao de endereos IPs liberados para acesso do SQL Azure. Em meu exemplo, estou liberando todas as faixas de IPs, pois o cenrio apenas de teste. Em sua aplicao final, faa a correta configurao dos IPs vlidos de suas estaes clientes para consumo do banco SQL Azure. Voc poder fazer isso atravs do boto Add Rule.

Migrando dados para o SQL Azure


Agora que temos nossa base criada, podemos usar a ferramenta SQL Azure Migration Wizard para migrar o schema e os dados de uma base local para a nuvem. Vamos escolher uma base conhecida para carga, a base AdventureWorks, que voc encontra no link abaixo: AdventureWorks Community Samples Databases for SQL Azure (December CTP) Ref.: http://msftdbprodsamples.codeplex.com/releases/view/37304 A base acima j est compatvel com os objetos suportados pelo SQL Azure. Abrindo o SQL Azure Migration Wizard, vamos escolher a carga a partir de um arquivo TSQL, como vemos a seguir:

Figura 5 Tela principal da ferramenta SQL Azure Migration Wizard, para carga de dados no SQL Azure. Note que escolhi a opo de anlise de compatibilidade e migrao do arquivo. Ainda, estou usando um arquivo reduzido do AdventureWorks, pois retirei parte dos dados, para um teste de carga mais rpido. Mantive as estruturas e schemas do banco sem alterao. O SQL Azure Migration Wizard faz uma varredura de anlise no arquivo TSQL inciado, como vemos a seguir:

Figura 6 Tela da ferramenta SQL Azure Migration Wizard, mostrando o processo de anlise de compatibilidade do arquivo TSQL, antes da carga de dados no SQL Azure. A partir dessa anlise, a ferramenta pede as credenciais de acesso e o nome do servidor SQL AZURE que vamos usar, veja:

Figura 7 Tela da ferramenta SQL Azure Migration Wizard, com a janela para entrada de credenciais de acesso para o SQL Azure. Entrando o servidor e as credenciais de sua conta no Windows Azure corretamente, o SQL Azure Migration Wizard mostrar as bases disponveis na nuvem. Como vemos, nossa base ADVENTUREWORKSAZURE aparece na lista. Vamos selecionar essa base para comear a migrao dos dados locais.

Figura 8 Tela da ferramenta SQL Azure Migration Wizard, selecionando a base de SQL disponvel no SQL Azure. Finalmente, podemos avanar e realizar o processo de migrao de dados para a base ADVENTUREWORKSAZURE no SQL Azure. Durante esse processo, podemos acompanhar a subida de estruturas e dados para a nuvem, conforme vimos no processo de anlise de compatibilidade realizado pela ferramenta.

Figura 9 Tela da ferramenta SQL Azure Migration Wizard, mostrando o processo de carga de dados e objetos do arquivo TSQL para o SQL Azure na nuvem. Ao final, nossa instncia de SQL Azure na nuvem possui os dados e tabelas da base AdventureWorks, prontos para consumo.

Figura 10 Tela da ferramenta SQL Azure Migration Wizard, mostrando o trmino do processo de carga de dados e objetos do arquivo TSQL para o SQL Azure na nuvem. Vimos at aqui o processo de migrao de uma base de dados no SQL Azure. Agora, vamos criar uma aplicao Web que ir consumir esses dados.

Criando uma aplicao ASP.NET para o Windows Azure


No Visual Studio 2010, selecione a opo File / New / Project. Quando a janela de novos projetos aparecer, voc deve escolher a opo Cloud e o template Windows Azure Project, para sua linguagem preferida. Nesta demonstrao, estou usando a linguagem Visual C#, veja:

Figura 11 Janela de seleo de templates do Visual Studio 2010, mostrando a pasta de templates para aplicaes para o Windows Azure. Importante: Note que em minha instalao do Visual Studio 2010, estou usando o novo pacote SDK de Novembro de 2010, disponvel a partir do link: Windows Azure SDK and Windows Azure Tools for Microsoft Visual Studio (November 2010) Ref.: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-40504307-86c4-9dadaa5ed018 Para nosso exerccio, vamos usar o nome de projeto AdventureWorksAzure, pois vamos consumir os dados da base ADVENTUREWORKSAZURE, no SQL Azure j criada. Ao selecionar esse template, vamos poder escolher o template necessrio para nossa aplicao. Assim, vamos escolher a role ASP.NET Web Role, com o nome AdventureWorksWeb, como vemos a seguir:

Figura 12 Janela de seleo de templates de Servios para a Nuvem do Visual Studio 2010, mostrando o templates ASP.NET Web Role selecionado. A seguir, o Visual Studio ir expandir esse template, criando uma aplicao simples de ASP.NET, pronta para uso. Ao finalizar a criao do projeto, voc pode executar a aplicao pela primeira vez fazendo F5, notando assim a pgina ASP.NET a seguir:

Figura 13 Tela da aplicao ASP.NET Web Role criada pelo Visual Studio 2010, para o templates ASP.NET WEB ROLE do Windows Azure. Essa aplicao Web Role possui apenas 1 instncia de mquina virtual cadastrada. Voc pode checar isso no arquivo de configurao do projeto, ServiceConfiguration.cscfg, onde vemos o atributo Instance count = 1:

Figura 14 Arquivo de configurao da aplicao ASP.NET Web role, mostrando o nmero de instncias configurado para a aplicao. Em nosso ambiente local, nossa aplicao Web executada pelo Development Fabric, um simulador de instncias do Windows Azure que permite testes locais com o ambiente do Visual Studio 2010. Voc pode checar o funcionamento do Development Fabric atravs do cone a seguir:

Figura 15 cone de ativao do Development Fabric, para acompanhamento da simulao de instncias de mquinas virtuais do Windows Azure no ambiente de desenvolvimento.

Importante: se voc estiver usando o novo SDK 1.3 de Novembro de 2010, o Development Fabric mudou de nome para Compute Emulator UI, conforme vemos na figura a seguir:

Figura 16 cone de ativao do Compute Emulator, para acompanhamento da simulao de instncias de mquinas virtuais do Windows Azure no ambiente de desenvolvimento. Selecionando a opo Show Development Fabric UI ou Show Compute Emulator UI, voc ver as instncias de mquinas virtuais criadas em sua estao, quando a aplicao estiver rodando para testes. Rode novamente a aplicao e veja a mquina Web Role em operao.

Figura 17 Tela do Development Fabric apresentando uma instncia de mquina virtual Web Role, de nossa aplicao ASP.NET WEB ROLE, conforme definido no arquivo de configurao.

Consumindo dados do SQL Azure


Agora que nossa aplicao ASP.NET est corretamente criada e rodando, 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 pgina principal de nossa aplicao ASP.NET Web Role. Voc encontra o objetvo GridView na barra de ferramenta Toolbox, disponvel no ambiente do Visual Studio 2010.

Figura 18 Tela do Visual Studio, mostrando a adio do objeto GridView para a pgina default.aspx da aplicao ASP.NET WEB ROLE. Para o binding do Data Source ou fonte de dados do GridView, vamos escolher a opo New Data Source no combo Choose Data Srouce. Uma janela de configurao ir aparecer, onde vamos selecionar a opo SQL Database como vemos na figura a seguir:

Figura 19 Janela do Data Source Configuration Wizard, para seleo do tipo de fonte de dados destinado para o objeto GridView. Estou aceitando o nome default para o data source criado, aqui chamado SqlDataSource1. Como prximo passo, vamos criar uma conexo com o banco de dados para nosso objeto GridView. Para isso, vamos selecionar New Connection na janela a seguir:

Figura 20 Janela do Data Source Configuration Wizard, para seleo da conexo de dados do objeto GridView. A janela de conexo ir aparecer, onde vamos indicar o nome do servidor SQL Azure que temos, assim como nossas credenciais.

Figura 21 Janela para entrada de credenciais de nossa conexo com o SQL Azure. Aqui, voc pode usar as mesmas credenciais que usou no SQL AZURE MIGRATION WIZARD, ou pode ainda usar uma conta de usurio especfica para sua aplicao. Para criar contas especficas, voc pode usar o prprio SQL SERVER MANAGEMENT STUDIO, para conectar ao SQL Azure e operar suas instncias, usurios e dados, do mesmo modo que faz localmente. Quando a conexo 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 prxima janela indica o nome da ConnectionString corretamente gerada para nossa aplicao. Essa ConnectionString estar configurada no arquivoWEB.CONFIG de nossa WEB ROLE.

Figura 22 Janela para entrada de credenciais de nossa conexo com o SQL Azure. Podemos agora indicar qual ser nossa consulta SQL sobre nossa base de dados. Vou selecionar uma consulta customizada, como vemos na janela a seguir:

Figura 23 Janela para definio de consulta SQL para a fonte de dados do objeto GridView. Vamos 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

Figura 24 Janela para definio de consulta SQL para a fonte de dados do objeto GridView. Especificando uma consulta customizada para a conexo de dados Fazendo o teste de consulta na janela seguinte, j temos o retorno de dados do SQL Azure em nossa janela do Visual Studio, veja:

Figura 25 Janela de teste de consulta customizada, mostrando os dados retornadas pela conexo com a base no SQL Azure. Finalmente, estamos prontos para executar pela primeira vez nossa aplicao ASP.NET WEB ROLE consumindo dados do SQL Azure. Faa seu F5 e veja os resultados na tela:

Figura 26 Tela da pgina ASP.NET WEB ROLE, consumindo dados do SQL Azure, rodando localmente na estao de desenvolvimento.

Publicando uma aplicao no Windows Azure


Uma vez terminado os testes locais, podemos publicar nossa aplicao para o Windows Azure. Isso feito atravs da opo Publish da janela doSolution Explorer no Visual Studio 2010, veja:

Figura 27 Opo de publicao de aplicao para o Windows Azure no Visual Studio 2010. Selecionando Publish, temos duas opes para realizar a publicao de aplicao no Windows Azure: ou fazemos manualmente, com o upload dos arquivos de projeto e configurao atravs do portal do Windows Azure; ou fazemos o upload atravs das credenciais cadastradas no Visual Studio. Vamos escolher a segunda opo. Para isso, estou usando minha SUBSCRIPTION ID, que voc encontra no portal do Windows Azure, na aba ACCOUNT, como vemos a seguir:

Figura 28 Tela de informaes de Account no portal de administrao do Windows Azure, mostrando o local para se obter o Subscription ID de sua conta ativa. Obtido o Subscription ID, a opo de publicao no Visual Studio pode ser feita, onde vemos a seguinte janela:

Figura 29 Janela de definio de credenciais para upload de um projeto para o Windows Azure a partir do Visual Studio 2010. A janela de Publicao do Visual Studio ainda pede outras informaes alm das credenciais, como o SLOT para deployment, se PRODUO 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 operao:

Figura 30 Status do processo de upload do projeto ASP.NET WEB ROLE para o Windows Azure. Ao final da operao, nossa aplicao ASP.NET estar publicada no Windows Azure, no slot de STAGE, como vemos a seguir:

Figura 31 rea de STAGE no portal de administrao e hosting de aplicaes no Windows Azure. Note que no slot de STAGE, nossa aplicao oferece uma URL temporria, apenas para testes. A partir dos testes realizados em STAGE, podemos migrar nossa aplicao para o slot de PRODUO (PRODUCTION), onde teremos acesso a URL definitiva.

Figura 32 rea de PRODUCTION no portal de administrao e hosting de aplicaes no Windows Azure. Em nosso exemplo, minha URL definitiva a HTTP://ADVENTUREWORKSWEB.CLOUDADPP.NET/ , que deve abrir a aplicao ASP.NET WEB ROLEconsumindo os dados do SQL Azure, conforme vimos at aqui.

Figura 33 Tela principal da aplicao ASP.NET WEB ROLE rodando a partir da URL definitiva do Windows Azure.

Terminamos assim essa demonstrao de criao de uma ASP.NET Web role com base de dados no SQL Azure.

Concluses
Neste artigo, vimos os passos principais para construo de uma aplicao ASP.NET simples consumindo o SQL Azure. Existem ainda muitas outras combinaes de aplicaes que podemos fazer na plataforma Azure. Para saber mais, no deixe de visitar o Windows Azure Guidance, que est consolidando muitos outros exemplos para a plataforma. Para saber mais, confira o link a seguir: patterns & practices - Windows Azure Guidance Ref.: http://wag.codeplex.com/ Finalmente, no final de Novembro de 2010, a Microsoft lanou o novo portal de administrao do Windows Azure, baseado em uma interface Silverlight. Este artigo apresentou as atividades de administrao do portal atravs da interface antiga, que tambm est disponvel nos links apresentados. Em artigos futuros, vamos tratar os novos recursos do portal de administrao do Windows Azure e suas funcionalidades na interface Silverlight. Aguardem. At a prxima.

Referncias
Windows Azure Introductory Special Ref.: http://www.microsoft.com/windowsazure/offers/ Visual Studio 2010 Express Edition Ref.: http://www.microsoft.com/express/Downloads/ SQL Azure Migration Wizard Ref.: http://sqlazuremw.codeplex.com/ Windows Azure Tools for Microsoft Visual Studio Ref.: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2274a0a8-5d374eac-b50a-e197dc340f6f&displaylang=en Portal de Administrao do SQL Azure Ref.: https://sql.azure.com/ AdventureWorks Community Samples Databases for SQL Azure (December CTP) Ref.: http://msftdbprodsamples.codeplex.com/releases/view/37304 patterns & practices - Windows Azure Guidance Ref.: http://wag.codeplex.com/ SQL Azure Team Blog Ref.: http://blogs.msdn.com/b/sqlazure/ SQL Azure Migration Wizard v3.4 Ref.: http://sqlazuremw.codeplex.com/ SQL Azure Labs Ref.: http://www.sqlazurelabs.com/ SQL Azure Pricing Ref.: http://www.microsoft.com/windowsazure/pricing/ SQL Azure Unsupported Transact-SQL Statements Ref.: http://msdn.microsoft.com/en-us/library/ee336253.aspx SQL Azure Forum MSDN Ref.: http://social.msdn.microsoft.com/Forums/en/windowsazuredata/threads Windows Azure SDK and Windows Azure Tools for Microsoft Visual Studio (November 2010)

Ref.: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-40504307-86c4-9dadaa5ed018

Sobre o Autor
Waldemir Cambiucci (wcambiuc@hotmail.com) trabalha na Microsoft Brasil como arquiteto de solues, com foco na comunidade de arquitetos e clientes corporativos. graduado em Engenharia de Computao, mestre em Engenharia Eltrica e PsGraduado em Finanas e Administrao. Com mais de 15 anos de experincia em TI, atua na Microsoft h 8 anos, tendo participado de projetos importantes no Brasil e no exterior. palestrante frequente em diversos eventos tcnicos e escreve periodicamente para revistas e sites de tecnologia. membro do IASA Global (International Association of Software Architects) e certificado IASA Foundations, alm de diversas certificaes Microsoft. Seu blog o http://blogs.msdn.com/wcamb/ e seu twitter o http://twitter.com/wcamb/.
Isso foi til para voc? Sim No

Você também pode gostar