Bien démarrer avec ASP.NET CoreGetting Started with ASP.NET Core

Visual Studio pour Mac facilite le développement du service de votre application avec sa prise en charge pour la plateforme de développement web ASP.NET Core la plus récente.Visual Studio for Mac makes it easy to develop your app’s service with its support for the latest ASP.NET Core Web development platform. ASP.NET Core s’exécute sur .NET Core, qui est l’évolution la plus récente du .NET Framework et du runtime.ASP.NET Core runs on .NET Core, the latest evolution of the .NET Framework and runtime. Il a été optimisé pour accélérer les performances, conçu pour des tailles d’installation réduites et réinventé pour s’exécuter sur Linux et macOS, ainsi que sur Windows.It’s been tuned for fast performance, factored for small install sizes, and re-imagined to run on Linux and macOS, as well as Windows.

Installation de .NET CoreInstalling .NET Core

.NET Core 1.1 est installé automatiquement quand vous installez Visual Studio pour Mac..NET Core 1.1 is automatically installed when you install Visual Studio for Mac.

Création d’une application ASP.NET Core dans Visual Studio pour MacCreating an ASP.NET Core app in Visual Studio for Mac

Ouvrez Visual Studio pour Mac.Open Visual Studio for Mac. Sur l’écran d’accueil, sélectionnez Nouveau projet...On the welcome page select New Project...

Boîte de dialogue Nouveau projet

La boîte de dialogue Nouveau projet s’affiche et vous permet de sélectionner un modèle pour créer votre application.This will display the New Project dialog, allowing you to select a template to create your application.

Il existe un grand nombre de projets qui vous offrent un modèle prédéfini pour commencer à créer votre application ASP.NET Core.There are a number of projects that will provide you with a pre-built template to start building your ASP.NET Core Application. Ces équivalents sont :These are:

  • .NET Core > Application web vide ASP.NET Core.NET Core > ASP.NET Core Empty Web Application
  • .NET Core > Application web ASP.NET Core.NET Core > ASP.NET Core Web App
  • .NET Core > API web ASP.NET Core.NET Core > ASP.NET Core Web API
  • Multiplateforme > Application > Application connectéeMulti-platform > App > Connected App

Options des projets ASP.NET

Sélectionnez Application web vide ASP.NET Core et appuyez sur Suivant.Select the ASP.NET Core Empty Web Application and press Next. Donnez un nom au projet et appuyez sur Créer.Give the Project a Name and press Create. Une application ASP.NET Core est créée et devrait ressembler à l’image ci-dessous :This creates a new ASP.NET Core app, that should look similar to the image below:

Vue Nouveau projet vide ASP.NET Core

L’application web vide ASP.NET Core crée une application web avec deux fichiers par défaut : Program.cs et Startup.cs, qui sont décrits ci-dessous.The ASP.NET Core Empty Web Application creates a web application with two default files: Program.cs and Startup.cs, which are explained below. Elle crée également un dossier de dépendances, qui contient les dépendances du package NuGet de votre projet, comme ASP.NET Core, le framework .NET Core et les cibles MSBuild qui génèrent le projet :It also creates a Dependencies folder, which contains your project’s NuGet package dependencies such as ASP.NET Core, the .NET Core framework, and the MSBuild targets that build the project:

Panneau Solution affichant les dépendances

Program.csProgram.cs

Ouvrez et examinez le fichier Program.cs de votre projet.Open and inspect the Program.cs file in your project. Notez que deux choses se produisent dans la méthode Main, qui est l’entrée de votre application :Notice that two things are happening in the Main method – the entry into your app:

public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .Build();

    host.Run();
}

Une application ASP.NET Core crée un serveur web dans sa méthode main en configurant et en lançant un hôte via une instance de WebHostBuilder .An ASP.NET Core app creates a web server in its main method by configuring and launching a host via an instance of WebHostBuilder. Ce générateur fournit des méthodes pour permettre la configuration de l’hôte.This builder provides methods to allow the host to be configured. Dans le modèle d’application, les configurations suivantes sont utilisées :In the template app the following configurations are used:

  • UseKestrel : spécifie que le serveur Kestrel est utilisé par l’applicationUseKestrel: Specifies the Kestrel server will be used by the app
  • UseContentRoot(Directory.GetCurrentDirectory()) : utilise le dossier racine du projet web comme racine du contenu de l’application quand l’application est démarrée à partir de ce dossierUseContentRoot(Directory.GetCurrentDirectory()): Uses the web project's root folder as the app's content root when the app is started from this folder
  • .UseIISIntegration() : spécifie que l’application doit fonctionner avec IIS..UseIISIntegration(): Specifies that the app should work with IIS. Pour utiliser IIS avec ASP.NET Core, UseKestrel et UseIISIntegration doivent tous deux être spécifiés.To use IIS with ASP.NET Core both UseKestrel and UseIISIntegration need to be specified.
  • .UseStartup<Startup>() : spécifie la classe de démarrage..UseStartup<Startup>(): Specifies the Startup class.

    Les méthodes Build et Run génèrent l’hôte IWebHost qui hébergera l’application et la démarrera en écoutant les requêtes HTTP entrantes.The Build and Run methods build the IWebHost that will host the app and start it listening for incoming HTTP requests.

