Premiers pas avec asp.net-core

Installation et configuration

Installation de Visual Studio

Si vous n’avez pas installé Visual Studio, vous pouvez [télécharger gratuitement Visual Studio Community Edition ici][1]. Si vous l’avez déjà installé, vous pouvez passer à l’étape suivante.

Création d’une application ASP.NET Core MVC.

  1. Ouvrez Visual Studio.
  2. Sélectionnez Fichier > Nouveau projet.
  3. Sélectionnez Web sous la langue de votre choix dans la section Modèles sur la gauche.
  4. Choisissez un type de projet préféré dans la boîte de dialogue.
  5. Facultatif : Choisissez un .NET Framework que vous souhaitez cibler
  6. Nommez votre projet et indiquez si vous souhaitez créer une solution pour le projet.
  7. Cliquez sur OK pour créer le projet.

[![entrez la description de l’image ici][2]][2]

Une autre boîte de dialogue vous sera présentée pour sélectionner le modèle que vous souhaitez utiliser pour le projet :

[![entrez la description de l’image ici][3]][3]

Chacune des descriptions est explicite. Pour ce premier projet, sélectionnez Application Web, qui contiendra toutes les configurations par défaut, l’authentification et certains contenus existants.

Puisqu’il s’agit d’une application d’introduction et ne nécessitant aucune sécurité ou authentification, vous pouvez changer l’option d’authentification sur Aucune authentification sur le côté droit de la boîte de dialogue et cliquer sur OK pour créer le projet.

Vous devriez alors voir le nouveau projet dans l’Explorateur de solutions :

[![entrez la description de l’image ici][4]][4]

Appuyez sur la touche F5 pour exécuter l’application et démarrez une session de débogage, qui lancera l’application dans votre navigateur par défaut :

[![entrez la description de l’image ici][5]][5]

Vous pouvez maintenant voir que votre projet est opérationnel localement et qu’il est prêt comme point de départ pour créer votre application.

[1] : https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx [2] : http://i.stack.imgur.com/pMtnk.png [3] : http://i.stack.imgur.com/uOxqu.png [4] : http://i.stack.imgur.com/K0Fx5.png [5] : http://i.stack.imgur.com/h93dH.png

API Web ASP.NET Core minimale avec ASP.NET Core MVC

Avec ASP.NET Core 1.0, le framework MVC et l’API Web ont été fusionnés en un seul framework appelé ASP.NET Core MVC. C’est une bonne chose, car MVC et l’API Web partagent de nombreuses fonctionnalités, mais il y a toujours eu des différences subtiles et des doublons de code.

Cependant, la fusion de ces deux dans le cadre un a également rendu plus difficile la distinction l’une de l’autre. Par exemple, Microsoft.AspNet.WebApi représente le framework Web API 5.x.x, pas le nouveau. Mais, lorsque vous incluez Microsoft.AspNetCore.Mvc (version 1.0.0), vous obtenez le package complet. Celui-ci contiendra toutes les fonctionnalités prêtes à l’emploi offertes par le framework MVC. Tels que Razor, les assistants de balises et la liaison de modèle.

Lorsque vous souhaitez simplement créer une API Web, nous n’avons pas besoin de toutes ces fonctionnalités. Alors, comment construire une API Web minimaliste ? La réponse est : Microsoft.AspNetCore.Mvc.Core. Dans le nouveau monde, MVC est divisé en plusieurs packages et ce package ne contient que les composants de base du framework MVC, tels que le routage et l’autorisation.

Pour cet exemple, nous allons créer une API MVC minimale. Y compris un formateur JSON et CORS. Créez une application Web ASP.NET Core 1.0 vide et ajoutez ces packages à votre project.json :

"Microsoft.AspNetCore.Mvc.Core": "1.0.0",
"Microsoft.AspNetCore.Mvc.Cors": "1.0.0",
"Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.0"

Nous pouvons maintenant enregistrer MVC en utilisant AddMvcCore() dans la classe de démarrage :

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvcCore()
            .AddCors()
            .AddJsonFormatters();
}

AddMvcCore renvoie une instance IMvcCoreBuilder qui permet de poursuivre la construction. La configuration du middleware est la même que d’habitude :

public void Configure(IApplicationBuilder app)
{
    app.UseCors(policy =>
    {
        policy.AllowAnyOrigin();
    });
    app.UseMvc();
}

Contrôleurs

