Compartilhar via


Implantação privada vs. implantação central (SQL Server Compact)

Você pode implantar aplicativos gerenciados criados com o SQL Server Compact 3.5 usando a implantação central ou a implantação privada do SQL Server Compact. Na implantação central, o SQL Server Compact é instalado em um computador usando o arquivo do Microsoft Windows Instalador (MSI) e em um dispositivo, copiando e instalando arquivos Windows Cabinet (CAB) do SQL Server Compact específicos de dispositivo. Na implantação privada em computadores e dispositivos, os componentes do SQL Server Compact são colocados na própria pasta do aplicativo. A implantação privada no SQL Server Compact dessa maneira também é referenciada como implantação XCOPY do SQL Server Compact.

Com implantação central, um aplicativo usa os assemblies gerenciados pelo SQL Server Compact (System.Data.SqlServerCe.dll e System.Data.SqlserverCe.Entity.dll) instalados no Cache de assembly global (GAC) e os componentes nativos do SQL Server Compact que são registrados em COM. Isso significa que atualizações para SQL Server Compact 3.5 podem ser feitas centralmente usando o Microsoft Update. Aplicativos que usam a implantação central de SQL Server Compact usarão a versão atualizada de SQL Server Compact 3.5 na sua próxima execução. Uma desvantagem em potencial da implantação central é que o SQL Server Compact 3.5 só pode ser instalado por um usuário com privilégio de Administrador no computador. (Isso ocorre pois esses privilégios exigem a instalação de assemblies no GAC e o registro dos componentes nativos.) Se o aplicativo for implantado com o uso da tecnologia ClickOnce e o SQL Server Compact 3.5 for implantado centralmente como um pré-requisito durante a instalação, a instalação talvez falhe porque o usuário não tem os privilégios necessários para instalar o SQL Server Compact 3.5.

Com s implantação privada, um aplicativo usa sua própria cópia local dos assemblies gerenciados do SQL Server Compact e quaisquer bibliotecas nativas exigidas do SQL Server Compact. Esses assemblies e bibliotecas nativas são empacotadas com o aplicativo e instalados no caminho de arquivo do aplicativo no sistema de destino quando implantados. Se os assemblies SQL Server Compact implantados de forma privada tiverem um número de versão posterior ao dos instalados centralmente no GAC, o aplicativo usará os assemblies implantados de forma privada e não os implantados centralmente. Se não houver assembly SQL Server Compact no GAC (SQL Server Compact não foi implantado centralmente no computador de destino), o aplicativo usará seus assemblies implantados de forma privada. Uma vantagem de usar a implantação privada é que, como os assemblies SQL Server Compact não são instalados no GAC e os componentes nativos não são registrados com COM, pode-se evitar os problemas em potencial enfrentados na implantação central em sistemas bloqueados. Mas a implantação privada atribui maior responsabilidade ao desenvolvedor, pois as atualizações para assemblies SQL Server Compact implantadas de forma privada não podem ser atendidos centralmente. (Só a instância instalada centralmente do SQL Server Compact 3.5 é atualizada pelo Microsoft Update.) Se for necessária uma atualização para os assemblies do SQL Server Compact implantados com o aplicativo, o desenvolvedor deverá recriar o aplicativo com uma versão do SQL Server Compact 3.5 que inclui as atualizações necessárias e depois republicá-lo.

Dica

O Microsoft Update fornecerá atualizações de segurança críticas para o SQL Server Compact em computadores onde o SQL Server Compact é implantado de forma privada. Estas atualizações ocorrerão mesmo que não exista instalação central de SQL Server Compact no computador (os assemblies SQL Server Compact não são instalados no GAC e as bibliotecas nativas do SQL Server Compact não são registradas).

A implantação privada e central de aplicativos baseados em SQL Server Compact tem suporte para aplicativos de área de trabalho e de dispositivos.

Atualizações e implantação privada

Um dos problemas da implantação privada é que o CLR, por padrão, carrega assemblies do GAC. Por isso é difícil enviar atualizações por push a assemblies SQL Server Compact implantados de forma privada quando existe uma versão anterior do SQL Server Compact no GAC, pois o CLR continua carregando os assemblies SQL Server Compact do GAC. O único caso onde um assembly implantado de forma privada será carregado pelo CLR ocorre quando ele tem uma versão de assembly que é diferente daquela no GAC, e o aplicativo foi compilado com o assembly que está implantado no GAC.

Começando com SQL Server Compact 3.5 Service Pack 1 (SP1), este problema foi tratado por:

  • Incrementando o número de versão de assembly para todas as atualizações de software, inclusive hotfixes, pacotes de serviço, patches críticos e atualizações de segurança. A versão do assembly é incrementada desta forma: 3.5.1.0, 3.5.1.2, 3.5.1.3 e assim por diante.

  • Instalando cópias adicionais dos assemblies gerenciados (System.Data.SqlServerCe.dll e System.Data.SqlServerCe.Entity.dll) na seguinte pasta: %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v3.5\Private.