Startup.csStartup.cs

La classe Startup de votre application est spécifiée dans la méthode UseStartup() sur WebHostBuilder.The Startup class for your app is specified in the UseStartup() method on the WebHostBuilder. C’est dans cette classe que vous spécifiez le pipeline de gestion des demandes et où vous configurez les services.It is in this class that you will specify the request handling pipeline, and where you configure any services.

Ouvrez et examinez le fichier Startup.cs de votre projet :Open and inspect the Startup.cs file in your project:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }
}

Cette classe Startup doit toujours respecter les règles suivantes :This Startup class must always adhere to the following rules:

  • Elle doit toujours être publique.It must always be public
  • Elle doit contenir les deux méthodes publiques ConfigureServices et Configure.It must contain the two public methods: ConfigureServices and Configure

La méthode ConfigureServices définit les services qui seront utilisés par votre application.The ConfigureServices method defines the services that will be used by your app.

La méthode Configure vous permet de composer votre pipeline de demandes à l’aide de middleware.The Configure allows you to compose your request pipeline using Middleware. Il s’agit des composants utilisés au sein d’un pipeline d’application ASP.NET pour gérer les demandes et les réponses.These are components used within an ASP.NET application pipeline to handle requests and responses. Le pipeline HTTP se compose d’un certain nombre de délégués de demande, appelés en séquence.The HTTP pipeline consists of a number of request delegates, called in sequence. Chaque délégué peut choisir de gérer la demande proprement dite ou de la passer au délégué suivant.Each delegate can choose to either handle the request itself, or pass it to the next delegate.

Vous pouvez configurer des délégués en utilisant les méthodes Run, Map et Use sur IApplicationBuilder, mais la méthode Run n’appelle jamais le délégué suivant et doit toujours être utilisée à la fin de votre pipeline.You can configure delegates by using the Run,Map, and Use methods on IApplicationBuilder, but the Run method will never call a next delegate and should always be used at the end of your pipeline.

La méthode Configure du modèle prédéfini est conçue pour effectuer certaines opérations.The Configure method of the pre-built template is built to do a few things. Elle configure d’abord une page de gestion des exceptions à utiliser pendant le développement.First, it configures an exception handling page for use during development. Ensuite, elle envoie une réponse à la page web qui fait la demande avec un simple « Hello World ».Then, it sends a response to the requesting web page with a simple "Hello World".

Ce projet simple « Hello World » peut maintenant s’exécuter sans ajouter de code supplémentaire.This simple Hello, World project can run now without any additional code being added. Pour exécuter l’application et la voir dans votre navigateur, cliquez sur le bouton (triangulaire) Lecture dans la barre d’outils :To run the app, and view it in your browser, press the Play (Triangular) button in the toolbar:

Exécuter une application

Visual Studio pour Mac utilise un port aléatoire pour lancer votre projet web.Visual Studio for Mac uses a random port to launch your web project. Pour trouver de quel port il s’agit, ouvrez la sortie de l’application, qui se trouve sous Afficher > Panneaux.To find out what port this is, open the Application Output, which is listed under View > Pads. Vous devez trouver une sortie similaire à celle-ci :You should find output similar to that shown below:

Sortie de l’application montrant le port qui est à l’écoute

Ouvrez le navigateur de votre choix et entrez http://localhost:5000/, en remplaçant 5000 par le port indiqué par Visual Studio dans la sortie de l’application.Open your browser of choice, and enter http://localhost:5000/, replacing the 5000 with the port that Visual Studio output in the Application Output. Vous devez normalement voir le texte Hello World! :You should see the text Hello World!:

navigateur affichant le texte

Ajour d’un contrôleurAdding a Controller

Les applications ASP.NET Core utilisent le modèle de conception MVC (Modèle-Vue-Contrôleur) pour fournir une séparation logique entre les responsabilités de chaque partie de l’application.ASP.NET Core Apps use the Model-View-Controller (MVC) design pattern to provide a logical separation of responsibilities for each part of the app. Le modèle MVC est constitué des éléments suivants :MVC consists of the following:

  • Modèle : classe qui représente les données de l’application.Model: A class that represents the data of the app.
  • Vue : affiche l’interface utilisateur de l’application (qui est souvent constituée des données du modèle).View: Displays the app's user interface (which is often the model data).
  • Contrôleur : classe qui gère les demandes du navigateur et qui répond aux entrées et aux interactions de l’utilisateur.Controller: A class which handles browser requests, responds to user input and interaction.

Pour plus d’informations sur l’utilisation du modèle MVC, consultez le guide Vue d’ensemble du modèle MVC d’ASP.NET Core.For more information on using MVC refer to Overview of ASP.NET Core MVC guide.

Pour ajouter un contrôleur, procédez comme suit :To add a controller, do the following:

  1. Cliquez avec le bouton droit sur le nom du projet et sélectionnez Ajouter > Nouveaux fichiers.Right-click on the Project name and select Add > New Files. Sélectionnez Général > Classe vide, puis entrez un nom de contrôleur :Select General > Empty Class, and enter a controller name:

    Boîte de dialogue Nouveau fichier

  2. Ajoutez le code suivant au nouveau contrôleur :Add the following code to the new controller:

    using System;
    using Microsoft.AspNetCore.Mvc;
    using System.Text.Encodings.Web;
    
    namespace Hello_ASP
    {
        public class HelloWorldController : Controller
        {
            //
            // GET: /HelloWorld/
    
            public string Index()
            {
                return "This is my default action...";
            }
    
        }
    }
    
  3. Ajoutez la dépendance Microsoft.AspNetCore.Mvc au projet en cliquant avec le bouton droit sur le dossier Dépendance et en sélectionnant Ajouter un package....Add the Microsoft.AspNetCore.Mvc dependency to the project by right-clicking the Dependency folder, and selecting Add Package....

  4. Utilisez la zone Rechercher pour trouver Microsoft.AspNetCore.Mvc dans la bibliothèque NuGet, puis sélectionnez Ajouter un package.Use the Search box to browse the NuGet library for Microsoft.AspNetCore.Mvc, and select Add Package. L’installation peut prendre quelques minutes et vous serez peut-être invité à accepter différentes licences pour les dépendances nécessaires :This may take a few minutes to install and you may be prompted to accept various licenses for the required dependencies:

    Ajouter NuGet

  5. Dans la classe Startup, supprimez l’expression lambda app.Run et définissez comme suit la logique de routage d’URL utilisée par MVC pour déterminer quel code il doit appeler :In the Startup class, remove the app.Run lambda and set the URL routing logic used by MVC to determine which code it should invoke to the following:

    app.UseMvc(routes =>
    {
        routes.MapRoute(
        name: "default",
        template: "{controller=HelloWorld}/{action=Index}/{id?}");
    });
    

    Veillez à supprimer l’expression lambda app.Run, car ceci remplacera la logique de routage.Make sure to remove the app.Run lambda, as this will override the routing logic.

    MVC utilise le format suivant pour déterminer le code à exécuter :MVC uses the following format, to determine which code to run:

    /[Controller]/[ActionName]/[Parameters]

    Quand vous ajoutez l’extrait de code ci-dessus, vous indiquez à l’application d’utiliser par défaut le contrôleur HelloWorld et la méthode d’action Index.When you add the code snippet above, you are telling the app to default to the HelloWorld Controller, and the Index action method.

  6. Ajoutez l’appel de services.AddMvc(); à la méthode ConfigureServices, comme illustré ci-dessous :Add the services.AddMvc(); call to the ConfigureServices method, as illustrated below:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    }
    

    Vous pouvez également passer des informations sur les paramètres de l’URL au contrôleur.You can also pass parameter information from the URL to the controller.

  7. Ajoutez une autre méthode à votre contrôleur HelloWorld, comme illustré ci-dessous :Add another method to your HelloWorldController, as illustrated below:

    public string Xamarin(string name)
    {
        return HtmlEncoder.Default.Encode($"Hello {name}, welcome to Visual Studio for Mac");
    }
    
  8. Si vous exécutez l’application maintenant, elle doit ouvrir automatiquement votre navigateur :If you run the app now, it should automatically open your browser:

    Exécution de l’application dans le navigateur

  9. Essayez d’accéder à http://localhost:xxxx/HelloWorld/Xamarin?name=Amy (en remplaçant xxxx par le port approprié). Vous devez normalement voir ceci :Try to browse to http://localhost:xxxx/HelloWorld/Xamarin?name=Amy (replacing xxxx with the correct port), you should see the following:

    Exécution de l’application dans le navigateur avec des arguments

Résolution des problèmesTroubleshooting

Si vous avez besoin d’installer .NET Core manuellement sur Mac OS 10.11 (El Capitan) et ultérieur, procédez comme suit :If you need to install .NET Core manually on Mac OS 10.11 (El Capitan) and higher, do the following:

  1. Avant de commencer l’installation de .NET Core, assurez-vous d’avoir appliqué toutes les mises à jour du système d’exploitation à la dernière version stable.Before you start installing .NET Core, ensure that you have updated all OS updates to the latest stable version. Vous pouvez le vérifier en accédant à l’application App Store et en sélectionnant l’onglet Mises à jour.You can check this by going to the App Store application, and selecting the Updates tab.

  2. Suivez les étapes listées sur le site de .NET Core.Follow the steps listed on the .NET Core site.

Veillez à effectuer correctement les quatre étapes pour garantir que .NET Core est bien installé.Make sure to complete all four steps successfully to ensure that .NET Core is installed successfully.

RésuméSummary

Ce guide était une introduction à ASP.NET Core.This guide gave an introduction to ASP.NET Core. Il explique ce que c’est et quand l’utiliser, et fournit des informations sur son utilisation dans Visual Studio pour Mac.It describes what it is, when to use it, and provided information on using it in Visual Studio for Mac. Pour plus d’informations sur les étapes à suivre à partir d’ici, consultez les guides suivants :For more information on the next steps from here, refer to the following guides: