Notions de base d’ASP.NET CoreASP.NET Core fundamentals

Une application ASP.NET Core est une application console qui crée un serveur web dans sa méthode Main :An ASP.NET Core application is a console app that creates a web server in its Main method:

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;

namespace aspnetcoreapp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }
}

La méthode Main appelle WebHost.CreateDefaultBuilder, qui suit le modèle de conception builder pour créer un hôte d’application web.The Main method invokes WebHost.CreateDefaultBuilder, which follows the builder pattern to create a web application host. Le builder a des méthodes qui définissent le serveur web (par exemple UseKestrel) et la classe de démarrage (UseStartup).The builder has methods that define the web server (for example, UseKestrel) and the startup class (UseStartup). Dans l’exemple précédent, le serveur web Kestrel est alloué automatiquement.In the preceding example, the Kestrel web server is automatically allocated. L’hôte web d’ASP.NET Core tente de s’exécuter sur IIS, s’il est disponible.ASP.NET Core's web host attempts to run on IIS, if available. D’autres serveurs web, tels que HTTP.sys, peuvent être utilisés via l’appel de la méthode d’extension appropriée.Other web servers, such as HTTP.sys, can be used by invoking the appropriate extension method. UseStartup est expliqué de manière plus détaillée dans la section suivante.UseStartup is explained further in the next section.

IWebHostBuilder, le type de retour de l’appel de WebHost.CreateDefaultBuilder, fournit de nombreuses méthodes facultatives.IWebHostBuilder, the return type of the WebHost.CreateDefaultBuilder invocation, provides many optional methods. Certaines de ces méthodes incluent UseHttpSys pour l’hébergement de l’application dans HTTP.sys et UseContentRoot pour la spécification du répertoire de contenu racine.Some of these methods include UseHttpSys for hosting the app in HTTP.sys and UseContentRoot for specifying the root content directory. Les méthodes Build et Run génèrent l’objet IWebHost, qui héberge l’application et démarre l’écoute des requêtes HTTP.The Build and Run methods build the IWebHost object that hosts the app and begins listening for HTTP requests.

DémarrageStartup

La méthode UseStartup sur WebHostBuilder spécifie la classe Startup pour votre application :The UseStartup method on WebHostBuilder specifies the Startup class for your app:

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

La classe Startup est l’emplacement où vous définissez le pipeline de traitement des requêtes et où sont configurés les services nécessaires à l’application.The Startup class is where you define the request handling pipeline and where any services needed by the app are configured. La classe Startup doit être publique et contenir les méthodes suivantes :The Startup class must be public and contain the following methods:

public class Startup
{
    // This method gets called by the runtime. Use this method
    // to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
    }

    // This method gets called by the runtime. Use this method
    // to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
    }
}

ConfigureServices définit les services utilisés par votre application (par exemple, ASP.NET Core MVC, Entity Framework Core et Identity).ConfigureServices defines the Services used by your app (for example, ASP.NET Core MVC, Entity Framework Core, Identity). Configure définit les intergiciels (middleware) du pipeline de requêtes.Configure defines the middleware for the request pipeline.

Pour plus d’informations, consultez Démarrage de l’application.For more information, see Application startup.

Racine de contenuContent root

La racine de contenu est le chemin de base de tout contenu utilisé par l’application, par exemple les vues, les pages Razor et les composants statiques.The content root is the base path to any content used by the app, such as views, Razor Pages, and static assets. Par défaut, la racine de contenu est identique au chemin de base de l’application pour l’exécutable qui héberge l’application.By default, the content root is the same as application base path for the executable hosting the app.

Racine webWeb root

La racine web d’une application correspond au répertoire de projet qui contient les ressources publiques, statiques, telles que les fichiers CSS, JavaScript et image.The web root of an app is the directory in the project containing public, static resources, such as CSS, JavaScript, and image files.

Injection de dépendances (services)Dependency injection (services)

