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 3.5 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 fichier Microsoft Windows Installer (MSI) et sur un appareil en copiant et installant les fichiers Windows Cabinet (CAB) de SQL Server Compact spécifiques à l'appareil. Dans le cas du déploiement privé sur les ordinateurs et les appareils, les composants SQL Server Compact sont placés dans le dossier d'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 dans COM. Cela signifie que les mises à jour vers SQL Server Compact 3.5 peuvent être prises en charge de manière centralisée à l'aide de Microsoft Update. Les applications qui utilisent le déploiement centralisé de SQL Server Compact utiliseront la version mise à jour de SQL Server Compact 3.5 la prochaine fois qu'elles sont exécutées. Le seul inconvénient du déploiement centralisé est que SQL Server Compact 3.5 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 SQL Server Compact 3.5 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 3.5.
Avec le déploiement privé, une application utilise sa propre copie locale des assemblys managés SQL Server Compact et toutes 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é. Si les assemblys SQL Server Compact déployés de manière privée ont un numéro de version plus élevé que ceux installés de manière centralisée dans le GAC, alors, 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 puisque les composants natifs ne sont pas enregistrés avec COM, les problèmes potentiels rencontrés avec le déploiement centralisé sur des systèmes verrouillés peuvent être évité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. (Seule l'instance de SQL Server Compact 3.5 installée de manière centralisée est mise à jour par Microsoft Update.) 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 3.5 qui inclut les mises à jour nécessaires, puis la republier.
Notes
Les mises à jour de sécurité critiques pour SQL Server Compact seront fournies via Microsoft Update même sur les ordinateurs où SQL Server Compact est déployé de manière privée. Ces mises à jour se produiront même s'il n'y a aucune installation centrale de SQL Server Compact sur l'ordinateur (les assemblys SQL Server Compact ne sont pas installés dans le GAC et les bibliothèques SQL Server Compact natives ne sont pas enregistrées).
Le déploiement privé et le déploiement centralisé des applications basées sur SQL Server Compact sont pris en charge pour les applications bureautiques et les applications pour appareils mobiles s à la fois.
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.
À partir de SQL Server Compact 3.5 Service Pack 1 (SP1), 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é comme suit : 3.5.1.0, 3.5.1.2, 3.5.1.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\v3.5\Private.
Les mises à jour sont appliquées dans 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 est mise à jour uniquement pour les copies des assemblys qui sont 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 3.5 à 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 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 3.5 ; notamment celles qui ont utilisé le déploiement privé.
Développement des applications qui utilisent le déploiement privé
Notes
Visual Studio 2010 est l'environnement par défaut pour le développement d'applications bureautiques. Visual Studio 2008 SP1 est conseillé pour le développement d'applications Smart Device. Visual Studio 2010 ne prend pas en charge le développement d'applications Smart Device. Pour plus d'informations, consultez Installation d'un environnement de développement.
Pour développer une application bureautique qui utilise le déploiement privé de SQL Server Compact 3.5 :
Vérifiez que les mises à jour sont actuelles pour SQL Server Compact 3.5 sur l'ordinateur de développement.
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\v3.5\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.)
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\v3.5, ou jusqu'au dossier %Program Files(x86)%\Microsoft SQL Server Compact Edition\v3.5, 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 : sqlceme35.dll, ssceqp35.dll, sscese35.dll et sqlceer35xx.dll.
Notes
Les assemblys SQL Server Compact 3.5 64 bits natifs ne sont pas installés sur un ordinateur 32 bits. Pour générer des applications SQL Server Compact 3.5 pour les ordinateurs 64 bits lorsque vous utilisez un environnement de développement 32 bits, vous devez extraire ces assemblys du programme d'installation SQL Server Compact 3.5 64 bits (SSCERuntime_x64-ENU.msi). Pour plus d'informations, consultez Procédure : extraire les DLL 64-bits du programme d'installation du fichier d'exécution de SQL Server Compact.
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 de 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).
Pour développer une application Smart Device qui utilise le déploiement privé de SQL Server Compact 3.5 :
Vérifiez que les mises à jour sont actuelles pour SQL Server Compact 3.5 sur l'ordinateur de développement.
Ajoutez une référence au fournisseur de données .NET Compact Framework pour SQL Server Compact depuis l'onglet .NET de la boîte de dialogue Ajouter une référence dans Visual Studio. Vous ajoutez ainsi le fournisseur de données depuis le dossier %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Devices à votre projet. Cette étape est la même pour toutes les applications Smart Device qu'elles utilisent des versions déployées de manière privée ou de manière centralisée de SQL Server Compact.
Ajoutez au projet toutes les bibliothèques natives requises. Celles-ci doivent être ajoutées en naviguant jusqu'au dossier approprié pour votre plateforme cible : le dossier %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Devices\platform\processor. Au minimum, les bibliothèques natives suivantes doivent être ajoutées : sqlceme35.dll, ssceqp35.dll, sscese35.dll et sqlceer35xx.dll.
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 sur la génération d'applications Smart Device, consultez Création d'applications pour appareils de type « smart device » (SQL Server Compact).
Voir aussi
Autres ressources
Création d'applications pour les ordinateurs de bureau (SQL Server Compact)
Création d'applications pour appareils de type « smart device » (SQL Server Compact)
Déploiement des applications pour appareil de type « smart device »