déploiement web ASP.NET à 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 mettre à la disposition des utilisateurs via Internet. Mais les tutoriels de programmation web s’arrêtent généralement juste après qu’ils vous ont montré comment obtenir quelque chose qui fonctionne sur votre ordinateur de développement. Cette série de tutoriels commence là où les autres s’en vont : vous avez créé une application web, vous l’avez testée et elle est prête à démarrer. Quelle est l’étape suivante ? Ces tutoriels 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 indiquées s’appliquent également à ASP.NET MVC et à l’API web.

Ces tutoriels 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 tutoriel de base ASP.NET Web Forms ou un tutoriel de base ASP.NET MVC.

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

Vue d’ensemble

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 sur IIS sur votre ordinateur de développement local à des fins de test, puis pour Web Apps dans Azure App Service et Azure SQL base de données pour la préproduction et la production. Vous verrez comment déployer à l’aide de La publication en un clic de Visual Studio, et vous verrez comment déployer à l’aide de la ligne de commande.

Le nombre de tutoriels 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 tutoriels n’oublient pas d’informations susceptibles de vous empêcher de déployer correctement une application réelle.

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

Public concerné

Les tutoriels s’adressent aux développeurs ASP.NET 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 ne se limite pas à 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 tutoriel 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 tutoriels vous guident tout au long du processus de configuration d’un compte Azure et de déploiement de l’application pour 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. Lorsque les tutoriels traitent des processus propres à Azure, ils expliquent cela et vous indiquent les différences auxquelles vous pouvez vous attendre chez 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 et outils de déploiement 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 déployez sur un fournisseur d’hébergement qui ne prend pas en charge ASP.NET MVC ou votre version cible de celui-ci, 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 connaissance de 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 un déploiement web dans Visual Studio :

  • Migrations Entity Framework Code First
  • 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 Déploiement web de Visual Studio avec 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 web Deployment Content Map pour Visual Studio et ASP.NET.

Migrations Entity Framework Code First

Dans Entity Framework version 4.3, Microsoft a introduit Migrations Code First. Migrations Code First 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 à 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 vous pouvez écrire du code qui personnalise les modifications. Pour une présentation de Migrations Code First, consultez Migrations Code First.

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 Migrations Code First. Lorsque vous créez le profil de publication, vous sélectionnez une zone de case activée intitulée Exécuter Migrations Code First (s’exécute au démarrage de l’application). Ce paramètre oblige le processus de déploiement à configurer automatiquement le fichier Web.config d’application sur le serveur de destination afin que Code First utilise la classe d’initialiseur MigrateDatabaseToLatestVersion .

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 la mise à jour du schéma.

Dans ce tutoriel, vous allez utiliser Migrations Code First 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 sélectionner une zone case activée 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 il met à jour le schéma de la base de données de destination pour qu’il 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 des données dans les tables de base de données, mais vous pouvez créer des scripts pour ce 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 est d’apporter des modifications de schéma qui ne peuvent pas être effectuées automatiquement, car elles entraîneraient 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 au cours de 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 avec 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 si un élément ne fonctionne pas au fur et à mesure que vous suivez les tutoriels, veillez à case activée la page de résolution des problèmes.

Commentaires bienvenus

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

Prérequis

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 les logiciels suivants :

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 plutôt que sur Azure, car le KIT de développement logiciel (SDK) inclut les dernières mises à jour des fonctionnalités de publication web de Visual Studio.

Notes

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 mention ces fonctionnalités et créer un lien vers des ressources qui ont plus d’informations à leur sujet.

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

D’autres logiciels sont nécessaires pour suivre le tutoriel, mais vous n’avez pas besoin de l’avoir encore installé. Le tutoriel vous guide tout au long des étapes de son installation quand vous en avez besoin.

Téléchargement de 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 librement 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 à suivre les étapes du didacticiel, procédez comme suit :

  1. Enregistrez les fichiers de solution ContosoUniversity à partir du dossier C# dans un dossier nommé ContosoUniversity, quel que soit le dossier que vous utilisez pour travailler avec 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 tutoriel, 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 Explorateur de solutions, cliquez avec le bouton droit sur la solution, puis cliquez sur ActiverNuGet Package Restore.

  4. Générez la solution.

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

    1. Dans 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. Régénérez 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 temps d’attente pendant que Visual Studio démarre l’instance LocalDB SQL Server Express, et vous risquez d’obtenir une erreur de délai d’expiration si ce processus prend trop de temps. Dans ce cas, il suffit de redémarrer le projet.)

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 services.

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

Développement de pages étudiants

Ajouter le développement de pages d’é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 la déployez ou ce que vous devez faire pour la déployer. Chacun de ces éléments est expliqué plus en détail dans les tutoriels suivants de la série.

  • Contoso University utilise une base de données SQL Server pour stocker des données d’application telles que les noms des étudiants et des instructeurs. La base de données contient une combinaison de données de test et de production, et lorsque vous déployez 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 et de création de rapports d’erreurs tiers. Cet utilitaire est fourni dans un assembly qui doit être déployé avec l’application.
  • L’utilitaire de journalisation des erreurs écrit les informations d’erreur dans les 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 de l’autorisation d’écriture dans ce dossier, et vous devez exclure ce dossier du déploiement. (Sinon, les données du journal des erreurs de l’environnement de test peuvent être déployées en production et/ou les fichiers journaux des erreurs de production peuvent ê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), ainsi que 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é, pas 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 passé en revue les fonctionnalités du site qui affectent la façon dont vous déployez l’application. Dans les tutoriels suivants, vous préparez le déploiement en configurant certains de ces éléments à gérer automatiquement. D’autres que vous prenez en charge manuellement.