Un service est un composant destiné à une consommation courante dans une application.A service is a component that's intended for common consumption in an app. Les services sont accessibles via l’injection de dépendances.Services are made available through dependency injection (DI). ASP.NET Core inclut un conteneur IoC (Inversion of Control) natif qui prend en charge l’injection de constructeurs par défaut.ASP.NET Core includes a native Inversion of Control (IoC) container that supports constructor injection by default. Vous pouvez remplacer le conteneur natif par défaut si vous le souhaitez.You can replace the default native container if you wish. L’injection de dépendances n’offre pas seulement un couplage faible, elle permet également d’accéder aux services dans l’ensemble de votre application (par exemple, la journalisation).In addition to its loose coupling benefit, DI makes services available throughout your app (for example, logging).

Pour plus d’informations, consultez Injection de dépendances.For more information, see Dependency injection.

Intergiciel (middleware)Middleware

Dans ASP.NET Core, vous composez votre pipeline de requêtes à l’aide d’un intergiciel (middleware).In ASP.NET Core, you compose your request pipeline using middleware. Un intergiciel (middleware) ASP.NET Core suit une logique asynchrone sur HttpContext, puis appelle l’intergiciel suivant de la séquence ou met fin directement à la requête.ASP.NET Core middleware performs asynchronous logic on an HttpContext and then either invokes the next middleware in the sequence or terminates the request directly. Un composant intergiciel (middleware) appelé « XYZ » est ajouté via l’appel de la méthode d’extension UseXYZ dans la méthode Configure.A middleware component called "XYZ" is added by invoking an UseXYZ extension method in the Configure method.

ASP.NET Core comprend un ensemble complet d’intergiciels (middleware) intégrés :ASP.NET Core includes a rich set of built-in middleware:

L’intergiciel (middleware) OWIN est disponible pour les applications ASP.NET Core. Vous pouvez aussi écrire votre propre intergiciel personnalisé.OWIN-based middleware is available for ASP.NET Core apps, and you can write your own custom middleware.

Pour plus d’informations, consultez Intergiciel (middleware) et OWIN (Open Web Interface pour .NET).For more information, see Middleware and Open Web Interface for .NET (OWIN).

Lancer des requêtes HTTPInitiate HTTP requests

Pour plus d’informations sur l’utilisation de IHttpClientFactory pour accéder à des instances HttpClient afin d’effectuer des requêtes HTTP, consultez Lancement de requêtes HTTP.For information about using IHttpClientFactory to access HttpClient instances to make HTTP requests, see Initiate HTTP requests.

EnvironnementsEnvironments

Les environnements, tels que « Développement » et « Production », sont une notion de premier plan dans ASP.NET Core. Vous pouvez les définir à l’aide de variables d’environnement.Environments, such as "Development" and "Production", are a first-class notion in ASP.NET Core and can be set using environment variables.

Pour plus d’informations, consultez Utiliser plusieurs environnements.For more information, see Use multiple environments.

ConfigurationConfiguration

ASP.NET Core utilise un modèle de configuration basé sur les paires nom-valeur.ASP.NET Core uses a configuration model based on name-value pairs. Le modèle de configuration n’est pas basé sur System.Configuration ou web.config. La configuration obtient les paramètres d’une sélection de fournisseurs de configuration.The configuration model isn't based on System.Configuration or web.config. Configuration obtains settings from an ordered set of configuration providers. Les fournisseurs de configuration intégrés prennent en charge une grande variété de formats de fichiers (XML, JSON, INI), ainsi que des variables d’environnement pour activer la configuration basée sur l’environnement.The built-in configuration providers support a variety of file formats (XML, JSON, INI) and environment variables to enable environment-based configuration. Vous pouvez également écrire vos propres fournisseurs de configuration.You can also write your own custom configuration providers.

Pour plus d’informations, consultez Configuration.For more information, see Configuration.

JournalisationLogging