Atualizações são aplicadas da maneira seguinte:

  • Para hotfixes comuns, a atualização é aplicada a todas as cópias de um ou ambos os assemblies gerenciados; porém, a versão só é atualizada para as cópias dos assemblies na pasta Privada. Isso garante que assemblies da pasta Privada em um computador de desenvolvimento tenham um número de versão mais recente do que os instalados no GAC para atualizações não críticas. Isso também garante que para aplicativos que usam a implantação privada em computadores onde a atualização é aplicada, o CLR continue carregando os assemblies SQL Server Compact 3.5 do caminho do aplicativo (pois o número de versão dos assemblies no GAC não muda).

  • Para atualizações de segurança, pacotes de serviço e atualizações críticas, a atualização é aplicada a todas as cópias dos dois assemblies gerenciados, e a versão também é atualizada para todos. Além disso, a Política de Publicador é atualizada para garantir o redirecionamento automático de todos os assemblies de versões anteriores para a nova versão. Isso garante que para computadores nos quais a atualização é aplicada, o CLR carregará os assemblies gerenciados do GAC para todos os aplicativos do SQL Server Compact 3.5; inclusive os que usaram a implantação privada.

Desenvolvendo aplicativos que usam a implantação privada

Dica

O Visual Studio 2010 é o ambiente preferencial para desenvolver aplicativos de área de trabalho. O Visual Studio 2008 SP1 é preferencial para desenvolver aplicativos de dispositivo inteligente. O Visual Studio 2010 não tem suporte para desenvolver aplicativos de dispositivo inteligente. Para obter mais informações, consulte Instalando um ambiente de desenvolvimento.

Para desenvolver um aplicativo de área de trabalho que usa a implantação privada do SQL Server Compact 3.5:

  1. Verifique se as atualizações são atuais para SQL Server Compact 3.5 no computador de desenvolvimento.

  2. Acrescente qualquer referência ao dois assemblies gerenciados do SQL Server Compact em seu projeto navegando até a pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v3.5\Private na caixa de diálogo Adicionar Referência em Visual Studio. (Para aplicativos que usam a implantação central, estas referências são adicionadas da guia .NET.)

  3. Acrescente as bibliotecas nativas necessárias ao projeto. Elas devem ser adicionadas navegando até a pastas %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v3.5 ou até a pasta %Arquivos de Programas (x86)%\Microsoft SQL Server Compact Edition\v3.5 ou ambas. A pasta da qual você adiciona as bibliotecas nativas depende da plataforma (x86, x64ou Qualquer CPU) para a qual você está desenvolvendo seu aplicativo. Acrescente no mínimo os seguintes assemblies nativos: sqlceme35.dll, ssceqp35.dll, sscese35.dll e sqlceer35xx.dll.

    Dica

    Os assemblies nativos SQL Server Compact 3.5 de 64 bits não são instalados em um computador de 32 bits. Para criar aplicativos SQL Server Compact 3.5 para computadores de 64 bits ao usar um ambiente de desenvolvimento de 32 bits, você deve extrair esses assemblies do instalador SQL Server Compact 3.5 de 64 bits (SSCERuntime_x64-ENU.msi). Para obter mais informações, consulte Como extrair DLLs de 64 bits do instalador em tempo de execução do SQL Server Compact.

  4. Verifique se os assemblies gerenciados e as bibliotecas nativas adicionadas acima foram copiados na saída.

Para obter informações detalhadas sobre como criar aplicativos de área de trabalho, consulte o Criando aplicativos para desktops (SQL Server Compact).

Para desenvolver um aplicativo de dispositivo inteligente que usa a implantação privada do SQL Server Compact 3.5:

  1. Verifique se as atualizações são atuais para SQL Server Compact 3.5 no computador de desenvolvimento.

  2. Adicione uma referência ao .NET Compact Framework Provedor de Dados para SQL Server Compact a partir da guia .NET da na caixa de diálogo Adicionar Referência no Visual Studio. Isso adiciona o provedor de dados da pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v3.5\Devices para seu projeto. Esta etapa é a mesma para todos os aplicativos de dispositivo inteligente quando eles usam versões implantadas de forma privada ou central do SQL Server Compact.

  3. Acrescente as bibliotecas nativas necessárias ao projeto. Elas devem ser adicionadas navegando até a pasta adequada à sua plataforma de destino: pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v3.5\Devices\platform\processor. Acrescente no mínimo as seguintes bibliotecas nativas: sqlceme35.dll, ssceqp35.dll, sscese35.dll e sqlceer35xx.dll.

  4. Verifique se os assemblies gerenciados e as bibliotecas nativas adicionadas acima foram copiados na saída.

Para obter informações detalhadas sobre como criar aplicativos de dispositivo inteligente, consulte o Criando aplicativos de dispositivos inteligentes (SQL Server Compact).

Consulte também

Outros recursos

Criando aplicativos para desktops (SQL Server Compact)

Criando aplicativos de dispositivos inteligentes (SQL Server Compact)

Implantando aplicativos de dispositivos inteligentes

Implantando aplicativos de desktop