L’“ancienne” API Web est livrée avec sa propre classe de base de contrôleur : “ApiController”. Dans le nouveau monde, il n’y a rien de tel, seulement la classe Controller par défaut. Malheureusement, il s’agit d’une classe de base assez volumineuse et elle est liée à la liaison de modèle, aux vues et à JSON.NET.

Heureusement, dans le nouveau framework, les classes de contrôleur n’ont pas à dériver de Controller pour être récupérées par le mécanisme de routage. Il suffit d’ajouter le nom avec Controller. Cela nous permet de construire notre propre classe de base de contrôleur. Appelons-le ApiController, juste pour le bon vieux temps :

/// <summary>
/// Base class for an API controller.
/// </summary>
[Controller]
public abstract class ApiController
{
    [ActionContext]
    public ActionContext ActionContext { get; set; }

    public HttpContext HttpContext => ActionContext?.HttpContext;

    public HttpRequest Request => ActionContext?.HttpContext?.Request;

    public HttpResponse Response => ActionContext?.HttpContext?.Response;

    public IServiceProvider Resolver => ActionContext?.HttpContext?.RequestServices;
}

L’attribut [Controller] indique que le type ou tout type dérivé est considéré comme un contrôleur par le mécanisme de découverte de contrôleur par défaut. L’attribut [ActionContext] spécifie que la propriété doit être définie avec le ActionContext actuel lorsque MVC crée le contrôleur. Le ActionContext fournit des informations sur la requête en cours.

ASP.NET Core MVC propose également une classe ControllerBase qui fournit une classe de base de contrôleur juste sans prise en charge des vues. C’est quand même beaucoup plus grand que le nôtre. Utilisez-le si vous le trouvez pratique.

Conclusion

Nous pouvons maintenant créer une API Web minimale à l’aide du nouveau framework ASP.NET Core MVC. La structure de package modulaire nous permet de simplement extraire les packages dont nous avons besoin et de créer une application légère et simple.

Créer un nouveau projet à partir de la ligne de commande

Il est possible de créer un nouveau projet ASP.NET Core entièrement à partir de la ligne de commande à l’aide de la commande dotnet.

dotnet new web
dotnet restore
dotnet run

dotnet new web échafaude un nouveau projet Web “vide”. Le paramètre web indique à l’outil dotnet d’utiliser le modèle ASP.NET Core Empty. Utilisez dotnet new -all pour afficher tous les modèles disponibles actuellement installés. Les autres modèles de clé incluent console, classlib, mvc et xunit.

Une fois le modèle échafaudé, vous pouvez restaurer les packages nécessaires à l’exécution du projet (dotnet restore), puis le compiler et le démarrer (dotnet run).

Une fois le projet en cours d’exécution, il sera disponible sur le port par défaut : http://localhost:5000

Utilisation du code Visual Studio pour développer une application de base aspnet multiplateforme

Avec AspNetCore, vous pouvez développer l’application sur n’importe quelle plate-forme, y compris Mac, Linux, Windows et Docker.

