Comparaison entre déploiement privé et déploiement centralisé (SQL Server Compact)

Vous pouvez déployer des applications managées construites avec SQL Server Compact 4.0 en utilisant un déploiement centralisé ou un déploiement privé pour SQL Server Compact. Dans le déploiement centralisé, SQL Server Compact est installé sur un ordinateur à l'aide du programme d'installation exécutable. Dans le cas du déploiement privé, les fichiers binaires SQL Server Compact sont placés dans le dossier de l'application lui-même. Le déploiement privé de SQL Server Compact tel que décrit est également connu sous le nom de déploiement XCOPY de SQL Server Compact.

Dans le cas du déploiement centralisé, une application utilise les assemblys managés SQL Server Compact (System.Data.SqlServerCe.dll et System.Data.SqlserverCe.Entity.dll) installés dans le GAC (Global Assembly Cache) et les composants SQL Server Compact natifs enregistrés à partir d'un emplacement central, c.-à-d. %Program Files%\Microsoft SQL Server Compact Edition\v4.0. Si une nouvelle version/mise à jour de SQL Server Compact 4.0 est installée, les applications qui ont recours au déploiement centralisé de SQL Server Compact utiliseront la version mise à jour de SQL Server Compact 4.0 lors de leur prochaine exécution. Le seul inconvénient du déploiement centralisé est que SQL Server Compact 4.0 peut être installé uniquement par un utilisateur ayant les privilèges administrateur sur l'ordinateur. (Ces privilèges sont requis pour installer des assemblys dans le GAC et enregistrer les composants natifs.) Si l'application est déployée à l'aide de la technologie ClickOnce et que SQL Server Compact 4.0 est déployé de manière centralisée comme composant requis pour l'installation, l'installation peut échouer parce que l'utilisateur n'a pas les privilèges nécessaires pour installer SQL Server Compact 4.0.

Avec le déploiement privé, une application utilise sa propre copie locale des assemblys managés SQL Server Compact et les bibliothèques SQL Server Compact natives requises. Ces assemblys et ces bibliothèques natives sont fournis avec l'application et sont installés dans le chemin d'accès de l'application sur le système cible, lorsqu'il est déployé. Les assemblys SQL Server Compact déployés de manière privée doivent avoir un numéro de version plus élevé que ceux installés de manière centralisée dans le GAC, pour que l'application utilise les assemblys déployés de manière privée plutôt que ceux déployés de manière centralisée. S'il n'y a pas d'assemblys SQL Server Compact dans le GAC (SQL Server Compact n'a pas été déployé de manière centralisée sur l'ordinateur cible), l'application utilise ses propres assemblys déployés de manière privée. L'un des avantages du déploiement privé est que, puisque les assemblys SQL Server Compact ne sont pas installés dans le GAC et que les composants natifs ne sont pas enregistrés avec COM, l'utilisateur n'a pas besoin de disposer de privilèges administratifs sur l'ordinateur, ce qui permet d'éviter les problèmes potentiels rencontrés avec le déploiement centralisé sur des systèmes verrouillés. Le déploiement privé suppose toutefois une plus grande responsabilité du développeur, car les mises à jour des assemblys SQL Server Compact déployés de manière privée ne peuvent pas être prises en charge de manière centralisée. Si une mise à jour des assemblys SQL Server Compact déployés avec l'application est nécessaire, le développeur doit reconstruire l'application avec une version de SQL Server Compact 4.0 qui inclut les mises à jour nécessaires, puis la republier.

Installation

Le comportement d'installation de SQL Server Compact 4.0 sur des systèmes d'exploitation 32 et 64 bits est décrit ci-dessous :

SQL Server Compact 4.0

Système d'exploitation

32 bits

32 bits

Réussie

64 bits

Erreur

Les assemblys managés et natifs suivants sont installés :

Assemblys managés : ils sont installés dans le dossier %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private :

  • System.Data.SqlServerCe.dll

  • System.Data.SqlServerCe.Entity.dll

Assemblys natifs : ils sont installés dans les dossiers %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\x86 et %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64,except sqlceoledb40.dll, à l'emplacement %Program Files&\Microsoft SQL Server Compact Edition\v4.0.

  • sqlceca40.dll

  • sqlcecompact40.dll

  • sqlceer40EN.dll

  • sqlceme40.dll

  • sqlceoledb40.dll

  • sqlceqp40.dll

  • sqlcese40.dll

Outre ce qui a été cité précédemment, il faut ajouter un assembly et un manifeste pour les bibliothèques Runtime Microsoft Visual C++ 2008 (CRT) :

  • msvcr90.dll

  • Microsoft.VC90.CRT.manifest

Mises à jour et déploiement privé

