Partager via


Déploiement d’une base de données (VB)

par Scott Mitchell

Le déploiement d’une application web ASP.NET implique d’obtenir les fichiers et les ressources nécessaires de l’environnement de développement à l’environnement de production. Pour les applications web pilotées par les données, cela inclut le schéma et les données de la base de données. Ce tutoriel est le premier d’une série qui explore les étapes nécessaires pour déployer correctement la base de données de l’environnement de développement vers la production.

Introduction

Le déploiement d’une application web ASP.NET implique d’obtenir les fichiers et les ressources nécessaires de l’environnement de développement à l’environnement de production. Au cours des six derniers tutoriels, nous avons examiné le déploiement d’une application web de révisions de livres simple. Ce site de démonstration était composé d’un certain nombre de ressources côté serveur (ASP.NET pages, fichiers de configuration, un Web.sitemap fichier, etc.) ainsi que de ressources côté client, telles que des images et des fichiers CSS. Mais qu’en est-il des applications web pilotées par les données ? Quelles sont les étapes supplémentaires à prendre pour déployer une application web qui utilise une base de données ?

Au cours des tutoriels suivants, nous aborderons les étapes nécessaires au déploiement d’une application web pilotée par les données. Ce tutoriel commence par examiner comment obtenir le schéma et le contenu d’une base de données de l’environnement de développement vers l’environnement de production, tandis que le tutoriel suivant examine les modifications de configuration nécessaires. Nous allons ensuite explorer les défis liés au déploiement d’une base de données qui utilise les services d’application (appartenance, rôles, profil, etc.).

Examen de l’application web Révisions de livres mis à jour

Pour illustrer le déploiement d’une application web pilotée par les données, j’ai mis à jour l’application web Book Reviews d’un site web statique simple à un site web piloté par les données. Comme précédemment, il existe deux versions de l’application dans le téléchargement de ce didacticiel : l’une qui utilise le modèle de projet d’application web et l’autre qui utilise le modèle projet de site web.

L’application web Book Reviews mise à jour utilise une base de données Express Edition SQL Server 2008, qui est stockée dans le dossier du App_Data site (~/App_Data/Reviews.mdf). Si SQL Server 2008 est installé sur votre ordinateur, la démonstration doit s’exécuter sans erreur. Si vous disposez d’une version antérieure de SQL Server vous pouvez installer la version gratuite SQL Server 2008 Express Edition ou utiliser les scripts de base de données disponibles dans le téléchargement de ce tutoriel pour créer la base de données vous-même.

La Reviews.mdf base de données contient quatre tables :

  • Genres - inclut un enregistrement pour chaque genre, tel que Technologie, Fiction et Business.
  • Books - inclut un enregistrement pour chaque révision, avec des colonnes telles que Title, GenreId, ReviewDateet Review, entre autres.
  • Authors - inclut des informations sur chaque auteur qui a contribué à un livre révisé.
  • BooksAuthors - table de jointure plusieurs-à-plusieurs qui spécifie les auteurs qui ont écrit les livres.

La figure 1 montre un diagramme ER de ces quatre tables.

La base de données de l’application web Book Reviews est composée de quatre tables

Figure 1 : La base de données de l’application web Book Reviews est composée de quatre tables (cliquez pour afficher l’image en taille réelle)

La version précédente du site web Book Reviews avait une page de ASP.NET distincte pour chaque livre. Par exemple, il y avait une page nommée ~/Tech/TYASP35.aspx qui contenait la révision de Teach Yourself ASP.NET 3.5 in 24 Hours. Cette nouvelle version pilotée par les données du site web contient les révisions stockées dans la base de données et une page de ASP.NET unique, Review.aspx ?ID=bookId, qui affiche la révision pour le livre spécifié. De même, il existe une page Genre.aspx ?ID=genreId qui répertorie les livres révisés dans le genre spécifié.

Les figures 2 et 3 montrent les Genre.aspx pages et Review.aspx en action. Notez l’URL dans la barre d’adresse pour chaque page. Dans la figure 2, il s’agit de Genre.aspx ?ID=85d164ba-1123-4c47-82a0-c8ec75de7e0e. Étant donné que 85d164ba-1123-4c47-82a0-c8ec75de7e0e est la GenreId valeur du genre Technologie, le titre de la page indique « Révisions technologiques » et la liste à puces énumère les révisions sur le site qui appartiennent à ce genre.

La page Genre de la technologie

Figure 2 : Page Genre de la technologie (cliquer pour afficher l’image en taille réelle)

L’avis de Teach Yourself ASP.NET 3.5 in 24 Hours

Figure 3 : Révision de l’apprentissage vous-même ASP.NET 3,5 en 24 heures (cliquer pour afficher l’image en taille réelle)

L’application web Book Reviews inclut également une section d’administration dans laquelle les administrateurs peuvent ajouter, modifier et supprimer des genres, des révisions et des informations sur l’auteur. Actuellement, tout visiteur peut accéder à la section d’administration. Dans un prochain tutoriel, nous ajouterons la prise en charge des comptes d’utilisateur et autoriserons uniquement les utilisateurs autorisés dans les pages d’administration.

Si vous téléchargez l’application Book Reviews, n’oubliez pas que son objectif est de démontrer le déploiement d’une application pilotée par les données. Il ne présente pas les meilleures pratiques en ce qui concerne la conception de l’application. Par exemple, il n’existe pas de couche d’accès aux données (DAL) distincte ; les pages ASP.NET communiquent directement avec la base de données via le contrôle SqlDataSource ou ADO.NET code dans leurs classes code-behind. Pour plus d’informations sur la création d’applications pilotées par les données à l’aide d’une architecture hiérarchisée, consultez mes didacticiels Sur l’utilisation des données.

Bases de données en développement et en production

Lorsque vous démarrez le développement sur une application web pilotée par les données, vous devez spécifier une chaîne de connexion de base de données, qui fournit les détails de l’application sur la façon de se connecter à la base de données. Cette chaîne de connexion spécifie, entre autres choses, le serveur de base de données, le nom de la base de données et les informations de sécurité. Le plus souvent, la base de données utilisée par l’application pendant le développement est différente de la base de données utilisée lorsqu’elle est en production. L’utilisation de bases de données différentes pour le développement et la production présente de nombreux avantages. Avoir une autre base de données en cours de développement signifie que vous n’avez pas à vous soucier de modifier ou de supprimer accidentellement des données actives. Il vous permet également de placer des données de test factices ou d’apporter des modifications cassants au modèle de données sans avoir à vous soucier des effets sur l’application en production. L’inconvénient d’avoir une base de données différente dans les environnements de développement et de production est que lorsque l’application est déployée, la base de données et toute modification pertinente du schéma ou des données de la base de données doit également être déployée.

Avant le premier déploiement, il n’y avait qu’une seule instance de la base de données, et cette instance se trouve dans l’environnement de développement. Lors du premier déploiement de l’application en production, nous devons non seulement copier les fichiers côté serveur et côté client nécessaires, mais également copier la base de données de l’environnement de développement vers l’environnement de production. C’est là que nous en sommes actuellement avec l’application web Book Reviews : la base de données se trouve dans le App_Data dossier de notre environnement de développement, mais n’a pas encore été poussée vers l’environnement de production.

Une fois l’application déployée, il existe deux copies de la base de données. À mesure que l’application arrive à maturité, de nouvelles fonctionnalités peuvent être ajoutées, ce qui nécessite une modification du modèle de données (par exemple, l’ajout de nouvelles colonnes à des tables existantes, l’apport de modifications aux colonnes existantes, l’ajout de nouvelles tables, etc.). Lors du prochain déploiement de l’application web, les modifications appliquées à la base de données dans l’environnement de développement depuis le dernier déploiement doivent être appliquées à la base de données de production. Certaines stratégies de gestion de ce processus sont présentées dans un tutoriel ultérieur. Ce tutoriel se concentre sur le déploiement de la base de données entière, de l’environnement de développement à la production.

Déploiement de la base de données dans l’environnement de production