Installation et configuration

  1. Installez visual Studio Code depuis [ici][1]
  2. Ajoutez [extension C#][2]
  3. Installez le kit de développement logiciel dot net core. Vous pouvez installer à partir de [ici][3]

Maintenant, vous avez tous les outils disponibles. Pour développer l’application. Maintenant, vous avez besoin d’une option d’échafaudage. Pour cela, vous devriez envisager d’utiliser Yeoman. Pour installer Yeoman

  1. Installez NPM. Pour cela, vous avez besoin de Node sur votre machine. Installer depuis [ici][4]

  2. Installez Yeoman en utilisant NPM

    npm install -g yo

  3. Installez maintenant le générateur aspnet

    npm install -g generator-aspnet

Nous avons maintenant toute la configuration sur votre machine. Commençons par créer un nouveau projet avec la commande de base DotNetCore, puis créons un nouveau projet à l’aide de Yo.

Nouveau projet en utilisant la ligne de commande

  1. Créer un nouveau dossier de projet

    mkdir CoreApplication cd CoreApplication

  2. Échafaudez un projet dotnet très basique en utilisant l’option de ligne de commande par défaut

    dotnet New

[![Nouveau projet][5]][5]

  1. Restaurer les packages et exécuter l’application

    dotNet restore dotnet run [![entrez la description de l’image ici][6]][6]

Utilisez Yeoman comme option d’échafaudage

Créer un dossier de projet et exécuter la commande Yo

yo aspnet

Yeoman demandera des entrées telles que le type de projet, le nom du projet, etc.

[![entrez la description de l’image ici][7]][7]

[![entrez la description de l’image ici][8]][8]

Maintenant, restaurez les packages en exécutant la commande dotnet restore et exécutez l’application

Utilisez VS Code pour développer l’application

Exécutez le code Visual Studio comme [![entrez la description de l’image ici][9]][9]

Ouvrez maintenant les fichiers et exécutez l’application. Vous pouvez également rechercher l’extension pour votre aide.

[1] : https://code.visualstudio.com [2] : https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp [3] : https://www.microsoft.com/net/core#windows [4] : https://nodejs.org/fr/ [5] : http://i.stack.imgur.com/wadsM.png [6] : http://i.stack.imgur.com/Tx7v4.png [7] : http://i.stack.imgur.com/PoWbv.png [8] : http://i.stack.imgur.com/77SSC.png [9] : http://i.stack.imgur.com/W6Wpf.png

Configurer la variable d’environnement dans ASP.NET Core [Windows]

[=> Message d’origine <=][1]

ASP.NET Core utilise la variable d’environnement ASPNETCORE_ENVIRONMENT pour déterminer l’environnement actuel. Par défaut, si vous exécutez votre application sans définir cette valeur, elle sera automatiquement définie par défaut sur l’environnement “Production”.

> dotnet run
Project TestApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.

Hosting environment: Production  
Content root path: C:\Projects\TestApp  
Now listening on: http://localhost:5000  
Application started. Press Ctrl+C to shut down. 

Définition de la variable d’environnement dans Windows

En ligne de commande

Vous pouvez facilement définir une variable d’environnement à partir d’une invite de commande à l’aide de la commande setx.exe incluse dans Windows. Vous pouvez l’utiliser pour définir facilement une variable utilisateur :

>setx ASPNETCORE_ENVIRONMENT "Development"

SUCCESS: Specified value was saved.

Notez que la variable d’environnement n’est pas définie dans la fenêtre actuellement ouverte. Vous devrez ouvrir une nouvelle invite de commande pour voir l’environnement mis à jour. Il est également possible de définir des variables système (plutôt que des variables utilisateur uniquement) si vous ouvrez une invite de commande administrative et ajoutez le commutateur /M :

>setx ASPNETCORE_ENVIRONMENT "Development" /M

SUCCESS: Specified value was saved.

Utilisation de PowerShell Vous pouvez également utiliser PowerShell pour définir la variable. Dans PowerShell, en plus des variables utilisateur et système normales, vous pouvez également créer une variable temporaire à l’aide de la commande $Env: :

$Env:ASPNETCORE_ENVIRONMENT = "Development"

La variable créée ne dure que pendant la durée de votre session PowerShell - une fois que vous fermez la fenêtre, l’environnement revient à sa valeur par défaut.

Vous pouvez également définir directement les variables d’environnement utilisateur ou système. Cette méthode ne modifie pas les variables d’environnement dans la session en cours, vous devrez donc ouvrir une nouvelle fenêtre PowerShell pour voir vos modifications. Comme auparavant, la modification des variables système (Machine) nécessitera un accès administrateur

[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "User")
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "Machine")

En utilisant le panneau de configuration de Windows Si vous n’êtes pas fan de l’invite de commande, vous pouvez facilement mettre à jour vos variables à l’aide de votre souris !Cliquez sur le bouton du menu Démarrer de Windows (ou appuyez sur la touche Windows), recherchez “variables d’environnement” et choisissez Modifier les variables d’environnement pour Votre compte: [![entrez la description de l’image ici][2]][2]

La sélection de cette option ouvrira la boîte de dialogue Propriétés système [![entrez la description de l’image ici][3]][3]

Cliquez sur Variables d’environnement pour afficher la liste des variables d’environnement actuelles sur votre système. [![entrez la description de l’image ici][4]][4]

En supposant que vous n’ayez pas déjà une variable appelée ASPNETCORE_ENVIRONMENT, cliquez sur le bouton Nouveau… et ajoutez une nouvelle variable d’environnement de compte : [![entrez la description de l’image ici][5]][5] Cliquez sur OK pour enregistrer toutes vos modifications. Vous devrez rouvrir toutes les fenêtres de commande pour vous assurer que les nouvelles variables d’environnement sont chargées.

[1] : https://andrewlock.net/how-to-set-the-hosting-environment-in-asp-net-core/ [2] : https://i.stack.imgur.com/g71hq.png [3] : https://i.stack.imgur.com/TCirT.png [4] : https://i.stack.imgur.com/ZL6Hv.png [5] : https://i.stack.imgur.com/yB7sd.png