ASP.NET déploiement web à l’aide de Visual Studio : Introduction

par Tom Dykstra

Télécharger le projet de démarrage

Cette série de tutoriels vous montre comment déployer (publier) une application web ASP.NET sur Azure App Service Web Apps ou un fournisseur d’hébergement tiers à l’aide de Visual Studio 2012 avec le Kit de développement logiciel (SDK) Azure pour .NET. La plupart des procédures sont similaires pour Visual Studio 2013.

Vous développez une application web afin de la rendre disponible pour les personnes sur Internet. Mais les didacticiels de programmation web s’arrêtent généralement juste après qu’ils vous ont montré comment travailler sur votre ordinateur de développement. Cette série de tutoriels commence là où les autres s'arrêtent : vous avez créé une application web, l'avez testée et elle est prête à être déployée. Quelle est l’étape suivante ? Ces didacticiels vous montrent comment déployer d’abord sur IIS sur votre ordinateur de développement local à des fins de test, puis sur Azure ou un fournisseur d’hébergement tiers pour la préproduction et la production. L’exemple d’application que vous allez déployer est un projet d’application web qui utilise Entity Framework, SQL Server et le système d’appartenance ASP.NET. L’exemple d’application utilise ASP.NET Web Forms, mais les procédures présentées s’appliquent également à ASP.NET MVC et à l’API web.

Ces didacticiels supposent que vous savez comment utiliser ASP.NET dans Visual Studio. Si ce n’est pas le cas, un bon point de départ est un didacticiel de base ASP.NET Web Forms ou un didacticiel de base ASP.NET MVC.

Si vous avez des questions qui ne sont pas directement liées au didacticiel, vous pouvez les publier sur le forum ASP.NET Déploiement ou StackOverflow.

Aperçu

Ces didacticiels vous guident tout au long du déploiement d’une application web ASP.NET qui inclut des bases de données SQL Server. Vous allez d’abord déployer iis sur votre ordinateur de développement local pour les tests, puis sur Web Apps dans Azure App Service et Azure SQL Database pour la préproduction et la production. Vous verrez comment déployer avec Visual Studio grâce à la fonction de publication en un clic, et comment le faire à l’aide de la ligne de commande.

Le nombre de didacticiels peut rendre le processus de déploiement intimidant. En fait, les procédures de base sont simples. Toutefois, dans des situations réelles, vous devez souvent effectuer des tâches de déploiement supplémentaires , par exemple, définir des autorisations de dossier sur le serveur cible. Nous avons illustré certaines de ces tâches supplémentaires, dans l’espoir que les didacticiels n’excluent pas les informations susceptibles de vous empêcher de déployer une application réelle.

Les didacticiels sont conçus pour s’exécuter en séquence, et chaque partie s’appuie sur la partie précédente. Vous pouvez ignorer les parties qui ne sont pas pertinentes pour votre situation, mais vous devrez peut-être ajuster les procédures dans les didacticiels ultérieurs.

Public prévu

Les didacticiels sont destinés à ASP.NET développeurs qui travaillent dans des environnements où :

  • L’environnement de production est Azure App Service Web Apps ou un fournisseur d’hébergement tiers.
  • Le déploiement n’est pas limité à un processus d’intégration continue, mais peut être effectué directement à partir de Visual Studio.

Le déploiement à partir du contrôle de code source à l’aide d’un processus de remise continue n’est pas abordé dans ces didacticiels, à l’exception d’un didacticiel qui montre comment déployer à partir de la ligne de commande. Pour plus d’informations sur la livraison continue, consultez les ressources suivantes :

Utilisation d’un fournisseur d’hébergement tiers

Les didacticiels vous guident tout au long du processus de configuration d’un compte Azure et du déploiement de l’application sur Web Apps dans Azure App Service pour la préproduction et la production. Toutefois, vous pouvez utiliser les mêmes procédures de base pour le déploiement sur un fournisseur d’hébergement tiers de votre choix. Là où les didacticiels passent par des processus uniques à Azure, ils expliquent que et conseillent les différences que vous pouvez attendre auprès d’un fournisseur d’hébergement tiers.

Déploiement de projets d’application web

L’exemple d’application que vous téléchargez et déployez pour ces didacticiels est un projet d’application web Visual Studio. Toutefois, si vous installez la dernière mise à jour de publication web pour Visual Studio, vous pouvez utiliser les mêmes méthodes de déploiement et outils pour les projets d’application web.

Déploiement de projets MVC ASP.NET

L’exemple d’application est un projet ASP.NET Web Forms, mais tout ce que vous apprenez à faire s’applique également à ASP.NET MVC. Un projet Visual Studio MVC n’est qu’une autre forme de projet d’application web. La seule différence est que si vous effectuez un déploiement sur un fournisseur d’hébergement qui ne prend pas en charge ASP.NET MVC ou votre version cible, vous devez vous assurer que vous avez installé le package NuGet approprié (MVC 3, MVC 4 ou MVC 5) dans votre projet.

Langage de programmation

L’exemple d’application utilise C#, mais les didacticiels ne nécessitent pas de connaissances en C#, et les techniques de déploiement présentées par les didacticiels ne sont pas spécifiques au langage.

Méthodes de déploiement de base de données

Il existe trois façons de déployer une base de données SQL Server avec le déploiement web dans Visual Studio :

  • Entity Framework Code First Migrations
  • Fournisseur dbDacFx Web Deploy
  • Fournisseur dbFullSql Web Deploy

Dans ce tutoriel, vous allez utiliser les deux premières de ces méthodes. Le fournisseur dbFullSql Web Deploy est une méthode héritée qui n’est plus recommandée, à l’exception de certains scénarios spécifiques tels que la migration de SQL Server Compact vers SQL Server.

Les méthodes présentées dans ce didacticiel concernent les bases de données SQL Server, et non SQL Server Compact. Pour plus d’informations sur le déploiement d’une base de données SQL Server Compact, consultez Visual Studio Web Deployment with SQL Server Compact.

Les méthodes présentées dans ce didacticiel nécessitent l’utilisation de la méthode de publication Web Deploy. Si vous préférez une autre méthode de publication, telle que FTP, Système de fichiers ou FPSE, consultez Déploiement d’une base de données séparément du déploiement d’applications web dans la carte de contenu de déploiement web pour Visual Studio et ASP.NET.

Entity Framework Code First Migrations

Dans Entity Framework version 4.3, Microsoft a introduit des migrations Code First. Code First Migrations automatise le processus d’apporter des modifications incrémentielles à un modèle de données et de propager ces modifications à la base de données. Dans les versions antérieures de Code First, vous laissez généralement Entity Framework supprimer et recréer la base de données chaque fois que vous modifiez le modèle de données. Ce n’est pas un problème dans le développement, car les données de test sont facilement recréations, mais en production, vous souhaitez généralement mettre à jour le schéma de base de données sans supprimer la base de données. La fonctionnalité Migrations permet au code First de mettre à jour la base de données sans la supprimer et la recréer. Vous pouvez laisser Code First décider automatiquement comment apporter les modifications de schéma requises ou écrire du code qui personnalise les modifications. Pour une présentation des migrations Code First, consultez Code First Migrations.

Lorsque vous déployez un projet web, Visual Studio peut automatiser le processus de déploiement d’une base de données gérée par code First Migrations. Lorsque vous créez le profil de publication, vous activez une case à cocher intitulée Exécuter des premières migrations de code (s’exécute au démarrage de l’application). Ce paramètre entraîne la configuration automatique du processus de déploiement de l’application Web.config fichier sur le serveur de destination afin que Code First utilise la MigrateDatabaseToLatestVersion classe initialiseur.

Visual Studio ne fait rien avec la base de données pendant le processus de déploiement. Lorsque l’application déployée accède à la base de données pour la première fois après le déploiement, Code First crée automatiquement la base de données ou met à jour le schéma de base de données vers la dernière version. Si l’application implémente une méthode Migrations Seed, la méthode s’exécute après la création de la base de données ou le schéma est mis à jour.

Dans ce tutoriel, vous allez utiliser Code First Migrations pour déployer la base de données d’application.

Fournisseur dbDacFx Web Deploy

