Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den...

Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den Dialog
Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den Dialog
Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den Dialog
Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den Dialog
Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den Dialog
download Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den Dialog

of 5

  • date post

    15-Oct-2019
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Web API unter MVC 6 der sechste Streich - eabo. Eintrag ASP.NET 5 Preview WebAPI und beenden den...

  • 64 10.2015 www.dotnetpro.de

    Frontend ASP.NET MVC

    das HTTP-Protokoll eignet sich nicht nur zum Bereitstellen von Websei- ten. Es kann vielmehr als eine leistungs-

    fähige Plattform zum Erstellen von APIs

    angesehen werden, mit deren Hilfe Web-

    dienste und Daten bereitgestellt werden

    können. HTTP lässt sich einfach und fle-

    xibel einsetzen. HTTP-Dienste können

    von einer Vielzahl von Clients (Browser,

    Mobilgeräte und Desktop-Anwendun-

    gen) genutzt werden. Moderne Anwen-

    dungen sind Apps, die auf den verschie-

    densten Plattformen laufen, und ASP.

    NET MVC 6 ist ein Framework, um Web

    APIs auf Basis von .NET zu erstellen.

    Ohne Nutzung eines solchen Frame-

    works fällt die Basisarchitektur ziemlich

    umfangreich aus, da jede Client-An-

    wendung mit der entsprechenden Ge-

    schäftslogik ausgestattet werden muss.

    Sobald eine Änderungsanforderung

    her einkommt, muss der Client ange-

    passt werden. Dies ist fehleranfällig und führt zu unnötigem

    Aufwand. Wenn hingegen eine Architektur mit zentralem

    Web API genutzt wird, kann die Geschäftslogik zentral ge-

    halten werden. Jede Client-Anwendung

    nutzt dieses Web API, um Daten aufzu-

    nehmen, zu ändern oder zu löschen. So-

    bald Änderungen anfallen, kann dies

    jetzt zentral erledigt werden. Die Kon-

    zepte aus der MVC-Welt, wie Controller,

    Actions, Filters und Model, machen dies

    möglich [1].

    MVC 6 Da MVC, Web API und Web Pages über

    komplementäre Funktionalitäten verfü-

    gen, werden diese häufig zusammen ge-

    nutzt, um eine Lösung zu realisieren. Bis-

    her standen diese separat zur Verfügung

    und bei der Programmierung mussten

    Inkonsistenzen berücksichtigt werden.

    MVC 6 stellt diese nun unter einem

    einheitlichen Entwicklungsmodell (Pro-

    gramming Model) zur Verfügung.

    So lassen sich jetzt Applikationen er-

    stellen, wobei beim Realisieren von Be-

    nutzeroberfläche oder Webservices keinerlei Unterschiede

    bei der Programmierung beachtet werden müssen.

    erstellen eines Projekts Um einen ASP.NET 5 Web API Web

    Service zu erstellen, legen Sie zuerst

    unter Visual Studio 2015 ein neues

    Projekt mit der Befehlsfolge File |

    New Project an. In der linken Baum-

    hierarchie wählen Sie die Sprache

    Visual C# und den Unterpunkt Web

    aus. Nun ist im Hauptfenster die Pro-

    jektschablone (Template) ASP.NET

    Web Application auswählbar. Zu-

    sätzlich ist hier noch das .NET Frame-

    work Version 4.6 auszuwählen. Als

    Projektnamen geben Sie für das Ar-

    tikelbeispiel MVC6WebAPI ein und

    beenden den Dialog über die OK-

    Schaltfläche. Im Folgedialog wird

    dann eine Vielzahl von Templates

    zur Auswahl bereitgestellt (Bild 1).

    Aus Gründen der Vereinfachung

    entscheiden wir uns hier für den

    Eintrag ASP.NET 5 Preview WebAPI

    und beenden den Dialog wieder mit

    Neu in MVC 6: Das Konfigurationsmodell und das Programmiermodell.

    der sechste Streich Web API unter MVC 6

    Im Solution explorer sehen Sie, dass MVC 6 über eine neue Projektstruktur

    verfügt (Bild 2)

    Hier wählen Sie das Template ASP.NET 5 Preview Web API aus (Bild 1)

  • 65www.dotnetpro.de 10.2015

    Frontend ASP.NET MVC

    OK. Nun wird Ihnen die Projektstruktur im So-

    lution Explorer angezeigt (Bild 2).

    Projekteinstellungen Sofort wird ersichtlich, dass sich die Projekt-

    struktur unter ASP.NET 5 verändert hat. Dort

    sind jetzt die Dateien global.json, project.json

    und Startup.cs zu finden. Die Projekt-Einstel-

    lungen werden unter der Datei project.json an-

    gegeben. Dort werden unter Dependencies alle

    NuGet-Pakete und Klassenbibliotheken aufge-

    nommen, welche für das Projekt notwendig sind

    (Bild 3). Da MVC 6 zum Einsatz kommen soll, ist

    hier das Paket Microsoft.AspNet.MVC anzuge-

    ben. Das Core-Paket stellt alle notwendigen

    Komponenten für MVC 6 und Web API zur Ver-

    fügung.

    Sobald Sie beginnen, den Namen des Pakets

    einzutippen, wird IntelliSense aktiv und zeigt

    Ihnen alle verfügbaren Pakete an (Bild 4). An-

    schließend ist noch die Versionsnummer auszu-

    wählen, in unserem Fall 1.0.0-beta3 – siehe auch

    Bild 5.

    Da die entstehende Web-API-Applikation auf

    dem IIS Express gehostet werden soll, wird noch

    das IIS-Paket benötigt, das bereits ausgewählt ist. Die Kon-

    figuration von IIS Express kann direkt in Visual Studio er-

    folgen (Bild 6). Innerhalb der Datei global.json werden alle

    Projekt-Referenzen angegeben. Somit können Projekte auf

    andere Projekte zugreifen.

    Um das neue Konfigurationsmodell von MVC 6 nutzen zu

    können, muss das Paket Microsoft.Framework.Configuration-

    Model.Json angegeben werden. Dies erlaubt es, die Konfigu-

    ration mithilfe einer Datei im JSON-Format vorzunehmen,

    was eine bedeutende Arbeitserleichterung darstellt.

    erster testlauf Anschließend starten Sie in Visual Studio durch Drücken der

    Funktionstaste [F5] eine erste Debugging-Sitzung. Visual

    die datei project.json enthält die Projekteinstellungen (Bild 3)

    using Microsoft.AspNet.Builder;

    using Microsoft.AspNet.Hosting;

    using Microsoft.Framework.DependencyInjection;

    using Microsoft.AspNet.Mvc;

    using System.Configuration;

    using Newtonsoft.Json;

    namespace MVC6WebAPI

    {

    public class Startup

    {

    public void ConfigureServices(

    IServiceCollection services)

    {

    services.AddMvc();

    }

    public void Configure(IApplicationBuilder app)

    {

    // Add MVC to the request pipeline.

    app.UseMvc(routes =>

    {

    routes.MapRoute(

    name: "default",

    template: "{controller}/{action}/{id?}",

    defaults: new { controller = "Home",

    action = "Index" });

    routes.MapRoute(

    name: "movies",

    template: "{controller}/{action}",

    defaults: new { controller = "Movies",

    action = "Get" });

    });

    }

    }

    }

    $$ Listing 1: Startup.cs

  • 66 10.2015 www.dotnetpro.de

    Frontend ASP.NET MVC

    Studio startet daraufhin den Browser und

    ruft den URL localhost mit entsprechender

    Port-Adresse ab. Gegenwärtig ist hier noch

    nichts zu sehen, da noch nicht angegeben

    wurde, was beim Start der Anwendung

    passieren soll.

    die Anwendung konfigurieren In der Datei Startup.cs, welche die Klasse

    Startup enthält, wird schließlich der Start

    der Anwendung implementiert, siehe da-

    zu Listing 1. Sobald der Konstruktor von

    Start up aufgerufen wurde, bauen die fol-

    genden beiden Methoden die Laufzeitum-

    gebung auf. Die erste Methode namens

    ConfigureServices hat die Aufgabe anzu-

    geben, welche Komponenten per Depen-

    dency Injection erzeugt werden sollen.

    Das Kommando services.AddMvc sorgt dafür, dass MVC 6

    genutzt werden kann.

    Als zweite Methode wird Configure aufgerufen, worüber

    die Konfiguration der ASP.NET-Pipeline durchgeführt wird.

    Hier können einzelne Optionen der Komponenten konfigu-

    riert werden. Über app.UseMvc wird die Komponente in die

    Pipeline aufgenommen.

    Im vorliegenden Beispiel wird an diese Methode eine Rou-

    ten-Konfiguration per Lambda-Ausdruck übergeben. So wird

    die Default-Routing-Angabe von ASP.NET MVC angepasst.

    Diese richtet die neue Route mit der Methode MapRoute ein.

    Dabei legt der Parameter name einen eindeutigen Namen für

    die Route fest. Der Parameter template bestimmt, wie der

    URL-Abruf erfolgen kann. Das im Platzhalter id? enthaltene

    Fragezeichen gibt an, dass der damit ausgedrückte Routing-

    Parameter optional ist.

    Mit dem Parameter defaults legt die Routen-Konfiguration

    fest, welcher Controller verwendet und welche Action ausge-

    löst werden soll, wenn der Aufrufer diese nicht explizit in der

    URL festlegt. Die angegebenen Werte Home und Index in-

    nerhalb der Projektvorlage führen zur Startseite der Weban-

    wendung. Auch alle weiteren erforderlichen Routen kann der

    Entwickler hier definieren.

    die Modellklasse Die für diesen Artikel angelegte Beispielanwendung soll eine

    Sammlung von Filmen anzeigen. Dem MVC-Konzept folgend

    wird dafür zunächst ein Modell benötigt, das jetzt erstellt

    werden soll.

    Dafür wird zuerst der Ordner Models angelegt. Hierzu

    wählen Sie das Projekt mit der rechten Maustaste aus und

    Welche Pakete im aktuellen Projekt verwendet werden, kann Visual Studio grafisch anzeigen (Bild 5)

    using System;

    using System.ComponentModel.DataAnnotations;

    namespace MVC6WebAPI.Models

    public class Movie

    {

    public int ID { get; set; }

    [Required]

    public string Title { get; set; }

    public DateTime ReleaseDate { get; set; }