Le reste de ce tutoriel montre comment déployer la base de données de l’environnement de développement vers l’environnement de production. Si vous suivez la procédure, vous devez vous assurer que votre compte auprès de votre fournisseur d’hôte web inclut la prise en charge de la base de données Microsoft SQL Server. Vous devez également disposer d’informations, à savoir le nom du serveur de base de données, le nom de la base de données, ainsi que le nom d’utilisateur et le mot de passe utilisés pour vous connecter à la base de données.

Comme indiqué précédemment dans ce tutoriel, la base de données du site web Book Reviews est une base de données Express Edition 2008 SQL Server stockée dans le App_Data dossier . Il semblerait que le déploiement d’une telle base de données soit aussi simple que la copie du App_Data dossier de l’environnement de développement vers l’environnement de production. Toutefois, la plupart des fournisseurs d’hôtes web ne prennent pas en charge l’hébergement de bases de données dans le App_Data dossier pour des raisons de sécurité. Au lieu de cela, les hôtes web fournissent un compte sur un serveur de base de données SQL Server au sein de leur environnement. Le déploiement de la base de données de votre environnement de développement vers l’environnement de production nécessite l’inscription de votre base de données sur le serveur de base de données de votre hôte web.

Comment faire passer votre base de données de l’environnement de développement à l’environnement de production ? Il existe deux façons d’y parvenir en fonction des services offerts par votre hôte web. Avec certains hôtes, tels que DiscountASP.NET, vous pouvez ftp une sauvegarde de la base de données ou du fichier réel .mdf sur votre site web, puis, à partir du Panneau de configuration, restaurer le fichier de sauvegarde ou joindre le .mdf fichier au serveur de base de données SQL Server. Avec ces outils, le déploiement de la base de données est aussi simple que de copier le App_Data dossier dans l’environnement de production, puis de l’attacher via le Panneau de configuration. Il s’agit peut-être du moyen le plus simple et le plus rapide de publier votre base de données pour la première fois.

Une autre approche consiste à utiliser l’Assistant Publication de base de données. L’Assistant Publication de base de données est une application de bureau Windows qui génère les commandes SQL pour créer le schéma de votre base de données (tables, procédures stockées, vues, fonctions définies par l’utilisateur, etc.) et, éventuellement, les données de ses tables. Vous pouvez ensuite vous connecter au serveur de base de données de votre fournisseur d’hôte web via SQL Server Management Studio, puis exécuter ce script pour dupliquer la base de données en production. Mieux encore, si votre fournisseur d’hôte web prend en charge les services de publication de base de données Microsoft, vous pouvez générer le script par l’Assistant Publication de base de données automatiquement exécuté sur le serveur de base de données en votre nom. Étant donné que l’Assistant Publication de base de données génère un script qui crée le schéma et les données de la base de données, il fonctionne que votre fournisseur d’hôte web offre ou non des fonctionnalités telles que l’attachement d’un fichier chargé .mdf .

Génération des commandes SQL pour créer le schéma de base de données et les données à l’aide de l’Assistant Publication de base de données

Passons en revue à l’aide de l’Assistant Publication de base de données pour déployer la base de données Révisions de livres en production. Si vous utilisez Visual Studio 2008 ou version ultérieure, l’Assistant Publication de base de données est déjà installé.

Ouvrez Visual Studio et accédez à la Reviews.mdf base de données. Si vous utilisez Visual Web Developer, accédez à l’Explorer de base de données ; si vous utilisez Visual Studio, utilisez l’Explorer server. La figure 4 montre la Reviews.mdf base de données dans le Explorer de base de données dans Visual Web Developer. Comme le montre la figure 4, la Reviews.mdf base de données est composée de quatre tables, de trois procédures stockées et d’une fonction définie par l’utilisateur.

Recherchez la base de données dans le Explorer de base de données ou le serveur Explorer

Figure 4 : Recherchez la base de données dans le Explorer de base de données ou le serveur Explorer (cliquez pour afficher l’image en taille réelle)

