Exportar (0) Imprimir
Expandir Tudo
Este tópico ainda não foi avaliado como - Avalie este tópico

Considerações sobre desenvolvimento no Banco de dados SQL do Windows Azure

Atualizado: dezembro de 2013

Desenvolver aplicativos para o Microsoft Banco de dados SQL do Windows Azure é muito semelhante ao desenvolvimento de aplicativos para o SQL Server. Este tópico descreve algumas diferenças e algumas considerações sobre o desenvolvimento de aplicativos do Banco de dados SQL do Windows Azure. Além disso, o tópico fornece as etapas básicas que você precisa levar como um desenvolvedor e lista as práticas de codificação recomendadas.

Criando servidores de Banco de dados SQL

Para usar o Banco de dados SQL do Windows Azure, você deve criar primeiramente uma conta da plataforma Windows Azure. A conta do Windows Azure é usada para configurar e gerenciar suas assinaturas e cobrar pelo consumo do Windows Azure, Windows Azure AppFabric e Banco de dados SQL do Windows Azure. Depois de criar a conta do Windows Azure, você poderá usar o Portal de Gerenciamento da Plataforma Windows Azure para adicionar ou remover um servidor e um banco de dados do Banco de dados SQL. Também é possível usar a API de gerenciamento do Banco de dados SQL do Windows Azure para adicionar programaticamente ou remover servidores do Banco de dados SQL e gerenciar regras de firewall associadas a um servidor.

Um servidor do Banco de dados SQL é um grupo lógico de bancos de dados e atua como um ponto administrativo central para vários bancos de dados. Quando você cria um servidor do Banco de dados SQL, um banco de dados master somente leitura é criado automaticamente. O banco de dados master mantém o controle de quais logons têm permissão para criar bancos de dados ou outros logons. Você deve estar conectado ao banco de dados master sempre que criar CREATE, alterar ALTERou remover DROP logons ou bancos de dados. Para obter mais informações sobre administração da segurança no Banco de dados SQL do Windows Azure, consulte Gerenciando bancos de dados e logons no Banco de dados SQL do Windows Azure.

Por padrão, todo acesso ao seu servidor do Banco de dados SQL é bloqueado pelo firewall do Banco de dados SQL. Para começar a usar seu servidor do Banco de dados SQL, especifique uma ou mais regras de firewall no nível de servidor que habilitem o acesso ao seu servidor do Banco de dados SQL. As regras de firewall no nível de servidor podem ser gerenciadas pela interface de usuário do Portal de Gerenciamento ou, programaticamente, usando a API de Gerenciamento de Banco de Dados. Para usar a API de Gerenciamento de Banco de Dados, adicione um certificado para autenticação, conforme descrito em Authenticating Windows Azure SQL Database Management API Requests.

Depois de criar uma configuração de firewall no nível de servidor, você pode usar o logon da entidade de segurança no nível de servidor e o banco de dados master para exibir e editar suas configurações de firewall. No banco de dados master, as configurações de firewall são conhecidas como regras. A exibição sys.firewall_rules mostra as configurações de firewall no nível de servidor atuais e os procedimentos armazenados sp_set_firewall_rule e sp_delete_firewall_rule permitem alterar as regras de firewall no nível de servidor.

Além disso, se desejar controlar o acesso a determinados bancos de dados no seu servidor do Banco de dados SQL, você pode criar regras de firewall no nível de banco de dados para esses bancos de dados. É possível criar regras de firewall no nível de banco de dados para os bancos de dados de usuário e master. Você pode se conectar a um banco de dados e exibir as regras de firewall no nível de banco de dados na exibição sys.database_firewall_rules. Os procedimentos armazenados sp_set_database_firewall_rule e sp_delete_database_firewall_rule nos bancos de dados de usuário e mestre permitem alterar as regras de firewall no nível de banco de dados para o respectivo banco de dados. Para obter mais informações sobre regras de firewall no nível de servidor e de banco de dados, consulte Firewall do Banco de dados SQL do Windows Azure.

Você pode acessar os detalhes de cobrança das suas contas do Banco de dados SQL no servidor do Banco de dados SQL usando as exibições do sistema sys.database_usage e sys.bandwidth_usage. Para obter mais informações, consulte Contas e cobrança no Banco de dados SQL do Windows Azure.

Criando Bancos de dados SQL

Há dois modos de criar Banco de dados SQL:

  • Usando o Portal de Gerenciamento. 

  • Usando a instrução CREATE DATABASE.

Para obter informações sobre como migrar um banco de dados de uma instância local do SQL Server para o Banco de dados SQL, consulte Migrando bancos de dados para o Banco de dados SQL do Windows Azure (antigo SQL Azure).

Além disso, um exemplo de código fornecido em Como conectar-se ao Banco de Dados SQL do Windows Azure usando o ADO.NET demonstra como usar a instrução CREATE DATABASE em código de aplicativo cliente.

noteObservação
Para alterar a edição e o nome do seu banco de dados após a criação, você pode usar a instrução ALTER DATABASE.

Criando e hospedando aplicativos de Banco de dados SQL

Há dois modos para compilar e hospedar aplicativos do Banco de dados SQL do Windows Azure:

Você pode minimizar a latência da rede de solicitações ao Banco de dados SQL hospedando seu aplicativo na plataforma Windows Azure. Implantar seu aplicativo no Windows Azure fornece transações mais eficientes entre seu aplicativo e o Banco de dados SQL em comparação a um aplicativo hospedado fora do Windows Azure. Para obter mais informações sobre como hospedar aplicativos e dados na nuvem, consulte Acesso a dados do Banco de Dados SQL do Windows Azure.

A largura de banda usada entre o Banco de dados SQL e o Windows Azure ou o Windows Azure AppFabric é gratuita na mesma região ou no mesmo data center. Quando for implantar um aplicativo do Windows Azure, localize o aplicativo e o Banco de dados SQL na mesma região para evitar custos de largura de banda. Para obter mais informações, consulte Contas e cobrança no Banco de dados SQL do Windows Azure.

Desenvolvendo aplicativos de Banco de dados SQL

Desenvolver aplicativos para o Banco de dados SQL do Windows Azure é muito semelhante ao desenvolvimento de aplicativos para o SQL Server. Você pode escolher entre muitos tipos de aplicativos e tecnologias para desenvolver um aplicativo que acessa o Banco de dados SQL do Windows Azure. Banco de dados SQL do Windows Azure funciona com aplicativos de terceiros, PHP e muitos aplicativos Microsoft, como ADO.NET, o Estrutura da entidade, WCF Data Services e o ODBC.

O Banco de dados SQL do Windows Azure fornece um serviço de banco de dados para vários locatários de grande escala nos recursos compartilhados. Para proporcionar uma boa experiência boa a todos os clientes do Banco de dados SQL do Windows Azure, sua conexão com o serviço pode ser fechada devido às seguintes condições:

  • Uso excessivo dos recursos

  • Consultas de execução longa

  • Transações simples de execução longa, entre as instruções BEGIN TRAN e END TRAN

  • Conexões ociosas

Isso é diferente de como uma instância local do SQL Server funciona.

Para proporcionar uma experiência de usuário simplificada quando uma conexão for fechada, incorpore a lógica de repetição em seu aplicativo detectar uma conexão fechada e depois tente concluir a ação interrompida. Para obter mais informações sobre as limitações de conexão no Banco de dados SQL do Windows Azure, consulte Diretrizes e limitações gerais (Banco de dados SQL do Windows Azure).

Quando o aplicativo cliente conectar-se ao Banco de dados SQL do Windows Azure, CONTEXT_INFO (Transact-SQL) será definido automaticamente com um valor GUID específico de uma sessão exclusiva. Recupere esse valor GUID e use-o em seu aplicativo para rastrear os problemas de conectividade.

As instruções de código C# a seguir demonstram como modificar seu aplicativo para rastrear a conectividade.


// Define global variables.
private static Dictionary<SqlConnection, Guid> _cache = new Dictionary<SqlConnection, Guid>();
public static SqlConnection conn;

// Connect to the sample database.
using (conn = new SqlConnection(connStringBuilder.ToString()))
{
   // Define the event handler.
   conn.StateChange += new StateChangeEventHandler(OnConnectionStateChange);
   conn.Open();
   using (SqlCommand command = conn.CreateCommand())
   {
      // Perform a query or an update.
      // Retrieve the session ID.
      Guid id = SessionId(conn);
      conn.Close();
    }
}

// Retrieve the session ID to track the connectivity. 
public static Guid SessionId(this SqlConnection conn)
{
    return _cache[conn];
}

// Implement your event handler.
public static void OnConnectionStateChange(object sender, StateChangeEventArgs e)
{
   SqlConnection conn = (SqlConnection)sender;
   switch (e.CurrentState)
   {    
      case ConnectionState.Broken:
           Console.WriteLine("Connection is broken...");
           _cache.Remove(conn);
           break;
      case ConnectionState.Closed:
           Console.WriteLine("Connection is closed...");
           _cache.Remove(conn);
           break;
      case ConnectionState.Open:
           Console.WriteLine("Connection is open...");
           using (SqlCommand cmd = conn.CreateCommand())
           {
               cmd.CommandText = "SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())";
              _cache[conn] = new Guid(cmd.ExecuteScalar().ToString());
            }
            break;
   }
}

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft. Todos os direitos reservados.