L'un des problèmes du déploiement privé est que le CLR charge, par défaut, des assemblys à partir du GAC. Pour cette raison, il est difficile de transmettre des mises à jour aux assemblys SQL Server Compact déployés de manière privée lorsqu'une version antérieure de SQL Server Compact existe dans le GAC, car le CLR continuera à charger les assemblys SQL Server Compact à partir du GAC. Le seul cas où un assembly déployé de manière privée sera chargé par le CLR est celui où la version d'assembly est différente de celle dans le GAC, et l'application a été compilée avec l'assembly déployé dans le GAC.

Dans SQL Server Compact 4.0, ce problème est résolu par :

  • l'incrémentation du numéro de version d'assembly pour toutes les mises à jour de logiciel, notamment les correctifs logiciels, les Service Packs, les correctifs cruciaux et les mises à jour de sécurité. La version d'assembly est incrémentée comme suit : 4.0.0.1, 4.0.0.2, 4.0.0.3, et ainsi de suite ;

  • l'installation de copies supplémentaires des assemblys managés (System.Data.SqlServerCe.dll et System.Data.SqlServerCe.Entity.dll) dans le dossier suivant : %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private.

Les mises à jour sont appliquées de la manière suivante :

  • Pour les correctifs logiciels réguliers, la mise à jour est appliquée à toutes les copies de l'un ou des deux assemblys managés ; toutefois, la version d'assembly est mise à jour uniquement pour les copies des assemblys figurant dans le dossier « Private ». Cela garantit que les assemblys du dossier « Private » sur un ordinateur de développement ont un numéro de version plus élevé que ceux installés dans le GAC pour les mises à jour non critiques. Cela garantit également que pour les applications qui utilisent le déploiement privé sur les ordinateurs où la mise à jour est appliquée, le CLR continuera à charger les assemblys SQL Server Compact 4.0 à partir du chemin d'accès de l'application (parce que le numéro de version des assemblys dans le GAC ne changera pas).

  • Pour les mises à jour de sécurité, les Service Packs et les mises à jour critiques, la mise à jour est appliquée à toutes les copies des deux assemblys managés et la version d'assembly est également mise à jour pour tous les assemblys. De plus, la stratégie du serveur de publication est mise à jour pour garantir la ré-direction automatique de tous les assemblys de version inférieure à la nouvelle version. Cela garantit que, pour les ordinateurs sur lesquels la mise à jour est appliquée, le CLR chargera les assemblys managés à partir du GAC pour toutes les applications SQL Server Compact 4.0, notamment celles qui ont utilisé le déploiement privé.

Développement des applications qui utilisent le déploiement privé

Pour développer une application bureautique qui utilise le déploiement privé de SQL Server Compact 4.0 :

  1. Vérifiez que les mises à jour sont actuelles pour SQL Server Compact 4.0 sur l'ordinateur de développement.

  2. Ajoutez toutes les références aux deux assemblys managés SQL Server Compact à votre projet en naviguant jusqu'au dossier %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private dans la boîte de dialogue Ajouter une référence dans Visual Studio. (Pour les applications qui utilisent le déploiement centralisé, ces références sont ajoutées depuis l'onglet .NET.)

  3. Ajoutez au projet toutes les bibliothèques natives requises. Celles-ci doivent être ajoutées en naviguant jusqu'au dossier %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\x86, au dossier %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64, ou les deux. Le dossier depuis lequel vous ajoutez les bibliothèques natives dépend de la plateforme (x86, x64 ou Any CPU) pour laquelle vous développez votre application.

    Au minimum, les assemblys natifs suivants doivent être ajoutés :

    • sqlceer40EN.dll

    • sqlceme40.dll

    • sqlceqp40.dll

    • sqlcese40.dll

    Tous les composants natifs se trouvent dans le dossier privé proprement dit. Pour faciliter la gestion et l'utilisation, la structure des dossiers des composants natifs pour les plateformes x86 et amd64 est identique lors de la configuration.

    Notes

    Le programme d'installation 64 bits de SQL Server Compact 4.0 procède à une configuration complète. Il installe les composants 32 bits, les composants 64 bits et les composants d'architecture neutres sur l'ordinateur. Les programmes d'installation 32 bits et 64 bits comportent des fichiers binaires natifs de chaque architecture pour le déploiement privé. Par conséquent, pour générer des applications SQL Server Compact 4.0 pour des ordinateurs 64 bits lorsque vous utilisez un environnement de développement 32 bits, vous n'avez pas à extraire d'assemblys natifs 64 bits. Il vous suffit de sélectionner des fichiers binaires natifs 64 bits à partir du dossier %Program files%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64.

  4. Vérifiez que les assemblys managés et les bibliothèques natives ajoutés dans les étapes précédentes sont copiés vers le dossier de sortie de génération.

Pour plus d'informations à propos de la génération d'applications bureautiques, consultez Création d'applications pour les ordinateurs de bureau (SQL Server Compact).

Voir aussi

Référence

Déploiement d'applications un ordinateur de bureau

Concepts

Création d'applications pour les ordinateurs de bureau (SQL Server Compact)