Einführung in das ASP.Net Core MVC-Framework

ASP.Net Core MVC ist ein plattformübergreifendes Framework für die Entwicklung von Webanwendungen, das die Vorteile der ASP.Net Core-Laufzeit nutzt und gleichzeitig das Entwerfen von Anwendungen ermöglicht, die testbar und wartbar sind und auf mehreren Plattformen entwickelt und bereitgestellt werden können. Beachten Sie, dass MVC Core kein IIS für das Hosting benötigt. Sie können MVC Core-Anwendungen in Kestrel hosten oder sie können sogar selbst gehostet werden. ASP.Net MVC Core ist Open Source, bietet integrierte Unterstützung für die Abhängigkeitsinjektion und ist erweiterbar. Beachten Sie, dass Sie mit dem MVC-Framework die Probleme in Ihren Anwendungen eingrenzen und Anwendungen erstellen können, die einfacher zu testen und zu warten sind.

Zu den wichtigsten Funktionen in MVC Core gehören Routing, Modellbindung, Modellvalidierung, Abhängigkeitsinjektion, Filter, Bereiche, Web-APIs, stark typisierte Ansichten, Tag-Helfer und Ansichtskomponenten. Lassen Sie uns nun kurz auf jede dieser Funktionen eingehen. Wir werden diese in späteren Beiträgen hier noch einmal betrachten.

Routing

Die Routing-Engine von ASP.Net Core MVC basiert auf der ASP.Net Core-Routing-Engine. Sie haben jetzt Unterstützung für das Routing auf zwei verschiedene Arten - die konventionelle Routing-Funktion und die attributgesteuerte Routing-Funktion. Im ersten Fall können Sie URL-Formate für Ihre Anwendung global definieren, wie unten gezeigt.

route.MapRoute (Name: "Standard", Vorlage: "{controller = Home} / {action = Index} / {id?}");

Mit dem Attribut-Routing können Sie Routing-Informationen angeben, indem Sie Attribute auf Ihre Controller und Aktionsmethoden anwenden, wie im folgenden Code-Snippet gezeigt.

[Route("api/customers")]

public class CustomersController : Controller

{

  [HttpGet("{id}")]

  public IActionResult GetCustomer(int id)

  {

    //Write your usual code here

  }

}

Modell Bestätigung

Sie können Ihre Modellobjekte mithilfe von Attributen dekorieren, um die Modellvalidierung in ASP.Net MVC Code durchzuführen. Das folgende Codefragment zeigt, wie Sie Datenanmerkungen nutzen können, um Ihr Modell zu dekorieren.

using System.ComponentModel.DataAnnotations;

public class CustomerViewModel

{

    [Required]

    [FirstName]

    public string FirstName { get; set; }

    [Required]

    [LastName]

    public string LastName { get; set; }

}

Beachten Sie, dass die Validierungsattribute sowohl auf der Clientseite als auch auf der Serverseite überprüft werden.

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

{

    if (ModelState.IsValid)

    {

      // Write your code here to save data

    }

    // Error occurred

    return View(model);

}

Abhängigkeitsspritze

Da ASP.Net MVC Core auf ASP.Net Core basiert, erbt es auch die Abhängigkeitsinjektionsfunktionen von ASP.Net Core. Die Unterstützung für die Abhängigkeitsinjektion und das Service Locator-Framework ist in ASP.Net Core integriert. Es gibt vier Modi, in die ein Typ injiziert werden kann. Dazu gehören: Singleton, Scoped, Transient und Instance.

Mit ASP.Net MVC Core können Sie Abhängigkeiten mithilfe von Konstruktoren in die Controller-Klassen einfügen. Sie können Abhängigkeiten auch mit der @ inject-Direktive in die Ansichtsdateien einfügen.

Sie können einen Typ in der ConfigureServices-Methode der Datei Startup.cs wie unten gezeigt registrieren.

public void ConfigureServices(IServiceCollection services)

{

   services.AddMvc();

   services.AddSingleton();

}

Sobald der Typ beim Framework registriert ist, können Sie den Typ mithilfe des Konstruktors eines Controllers wie unten gezeigt einfügen.

public class CustomerController : Controller

{

   private ILoggingService logger;

   public CustomerController(ILoggingService logger)

   {

      this.logger = logger;

   }

}

Stark getippte Ansichten

ASP.Net Core MVC bietet Unterstützung für stark typisierte Ansichten. So können auch Ihre Rasiermesseransichten stark typisiert werden.

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