Cliquez avec le bouton droit sur le nom de la base de données et choisissez l’option « Publier sur le fournisseur » dans le menu contextuel. Cela lance l’Assistant Publication de base de données (voir la figure 5). Cliquez sur Suivant pour passer l’écran de démarrage.

Capture d’écran de la fenêtre Assistant Publication de base de données, qui montre l’écran de démarrage et le bouton Suivant pour faire avancer l’Assistant.

Figure 5 : Écran de démarrage de l’Assistant Publication de base de données (cliquer pour afficher l’image en taille réelle)

Le deuxième écran de l’Assistant répertorie les bases de données accessibles à l’Assistant Publication de base de données et vous permet de choisir entre scripter tous les objets de la base de données sélectionnée ou choisir les objets à scripter. Sélectionnez la base de données appropriée et laissez l’option « Scripter tous les objets dans la base de données sélectionnée » cochée.

Notes

Si vous obtenez l’erreur « Il n’y a pas d’objets dans la base de donnéesNom des types scriptables par cet Assistant » lorsque vous cliquez sur Suivant dans l’écran de la figure 6, assurez-vous que le chemin d’accès à votre fichier de base de données n’est pas trop long. Cette erreur peut se produire si le chemin d’accès au fichier de base de données est trop long.

Capture d’écran de la fenêtre Assistant Publication de base de données, qui montre une base de données mise en surbrillance dans la liste et une case à cocher Scripter tous les objets.

Figure 6 : Écran de démarrage de l’Assistant Publication de base de données (cliquer pour afficher l’image en taille réelle)

À partir de l’écran suivant, vous pouvez générer un fichier de script ou, si votre hôte web le prend en charge, publier la base de données directement sur le serveur de base de données de votre fournisseur d’hôte web. Comme le montre la figure 7, j’ai écrit le script dans le fichier C:\REVIEWS.MDF.sql.

Créer un script de la base de données dans un fichier ou la publier directement sur votre fournisseur d’hôte web

Figure 7 : Générer un script de la base de données dans un fichier ou la publier directement sur votre fournisseur d’hôte Web (cliquez pour afficher l’image en taille réelle)

L’écran suivant vous invite à entrer diverses options de script. Vous pouvez spécifier si le script doit inclure des instructions drop pour supprimer ces objets existants. Cette valeur par défaut est True, ce qui convient lors du déploiement d’une base de données pour la première fois. Vous pouvez également spécifier si la base de données cible est SQL Server 2000, SQL Server 2005 ou SQL Server 2008. Enfin, vous pouvez indiquer s’il faut scripter le schéma et les données, uniquement les données ou simplement le schéma. Le schéma est la collection d’objets de base de données, de tables, de procédures stockées, de vues, etc. Les données sont les informations résidant dans les tables.

Comme l’illustre la figure 8, j’ai configuré l’Assistant pour supprimer les objets de base de données existants, pour générer un script pour une base de données SQL Server 2008 et pour publier le schéma et les données.

Spécifier les options de publication

Figure 8 : Spécifier les options de publication (cliquer pour afficher l’image en taille réelle)

Les deux derniers écrans résument les actions qui sont sur le point d’être effectuées, puis affichent les status du script. Le résultat net de l’exécution de l’Assistant est que nous avons un fichier de script qui contient les commandes SQL nécessaires pour créer la base de données en production et la remplir avec les mêmes données que pour le développement.

Exécution des commandes SQL sur la base de données de l’environnement de production

Maintenant que nous avons le script qui contient les commandes SQL pour créer la base de données et ses données, il ne reste plus qu’à exécuter le script sur la base de données de production. Certains fournisseurs d’hôtes web proposent une zone de texte dans leur Panneau de configuration où vous pouvez entrer des commandes SQL à exécuter sur votre base de données. Si vous avez un fichier de script très volumineux, cette option peut ne pas fonctionner (la taille du REVIEWS.MDF.sql fichier de script est supérieure à 425 Ko, pour instance).

Une meilleure approche consiste à se connecter directement au serveur de base de données de production à l’aide de SQL Server Management Studio (SSMS). Si vous avez une édition non Express de SQL Server installée sur votre ordinateur, vous avez probablement déjà installé SSMS. Sinon, vous pouvez télécharger et installer une copie gratuite de SQL Server Management Studio Express Edition.

Lancez SSMS et connectez-vous au serveur de base de données de votre hôte web à l’aide des informations fournies par votre fournisseur d’hôte web.

Capture d’écran de la boîte de dialogue Se connecter au serveur, qui montre les informations du serveur de données de l’hôte web dans les champs de texte.

Figure 9 : Se connecter au serveur de base de données de votre fournisseur d’hôte Web (cliquez pour afficher l’image en taille réelle)

Développez l’onglet Bases de données et recherchez votre base de données. Cliquez sur le bouton Nouvelle requête dans le coin supérieur gauche de la barre d’outils, collez les commandes SQL à partir du fichier de script créé par l’Assistant Publication de base de données, puis cliquez sur le bouton Exécuter pour exécuter ces commandes sur le serveur de base de données de production. Si votre fichier de script est particulièrement volumineux, l’exécution des commandes peut prendre plusieurs minutes.

Capture d’écran de la fenêtre Microsoft SQL Server Management Studio, qui montre les commandes de fichier de script exécutées sur le serveur de production.

Figure 10 : Se connecter au serveur de base de données de votre fournisseur d’hôte Web (cliquez pour afficher l’image en taille réelle)

C’est tout ce qu’il y a à faire ! À ce stade, la base de données de développement a été dupliquée en production. Si vous actualisez la base de données dans SSMS, vous devez voir les nouveaux objets de base de données. La figure 11 montre les tables de la base de données de production, les procédures stockées et les fonctions définies par l’utilisateur, qui miroir celles de la base de données de développement. Et comme nous avons demandé à l’Assistant Publication de base de données de publier les données, les tables de la base de données de production ont les mêmes données que les tables de la base de données de développement au moment de l’exécution de l’Assistant. La figure 12 montre les données de la Books table sur la base de données de production.

Les objets de base de données ont été dupliqués sur la base de données de production

Figure 11 : Les objets de base de données ont été dupliqués sur la base de données de production (cliquez pour afficher l’image en taille réelle)

La base de données de production contient les mêmes données que celles de la base de données de développement

Figure 12 : La base de données de production contient les mêmes données que celles de la base de données de développement (cliquez pour afficher l’image en taille réelle)

À ce stade, nous avons déployé uniquement la base de données de développement en production. Nous n’avons pas encore examiné le déploiement de l’application web elle-même ni examiné les modifications de configuration nécessaires pour que l’application en production utilise la base de données de production. Nous aborderons ces problèmes dans le tutoriel suivant !

Résumé

Le déploiement d’une application web pilotée par les données nécessite la copie de la base de données utilisée pendant le développement dans l’environnement de production. De nombreux fournisseurs d’hôtes web offrent des outils pour simplifier le processus de déploiement d’une base de données. Par exemple, avec DiscountASP.NET vous pouvez FTP votre fichier de base de données .mdf (ou une sauvegarde), puis attacher la base de données au serveur de base de données à partir du Panneau de configuration. Une autre option qui fonctionne quelles que soient les fonctionnalités proposées par votre fournisseur d’hôte web est l’outil Assistant Publication de bases de données microsoft, qui génère un script de commandes SQL pour créer le schéma et les données de la base de données de développement. Une fois ce script généré, vous pouvez l’exécuter sur la base de données de production.

Maintenant que la base de données de l’application web Book Reviews est en production, nous pouvons déployer l’application. Toutefois, les informations de configuration de l’application web spécifient le chaîne de connexion à la base de données, et cette chaîne de connexion fait référence à la base de données de développement. Nous devons mettre à jour ces informations chaîne de connexion lors du déploiement du site en production. Le tutoriel suivant examine ces différences de configuration et décrit les étapes nécessaires pour publier le site de révisions de livres piloté par les données en production.

Bonne programmation !

En savoir plus

Pour plus d’informations sur les sujets abordés dans ce didacticiel, reportez-vous à la ressource suivante :