Présentation du framework ASP.Net Core MVC

ASP.Net Core MVC est un cadre de développement d'applications Web multiplateforme qui tire parti des avantages du runtime ASP.Net Core tout en vous permettant de concevoir des applications testables et maintenables et pouvant être développées et déployées sur plusieurs plates-formes. Notez que MVC Core n'a pas besoin d'IIS pour l'hébergement - vous pouvez héberger des applications MVC Core dans Kestrel ou elles peuvent même être auto-hébergées. ASP.Net MVC Core est open source, a un support intégré pour l'injection de dépendances et est extensible. Notez que le framework MVC vous aide à isoler les problèmes de vos applications et à créer des applications plus faciles à tester et à gérer.

Les principales fonctionnalités de MVC Core incluent le routage, la liaison de modèle, la validation de modèle, l'injection de dépendances, les filtres, les zones, les API Web, les vues fortement typées, les aides de balises et les composants de vue. Jetons maintenant un coup d'œil à chacune de ces fonctionnalités en bref. Nous reviendrons sur chacun de ces éléments dans des articles ultérieurs ici.

Routage

Le moteur de routage d'ASP.Net Core MVC repose sur le moteur de routage ASP.Net Core. Le routage est désormais pris en charge de deux manières différentes: la fonction de routage basée sur les conventions et la fonction de routage piloté par attribut. Dans le premier, vous pouvez définir les formats d'URL pour votre application globalement, comme indiqué ci-dessous.

routes.MapRoute (nom: "Default", template: "{controller = Home} / {action = Index} / {id?}");

Le routage d'attributs vous permet de spécifier des informations de routage en appliquant des attributs sur vos contrôleurs et méthodes d'action, comme indiqué dans l'extrait de code ci-dessous.

[Route("api/customers")]

public class CustomersController : Controller

{

  [HttpGet("{id}")]

  public IActionResult GetCustomer(int id)

  {

    //Write your usual code here

  }

}

Validation du modèle

Vous pouvez décorer vos objets de modèle à l'aide d'attributs pour effectuer la validation de modèle dans le code ASP.Net MVC. L'extrait de code suivant illustre comment vous pouvez tirer parti des annotations de données pour décorer votre modèle.

using System.ComponentModel.DataAnnotations;

public class CustomerViewModel

{

    [Required]

    [FirstName]

    public string FirstName { get; set; }

    [Required]

    [LastName]

    public string LastName { get; set; }

}

Notez que les attributs de validation sont vérifiés à la fois côté client et côté serveur.

public async Task SaveData(CustomerViewModel model, string returnUrl = null)

{

    if (ModelState.IsValid)

    {

      // Write your code here to save data

    }

    // Error occurred

    return View(model);

}

Injection de dépendance

Étant donné qu'ASP.Net MVC Core est construit sur ASP.Net Core, il hérite également des capacités d'injection de dépendances d'ASP.Net Core. La prise en charge de l'injection de dépendances et de l'infrastructure de localisateur de services est intégrée à ASP.Net Core. Il existe quatre modes dans lesquels un type peut être injecté. Ceux-ci incluent: Singleton, Scoped, Transient et Instance.

ASP.Net MVC Core vous permet d'injecter des dépendances à l'aide de constructeurs dans les classes de contrôleur. Vous pouvez également injecter des dépendances dans les fichiers de vue à l'aide de la directive @inject.

Vous pouvez enregistrer un type dans la méthode ConfigureServices du fichier Startup.cs comme indiqué ci-dessous.

public void ConfigureServices(IServiceCollection services)

{

   services.AddMvc();

   services.AddSingleton();

}

Une fois le type enregistré avec le framework, vous pouvez injecter le type en utilisant le constructeur d'un contrôleur comme indiqué ci-dessous.

public class CustomerController : Controller

{

   private ILoggingService logger;

   public CustomerController(ILoggingService logger)

   {

      this.logger = logger;

   }

}

Vues fortement typées

ASP.Net Core MVC prend en charge les vues fortement typées. Ainsi, vos vues de rasoir peuvent également être fortement typées.

@model IEnumerable

        @foreach (Customer c in Model)

        {

           

  • @c.FirstName
  •        

  • @c.LastName
  •     }

    Support for Tag helpers

    Tag helpers are used to enable server side code create and render HTML elements. You have many in-built Tag helpers in ASP.Net Core MVC. You can also create your custom Tag helper as well. The in-built Tag helpers can be used for creating forms, loading assets, etc.

    Support for Web API

    ASP.Net MVC Core provides excellent support for building light-weight services using Web API that can run over HTTP. ASP.Net Web API is a framework that you can make use of to build light-weight web services that use HTTP as the protocol. Web API provides in-built support for content negotiation, formatters and cross-origin resource sharing (CORS).

    Cloud Ready

    With MVC Core, you can now build and configure your applications to be cloud-ready. Building and deploying application for the cloud is now seamless with excellent support for environment-based configuration. In essence, you now have support for a cloud-ready environment-based configuration system. This helps in saving the time you otherwise have to waste due to errors that occur during deployment.

    I will discuss on how we can build applications using the MVC Core framework in a later post here.