Recherche…


Remarques

Cette section fournit une vue d'ensemble de ce qu'est asp.net-core-mvc et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets dans asp.net-core-mvc, et établir un lien vers les sujets connexes. La documentation de asp.net-core-mvc étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Installation ou configuration

Installation de Visual Studio

Si Visual Studio n'est pas installé, vous pouvez télécharger gratuitement Visual Studio Community Edition ici . 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 dans la langue de votre choix dans la section Modèles à gauche.
  4. Choisissez un type de projet préféré dans la boîte de dialogue.
  5. Facultatif: Choisissez un framework .NET 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.

entrer la description de l'image ici

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

entrer la description de l'image ici

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.

Comme il s'agit d'une application d'introduction ne nécessitant aucune sécurité ou authentification, vous pouvez modifier l'option d'authentification sur Aucune authentification du 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:

entrer la description de l'image ici

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

entrer la description de l'image ici

Vous pouvez maintenant voir que votre projet est opérationnel localement et que vous êtes prêt à créer votre application.

PS: Utilisé Initiation à la rubrique asp.net-core à partir de la documentation asp.net-core .

Ajouter un middleware MVC

Si vous avez créé un projet vide ou que mvc n’est toujours pas configuré dans votre application, vous pouvez ajouter une dépendance:

"Microsoft.AspNetCore.Mvc": "1.0.1"

Dans votre fichier project.json sous "dependencies" .

Et enregistrez votre middleware MVC dans votre classe de démarrage:

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

Notez que nous avons à la fois services.AddMvc() et services.AddMvcCore() . Si vous commencez avec le asp.net core , ou si vous le voulez tel quel, vous devriez garder avec services.AddMvc() . Mais si vous voulez une expérience avancée, vous pouvez commencer avec un pipeline MVC minimal et ajouter des fonctionnalités pour obtenir une infrastructure personnalisée à l'aide de services.AddMvcCore() . Voir cette discussion pour plus d'informations sur AddMvcCore

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvcCore()
        .AddAuthorization()
        .AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}

Maintenant, vous pouvez demander au constructeur de votre application d'utiliser le mvc:

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

ou avec le routage par défaut:

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

Bases d'injection de dépendance

Presque tous les contrôleurs ont besoin de dépendances externes pour fonctionner. Voici un moyen de configurer un objet de dépendance (ou sa fabrique) et de le transmettre à un contrôleur. Cela vous aidera à maintenir une séparation des préoccupations , à garder le code clair et à pouvoir être testé.

Disons que nous avons une interface et son implémentation qui nécessite des valeurs de config dans son constructeur:

public interface ISomeDependency
{
    async Task<IEnumerable<string>> GetItemsAsync(string key);
}

public class SomeDependency : ISomeDependency
{
    public SomeDependency(string connectionString)
    {
        ...
    }
    ...
}

Il est utilisé dans certaines classes de contrôleurs:

public class SomeController : Controller
{
    private reanonly ISomeDependency dependency;

    public SomeController(ISomeDependency dependency)
    {
        ...
        this.dependency = dependency;
    }

    ...

    public async Task<IEnumerable<string>> Get(string key) =>
        await dependency.GetItemsAsync(key);
}

On peut injecter cette dépendance dans le constructeur du contrôleur appelant services.AddTransient dans la méthode Startup.ConfigureServices :

public class Startup
{
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder().
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        ...
        Configuration = builder.Build();
    }

    public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        ...
        services.AddTransient(serviceProvider =>
            new MyDependency(Configuration["Data:ConnectionString"]));
    }

    ...
}

Ici Data:ConnectionString est un chemin d'accès à un paramètre dans le fichier appsettings.json :

{
  ...
  },
  "Data": {
    "ConnectionString": "some connection string"
  }
}

Gestion à vie

Pour gérer une durée de vie de l'objet injecté, avec AddTransient deux autres options existent: AddSingleton et AddScoped . Le dernier signifie que la durée de vie de l'objet est définie sur une requête HTTP.

Des versions

Feuille de route officielle @ Github

Version Annonces Date de sortie
RC1 * 1.0.0-rc1 2015-11-01
RC2 * 1.0.0-rc2 2016-05-16
1.0.0 1.0.0 2016-06-27
1.0.1 1.0.1 2016-09-13
1.0.1 1.0.1 2016-09-13
1.1 1.1.0 T4 2016 / T1 2017
1.2 1.2.0 T1 2017 / T2 2017

* Les références aux trimestres annuels (T1, T2, T3, Q4) sont basées sur un calendrier



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow