Presentazione del framework ASP.Net Core MVC

ASP.Net Core MVC è un framework di sviluppo di applicazioni Web multipiattaforma che sfrutta i vantaggi del runtime ASP.Net Core e allo stesso tempo consente di progettare applicazioni testabili e gestibili e che possono essere sviluppate e distribuite su più piattaforme. Tieni presente che MVC Core non necessita di IIS per l'hosting: puoi ospitare applicazioni MVC Core in Kestrel o possono anche essere ospitate autonomamente. ASP.Net MVC Core è open source, ha il supporto integrato per l'inserimento delle dipendenze ed è estensibile. Tieni presente che il framework MVC ti aiuta a isolare i problemi nelle tue applicazioni e creare applicazioni più facili da testare e mantenere.

Le caratteristiche salienti di MVC Core includono routing, associazione di modelli, convalida del modello, inserimento di dipendenze, filtri, aree, API Web, visualizzazioni fortemente tipizzate, helper tag e componenti di visualizzazione. Diamo ora uno sguardo a ciascuna di queste funzionalità in breve. Rivisiteremo ciascuno di questi in post successivi qui.

Routing

Il motore di routing di ASP.Net Core MVC è basato sul motore di routing ASP.Net Core. Ora hai il supporto per il routing in due modi diversi: la funzione di routing basata su convenzione e la funzione di routing basato sugli attributi. Nel primo caso, puoi definire i formati URL per la tua applicazione a livello globale come mostrato di seguito.

route.MapRoute (nome: "Default", modello: "{controller = Home} / {action = Index} / {id?}");

Il routing degli attributi consente di specificare le informazioni di routing applicando gli attributi sui controller e sui metodi di azione come mostrato nello snippet di codice riportato di seguito.

[Route("api/customers")]

public class CustomersController : Controller

{

  [HttpGet("{id}")]

  public IActionResult GetCustomer(int id)

  {

    //Write your usual code here

  }

}

Validazione del modello

È possibile decorare gli oggetti del modello utilizzando gli attributi per eseguire la convalida del modello in ASP.Net MVC Code. Il frammento di codice seguente illustra come sfruttare le annotazioni dei dati per decorare il modello.

using System.ComponentModel.DataAnnotations;

public class CustomerViewModel

{

    [Required]

    [FirstName]

    public string FirstName { get; set; }

    [Required]

    [LastName]

    public string LastName { get; set; }

}

Notare che gli attributi di convalida vengono controllati sia sul lato client che sul lato server.

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

{

    if (ModelState.IsValid)

    {

      // Write your code here to save data

    }

    // Error occurred

    return View(model);

}

Iniezione di dipendenza

Poiché ASP.Net MVC Core è basato su ASP.Net Core, eredita anche le funzionalità di inserimento delle dipendenze di ASP.Net Core. Il supporto per l'inserimento delle dipendenze e il framework di localizzazione dei servizi è integrato in ASP.Net Core. Esistono quattro modalità in cui è possibile iniettare un tipo. Questi includono: Singleton, Scoped, Transient e Instance.

ASP.Net MVC Core consente di inserire dipendenze utilizzando costruttori nelle classi controller. Puoi anche inserire dipendenze nei file di visualizzazione usando la direttiva @inject.

È possibile registrare un tipo nel metodo ConfigureServices del file Startup.cs come mostrato di seguito.

public void ConfigureServices(IServiceCollection services)

{

   services.AddMvc();

   services.AddSingleton();

}

Una volta registrato il tipo nel framework, è possibile iniettare il tipo utilizzando il costruttore di un controller come mostrato di seguito.

public class CustomerController : Controller

{

   private ILoggingService logger;

   public CustomerController(ILoggingService logger)

   {

      this.logger = logger;

   }

}

Viste fortemente tipizzate

ASP.Net Core MVC fornisce supporto per visualizzazioni fortemente tipizzate. Quindi, anche le tue visualizzazioni rasoio possono essere fortemente digitate.

@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.