ASP.NET Core prend en charge une API de journalisation qui fonctionne avec divers fournisseurs de journalisation.ASP.NET Core supports a logging API that works with a variety of logging providers. Les fournisseurs intégrés prennent en charge l’envoi de journaux à une ou plusieurs destinations.Built-in providers support sending logs to one or more destinations. Des frameworks de journalisation tiers peuvent être utilisés.Third-party logging frameworks can be used.

JournalisationLogging

Gestion des erreursError handling

ASP.NET Core offre des fonctionnalités intégrées pour la gestion des erreurs dans les applications, notamment une page d’exceptions du développeur, des pages d’erreurs personnalisées, des pages de code d’état statique et la gestion des exceptions de démarrage.ASP.NET Core has built-in features for handling errors in apps, including a developer exception page, custom error pages, static status code pages, and startup exception handling.

Pour plus d’informations, consultez Guide pratique pour gérer les erreurs.For more information, see how to handle errors.

RoutageRouting

ASP.NET Core offre des fonctionnalités pour router les requêtes d’application vers les gestionnaires de routage.ASP.NET Core offers features for routing of app requests to route handlers.

Pour plus d’informations, consultez Routage.For more information, see Routing.

Fournisseurs de fichiersFile providers

ASP.NET Core fournit un accès au système de fichiers en utilisant des fournisseurs de fichiers qui offrent une interface commune permettant de travailler avec des fichiers sur plusieurs plateformes.ASP.NET Core abstracts file system access through the use of File Providers, which offers a common interface for working with files across platforms.

Pour plus d’informations, consultez Fournisseurs de fichiers.For more information, see File Providers.

Fichiers statiquesStatic files

L’intergiciel (middleware) de fichiers statiques prend en charge des fichiers statiques, tels que HTML, CSS, image et JavaScript.Static files middleware serves static files, such as HTML, CSS, image, and JavaScript.

Pour plus d’informations, consultez Fichiers statiques.For more information, see Static files.

HébergementHosting

Les applications ASP.NET Core configurent et lancent un hôte, qui est responsable de la gestion du démarrage et de la durée de vie des applications.ASP.NET Core apps configure and launch a host, which is responsible for app startup and lifetime management.

Pour plus d’informations, consultez Héberger dans ASP.NET Core.For more information, see Host in ASP.NET Core.

État de session et d’applicationSession and application state

L’état de session est une fonctionnalité ASP.NET Core que vous pouvez utiliser pour enregistrer et stocker des données utilisateur pendant que l’utilisateur navigue dans votre application web.Session state is a feature in ASP.NET Core that you can use to save and store user data while the user browses your web app.

Pour plus d’informations, consultez État de session et d’application.For more information, see Session and application state.

ServeursServers

Le modèle d’hébergement ASP.NET Core n’écoute pas directement les requêtes.The ASP.NET Core hosting model doesn't directly listen for requests. Le modèle d’hébergement s’appuie sur une implémentation de serveur HTTP pour transférer la requête à l’application.The hosting model relies on an HTTP server implementation to forward the request to the app. La requête transférée est enveloppée (wrap) dans un ensemble d’objets de fonctionnalités auxquels vous pouvez accéder via des interfaces.The forwarded request is wrapped as a set of feature objects that can be accessed through interfaces. ASP.NET Core inclut un serveur web multiplateforme géré, appelé Kestrel.ASP.NET Core includes a managed, cross-platform web server, called Kestrel. Kestrel s’exécute souvent derrière un serveur web de production comme IIS ou Nginx.Kestrel is often run behind a production web server, such as IIS or Nginx. Kestrel peut être exécuté comme serveur edge.Kestrel can be run as an edge server.

Pour plus d’informations, consultez Serveurs et les rubriques suivantes :For more information, see Servers and the following topics:

Globalisation et localisationGlobalization and localization

La création d’un site web multilingue avec ASP.NET Core vous permet d’atteindre un plus large public.Creating a multilingual website with ASP.NET Core allows your site to reach a wider audience. ASP.NET Core offre des services et des intergiciels (middleware) de traduction dans différentes langues et cultures.ASP.NET Core provides services and middleware for localizing into different languages and cultures.

Pour plus d’informations, consultez Internationalisation et traduction.For more information, see Globalization and localization.

Fonctionnalités de requêteRequest features

Les détails d’implémentation d’un serveur web relatifs aux requêtes HTTP et aux réponses sont définis dans les interfaces.Web server implementation details related to HTTP requests and responses are defined in interfaces. Ces interfaces sont utilisées par les implémentations de serveur et les intergiciels (middleware) pour créer et modifier le pipeline d’hébergement de l’application.These interfaces are used by server implementations and middleware to create and modify the app's hosting pipeline.

Pour plus d’informations, consultez Fonctionnalités de requête.For more information, see Request Features.

Tâches en arrière-planBackground tasks

Les tâches en arrière-plan sont implémentées en tant que services hébergés.Background tasks are implemented as hosted services. Un service hébergé est une classe avec la logique de tâches en arrière-plan qui implémente l’interface IHostedService.A hosted service is a class with background task logic that implements the IHostedService interface.

Pour plus d’informations, consultez Tâches en arrière-plan avec services hébergés.For more information, see Background tasks with hosted services.

OWIN (Open Web Interface pour .NET)Open Web Interface for .NET (OWIN)

ASP.NET Core prend en charge l’interface Open Web pour .NET (OWIN).ASP.NET Core supports the Open Web Interface for .NET (OWIN). OWIN permet que les applications web soient dissociées des serveurs web.OWIN allows web apps to be decoupled from web servers.

Pour plus d’informations, consultez Interface Open Web pour .NET (OWIN).For more information, see Open Web Interface for .NET (OWIN).

WebSocketsWebSockets

WebSocket est un protocole qui autorise des canaux de communication persistants bidirectionnels sur les connexions TCP.WebSocket is a protocol that enables two-way persistent communication channels over TCP connections. Il est utilisé pour des applications comme le chat, les transactions boursières, les jeux et partout où vous voulez des fonctionnalités en temps réel dans une application web.It's used for apps such as chat, stock tickers, games, and anywhere you desire real-time functionality in a web app. ASP.NET Core prend en charge les fonctionnalités de socket web.ASP.NET Core supports web socket features.

Pour plus d’informations, consultez WebSockets.For more information, see WebSockets.

Métapackage Microsoft.AspNetCore.AllMicrosoft.AspNetCore.All metapackage

Le métapackage Microsoft.AspNetCore.All pour ASP.NET Core comprend :The Microsoft.AspNetCore.All metapackage for ASP.NET Core includes:

  • Tous les packages pris en charge par l’équipe ASP.NET Core.All supported packages by the ASP.NET Core team.
  • Tous les packages pris en charge par Entity Framework Core.All supported packages by the Entity Framework Core.
  • Les dépendances internes et tierces utilisées par ASP.NET Core et Entity Framework Core.Internal and 3rd-party dependencies used by ASP.NET Core and Entity Framework Core.

Pour plus d’informations, consultez Métapackage Microsoft.AspNetCore.All.For more information, see Microsoft.AspNetCore.All metapackage.

Runtime .NET Core et runtime .NET Framework.NET Core vs. .NET Framework runtime

Une application ASP.NET Core peut cibler le runtime .NET Core ou .NET Framework.An ASP.NET Core app can target the .NET Core or .NET Framework runtime.

Pour plus d’informations, consultez Choix entre .NET Core et .NET Framework.For more information, see Choosing between .NET Core and .NET Framework.

Choisir entre ASP.NET Core et ASP.NETChoose between ASP.NET Core and ASP.NET

Pour plus d’informations sur le choix entre ASP.NET Core et ASP.NET, consultez Choisir entre ASP.NET Core et ASP.NET.For more information on choosing between ASP.NET Core and ASP.NET, see Choose between ASP.NET Core and ASP.NET.