Pour une base de données SQL Server qui n’est pas gérée par Entity Framework Code First, vous pouvez activer une case à cocher intitulée Mettre à jour la base de données lorsque vous configurez le profil de publication. Pendant le déploiement initial, le fournisseur dbDacFx crée des tables et d’autres objets de base de données dans la base de données de destination pour qu’elles correspondent à la base de données source. Lors des déploiements suivants, le fournisseur détermine ce qui est différent entre les bases de données source et de destination, et met à jour le schéma de la base de données de destination pour qu’elle corresponde à la base de données source. Par défaut, le fournisseur n’apporte aucune modification qui entraîne une perte de données, par exemple lorsqu’une table ou une colonne est supprimée.

Cette méthode n’automatise pas le déploiement de données dans les tables de base de données, mais vous pouvez créer des scripts pour le faire et configurer Visual Studio pour les exécuter pendant le déploiement. Une autre raison d’exécuter des scripts pendant le déploiement consiste à apporter des modifications de schéma qui ne peuvent pas être effectuées automatiquement, car elles entraînent une perte de données.

Dans ce tutoriel, vous allez utiliser le fournisseur dbDacFx pour déployer la base de données d’appartenance ASP.NET.

Résolution des problèmes pendant ce tutoriel

Lorsqu’une erreur se produit pendant le déploiement ou si le site déployé ne s’exécute pas correctement, les messages d’erreur ne fournissent pas toujours une solution évidente. Pour vous aider dans certains scénarios de problème courants, une page de référence de résolution des problèmes est disponible. Si vous recevez un message d’erreur ou qu’un élément ne fonctionne pas pendant que vous parcourez les didacticiels, veillez à consulter la page de dépannage.

Commentaires bienvenus

Les commentaires sur les didacticiels sont bienvenus et, lorsque le didacticiel est mis à jour, tous les efforts seront faits pour prendre en compte les corrections ou suggestions d’améliorations fournies dans les commentaires du didacticiel.

Prerequisites

Ce tutoriel a été écrit pour les produits suivants :

Vous pouvez suivre le tutoriel en utilisant Visual Studio 2010 SP1 ou Visual Studio 2013, mais certaines captures d’écran seront différentes et certaines fonctionnalités seront différentes.

Si vous utilisez Visual Studio 2013, installez le Kit de développement logiciel (SDK) Azure pour Visual Studio 2013.

Si vous utilisez Visual Studio 2010 SP1, installez le logiciel suivant :

Selon le nombre de dépendances que vous avez déjà sur votre machine, l’installation du Kit de développement logiciel (SDK) Azure peut prendre beaucoup de temps, de plusieurs minutes à une demi-heure ou plus. Vous avez besoin du Kit de développement logiciel (SDK) Azure même si vous envisagez de publier sur un fournisseur d’hébergement tiers au lieu d’Azure, car le SDK inclut les dernières mises à jour des fonctionnalités de publication web visual Studio.

Note

Ce tutoriel a été écrit avec la version 1.8.1 du Kit de développement logiciel (SDK) Azure. Depuis lors, des versions plus récentes avec des fonctionnalités supplémentaires ont été publiées. Les didacticiels ont été mis à jour pour mentionner ces fonctionnalités et lier à des ressources qui ont plus d’informations sur ces fonctionnalités.

Les instructions et captures d’écran sont basées sur Windows 8, mais les didacticiels expliquent les différences pour Windows 7.

Certains autres logiciels sont nécessaires pour suivre le didacticiel, mais vous n’avez pas encore besoin de l’installer. Le tutoriel vous guide tout au long des étapes d’installation de celui-ci lorsque vous en avez besoin.

Télécharger l’exemple d’application

L’application que vous allez déployer est nommée Contoso University et a déjà été créée pour vous. Il s’agit d’une version simplifiée d’un site web universitaire, basée faiblement sur l’application Contoso University décrite dans les didacticiels Entity Framework sur le site ASP.NET.

Une fois les prérequis installés, téléchargez l’application web Contoso University. Le fichier .zip contient plusieurs versions du projet. Pour suivre les étapes du didacticiel, commencez par le projet situé dans le dossier C#. Pour voir à quoi ressemble le projet à la fin des didacticiels, ouvrez le projet dans le dossier ContosoUniversity-End.

Pour préparer le projet à l’utilisation des étapes du didacticiel, procédez comme suit :

  1. Enregistrez les fichiers de solution ContosoUniversity à partir du dossier C# dans un dossier nommé ContosoUniversity dans le dossier que vous utilisez pour utiliser des projets Visual Studio.

    Par défaut, il s’agit du dossier suivant pour Visual Studio 2012 :

    C:\Users\<username>\Documents\Visual Studio 2012\Projects

    (Pour les captures d’écran de ce didacticiel, le dossier du projet se trouve dans le répertoire racine sur le Clecteur .)

  2. Démarrez Visual Studio et ouvrez le projet.

  3. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur la solution, puis cliquez sur EnableNuGet Package Restore.

  4. Générez la solution.

  5. Si vous obtenez des erreurs de compilation, restaurez manuellement les packages NuGet :

    1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur la solution, puis cliquez sur Gérer les packages NuGet pour la solution.
    2. En haut de la boîte de dialogue Gérer les packages NuGet , vous verrez que certains packages NuGet sont manquants dans cette solution. Cliquez pour restaurer. Cliquez sur le bouton Restaurer .
    3. Reconstruisez la solution.
  6. Appuyez sur CTRL-F5 pour exécuter l’application.

    L’application s’ouvre sur la page d’accueil de Contoso University.

    Développement de la page d’accueil

    (Il peut y avoir un délai d’attente pendant que Visual Studio démarre l’instance SQL Server Express LocalDB, et vous risquez d’obtenir une erreur de délai d’attente si ce processus prend trop de temps. Dans ce cas, démarrez simplement le projet à nouveau.)

Les pages du site web sont accessibles à partir de la barre de menus et vous permettent d’effectuer les fonctions suivantes :

  • Afficher les statistiques des étudiants (page À propos de).
  • Afficher, modifier, supprimer et ajouter des étudiants.
  • Afficher et modifier des cours.
  • Afficher et modifier des instructeurs.
  • Afficher et modifier des départements.

Voici quelques captures d’écran de quelques pages représentatives.

Développement de la page Étudiants

Ajouter le développement de pages Étudiants

Passer en revue les fonctionnalités d’application qui affectent le déploiement

Les fonctionnalités suivantes de l’application affectent la façon dont vous le déployez ou ce que vous devez faire pour le déployer. Chacun d’eux est expliqué plus en détail dans les didacticiels suivants dans la série.

  • Contoso University utilise une base de données SQL Server pour stocker des données d’application telles que des noms d’étudiants et d’instructeurs. La base de données contient un mélange de données de test et de données de production, et lorsque vous effectuez un déploiement en production, vous devez exclure les données de test.
  • L’application utilise le système d’appartenance ASP.NET, qui stocke les informations de compte d’utilisateur dans une base de données SQL Server. L’application définit un utilisateur administrateur qui a accès à certaines informations restreintes. Vous devez déployer la base de données d’appartenance sans comptes de test, mais avec un compte d’administrateur.
  • L’application utilise un utilitaire de journalisation des erreurs et de création de rapports tiers. Cet utilitaire est fourni dans un assembly qui doit être déployé avec l’application.
  • L’utilitaire de journalisation des erreurs écrit des informations d’erreur dans des fichiers XML dans un dossier de fichiers. Vous devez vous assurer que le compte sous lequel ASP.NET s’exécute dans le site déployé dispose d’une autorisation d’écriture dans ce dossier et que vous devez exclure ce dossier du déploiement. (Sinon, les données du journal des erreurs de l’environnement de test pourraient être déployées en production et/ou les fichiers journaux d'erreurs de production pourraient être supprimés.)
  • L’application inclut certains paramètres qui doivent être modifiés dans le fichier Web.config déployé en fonction de l’environnement de destination (test, préproduction ou production) et d’autres paramètres qui doivent être modifiés en fonction de la configuration de build (débogage ou mise en production).
  • La solution Visual Studio inclut un projet de bibliothèque de classes. Seul l’assembly généré par ce projet doit être déployé, et non le projet lui-même.

Résumé

Dans ce premier tutoriel de la série, vous avez téléchargé l’exemple de projet Visual Studio et examiné les fonctionnalités de site qui affectent la façon dont vous déployez l’application. Dans les didacticiels suivants, vous préparez le déploiement en configurant certaines de ces opérations automatiquement. D'autres que vous gérez manuellement.