Erste Schritte mit ASP.NET Core

Gilt für:yesVisual Studio für Mac noVisual Studio

Visual Studio für Mac erleichtert die Entwicklung des Diensts Ihrer App durch Unterstützung der aktuellen ASP.NET Core Web-Entwicklungsplattform. ASP.NET Core wird unter der aktuellen Version der .NET-Plattform und der zugehörigen Runtime ausgeführt. Das Framework wurde für schnelle Leistung optimiert, für kleine Installationsgrößen konzipiert und für die Ausführung unter Linux und macOS sowie Windows überarbeitet.

Installieren von .NET Core

.NET Core 3.1 wird automatisch mit der Installation von Visual Studio für Mac installiert. Weitere Informationen zu den .NET Core-Versionen, die in Visual Studio für Mac unterstützt werden, finden Sie unter Unterstützte Versionen von .NET.

Installieren von .NET 6

.NET 6 wird automatisch mit der Installation von Visual Studio für Mac installiert. Weitere Informationen zu den .NET-Versionen, die in Visual Studio für Mac unterstützt werden, finden Sie unter Unterstützte Versionen von .NET.

Erstellen einer ASP.NET Core-App in Visual Studio für Mac

Öffnen Sie Visual Studio für Mac. Wählen Sie auf dem Startbildschirm Neues Projekt… aus.

This screenshot shows the New Project Dialog while creating an ASP.NET Core app in Visual Studio for Mac

Das Dialogfeld Neues Projekt wird geöffnet. In diesem Dialogfeld können Sie eine Vorlage auswählen, um Ihre Anwendung zu erstellen.

Es gibt zahlreiche Projekte, die eine vorgefertigte Vorlage zum Erstellen einer ASP.NET Core-Anwendung bereitstellen. Sie lauten wie folgt:

  • .NET Core > Leer
  • .NET Core > API
  • .NET Core > Webanwendung
  • .NET Core > Webanwendung (Model View Controller)
  • .NET Core >Blazor Server-App
  • .NET Core >Blazor WebAssembly App

This screenshot shows the ASP.NET Project Options while creating an ASP.NET Core app in Visual Studio for Mac

Wählen Sie die leere ASP.NET Core-Webanwendung und dann Weiter aus. Benennen Sie das Projekt, und wählen Sie Erstellen aus. Dadurch wird eine neue ASP.NET Core-App erstellt. Erweitern Sie im linken Bereich des Projektmappenfensters den zweiten Pfeil, und wählen Sie dann Startup.cs aus. Die Anzeige sollte der folgenden Abbildung ähneln:

This screenshot shows new ASP.NET Core Empty Project view while creating an ASP.NET Core app.

Die leere Projektvorlage zum Erstellen einer ASP.NET Core-Anwendung erstellt eine Webanwendung mit zwei Standarddateien: Program.cs und Startup.cs, die hier weiter erläutert werden. Außerdem wird der Ordner Abhängigkeiten erstellt, der die NuGet-Paketabhängigkeiten Ihres Projekts enthält, z. B. ASP.NET Core, das .NET Core-Framework und die MSBuild-Ziele, die das Projekt erstellen:

This is a screenshot of Solution window displaying dependencies.

Program.cs

Öffnen sie die Datei program.cs in Ihrem Projekt, und schauen Sie sich diese an. Beachten Sie, dass zwei Dinge in der Main-Methode geschehen – der Eingang Ihrer Anwendung:

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }

Eine ASP.NET Core-Anwendung erstellt in ihrer Hauptmethode einen Webserver, indem sie einen Host über eine Instanz von WebHostBuilder konfiguriert und startet. Dieser Generator bietet Möglichkeiten zum Konfigurieren des Hosts. In der Vorlagen-App werden die folgenden Konfigurationen verwendet:

  • .UseStartup<Startup>(): Gibt die Startup-Klasse an.

Sie können jedoch auch weitere Konfigurationen hinzufügen, z.B.:

  • UseKestrel: Gibt an, dass der Kestrel-Server von der Anwendung verwendet wird.
  • UseContentRoot(Directory.GetCurrentDirectory()): Verwendet den Stammordner des Webprojekts als Inhaltsstamm der Anwendung, wenn die Anwendung aus diesem Ordner gestartet wird.
  • .UseIISIntegration(): Gibt an, dass die Anwendung mit IIS funktionieren soll. Um IIS mit ASP.NET Core verwenden zu können, muss sowohl UseKestrel als auch UseIISIntegration festgelegt sein.

Startup.cs

Die Startup-Klasse für Ihre Anwendung wird in der UseStartup()-Methode im CreateWebHostBuilder festgelegt. In dieser Klasse legen Sie die Pipeline fest, die Anforderungen verarbeitet. Darüber hinaus können Sie hier jeden Dienst konfigurieren.

Öffnen sie die Datei startup.cs in Ihrem Projekt, und schauen Sie sich diese an.

    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }
    }

Diese Startup-Klasse muss sich immer an folgende Regeln halten:

  • Sie muss immer öffentlich sein.
  • Sie muss die beiden öffentlichen Methoden ConfigureServices und Configure enthalten

Die ConfigureServices-Methode definiert die Dienste, die von Ihrer Anwendung verwendet werden.

Mit Configure können Sie Ihre Anforderungspipeline mithilfe von Middleware erstellen. Dabei handelt es sich um Komponenten, die in einer ASP.NET-Anwendungspipeline verwendet werden, um Anforderungen und Reaktionen zu verarbeiten. Die HTTP-Pipeline besteht aus zahlreichen Anforderungsdelegaten, die nacheinander aufgerufen werden. Jeder Delegat kann die Anforderung entweder selbst behandeln oder sie an den nächsten Delegaten übergeben.

Sie können Delegate mit den Methoden Run, Map und Use in IApplicationBuilder konfigurieren, aber die Run-Methode ruft niemals den nächsten Delegaten auf und sollte immer am Ende Ihrer Pipeline verwendet werden.

Die Configure-Methode der vorgefertigten Vorlage wurde speziell für einige bestimmte Aktionen entwickelt. Zunächst konfiguriert sie eine Seite zur Behandlung von Ausnahmen, die während der Entwicklung verwendet werden kann. Danach sendet sie eine Antwort an die anfragende Webseite, die einfach „Hello World“ enthält.

Dieses einfache „Hello World“-Projekt kann nun ausgeführt werden, ohne das zusätzlicher Code hinzugefügt werden muss. Sie können zum Ausführen der App über die Dropdownliste rechts neben der Wiedergabeschaltfläche auswählen, in welchem Browser Sie die App ausführen möchten. Oder Sie können auf die Schaltfläche Wiedergabe (Dreieck) klicken, um Ihren Standardbrowser zu verwenden:

Browser Run where you can either select which browser you want to run app the app in using the dropdown right of the Play button. Or, you can hit the Play (triangular) button to use your default browser.

Visual Studio für Mac verwendet einen zufälligen Port, um Ihr Webprojekt zu starten. Öffnen Sie die Anwendungsausgabe unter Ansicht > Weitere Fenster, um herauszufinden, um welchen Port es sich dabei handelt. Die Ausgabe sollte dem folgenden Beispiel ähneln:

This is an illustration of the Application Output displaying listening port.

Sobald das Projekt ausgeführt wird, sollte Ihr Standardwebbrowser gestartet werden und eine Verbindung zu der URL herstellen, die in der Ausgabe der Anwendung aufgeführt ist. Als Alternative können Sie einen Browser Ihrer Wahl öffnen und http://localhost:5000/ eingeben. Ersetzen Sie dabei 5000 durch den Port, den Visual Studio in der Anwendungsausgabe ausgegeben hat. Der Text Hello World! sollte angezeigt werden:

This is a screenshot of a browser showing text.

Hinzufügen eines Controllers

ASP.NET Core-Apps verwenden das Entwurfsmuster von Model-View-Controller (MVC), um eine logische Trennung zwischen den Verantwortlichkeiten der verschiedenen Teile der Anwendung zu gewährleisten. Das MVC-Entwurfsmuster besteht aus den folgenden Elementen:

  • Model: Eine Klasse, die die Daten der App darstellt.
  • Ansicht: Zeigt die Benutzeroberfläche der App an (wobei es sich häufig um die Modelldaten handelt).
  • Controller: Eine Klasse, die Browseranforderungen verarbeitet und auf Benutzereingaben und -interaktionen reagiert.

Weitere Informationen zum Verwenden von MVC finden Sie im Leitfaden Übersicht über ASP.NET Core MVC.

Führen Sie zum Hinzufügen eines Controllers die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste auf den Projektnamen und dann auf Neue Dateien > hinzufügen. Klicken Sie auf Allgemein > Leere Klasse, und geben Sie einen Controllernamen ein:

    This is a screenshot of a New File dialog while adding a controller.

  2. Fügen Sie dem neuen Controller den folgenden Code hinzu:

    using System;
    using Microsoft.AspNetCore.Mvc;
    using System.Text.Encodings.Web;
    
    namespace Hello_ASP
    {
        public class HelloWorldController : Controller
        {
            //
            // GET: /HelloWorld/
    
            public string Index()
            {
                return "This is my default action...";
            }
    
        }
    }
    
  3. Fügen Sie die Microsoft.AspNetCore.Mvc-Abhängigkeit zu dem neuen Projekt hinzu, indem Sie mit der rechten Maustaste auf den Ordner Abhängigkeiten und dann auf Paket hinzufügen... klicken.

  4. Verwenden Sie das Suchfeld, um die NuGet-Bibliothek nach Microsoft.AspNetCore.Mvc zu durchsuchen, und klicken Sie dann auf Paket hinzufügen. Die Installation kann einige Minuten in Anspruch nehmen, und Sie werden möglicherweise aufgefordert, verschiedene Lizenzen für die erforderlichen Abhängigkeiten zu akzeptieren:

    This is a screenshot of Add Nuget while adding a controller.

  5. Entfernen Sie in der Startup-Klasse den app.Run-Lambdaausdruck, und legen Sie die URL-Routinglogik auf Folgendes fest, die von MVC verwendet wird, um zu bestimmen, welcher Code aufgerufen werden soll:

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

    Achten Sie darauf, dass Sie den app.Run-Lambdaausdruck entfernen, da dieser die Routinglogik außer Kraft setzt.

    MVC verwendet das folgende Format, um zu bestimmen, welche Code ausgeführt werden soll:

    /[Controller]/[ActionName]/[Parameters]

    Wenn Sie den Codeausschnitte oben hinzufügen, informieren Sie der App darüber, dass der HelloWorld-Controller und die Index-Aktionsmethode als Standard verwendet werden sollen.

  6. Fügen Sie den der ConfigureServices-Methode den services.AddMvc();-Aufruf hinzu, wie im folgenden Code gezeigt:

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

    Sie können auch Parameterinformationen von der URL an den Controller übergeben.

  7. Fügen Sie eine weitere Methode zu HelloWorldController hinzu, wie im folgenden Code gezeigt:

    public string Xamarin(string name)
    {
        return HtmlEncoder.Default.Encode($"Hello {name}, welcome to Visual Studio for Mac");
    }
    
  8. Wenn Sie jetzt die App ausführen, sollte Sie automatisch Ihren Browser öffnen:

    Screenshot of running app in browser while adding a controller.

  9. Wenn Sie zu http://localhost:xxxx/HelloWorld/Xamarin?name=Amy navigieren und dabei xxxx durch den richtigen Port ersetzen, sollte die folgende Seite angezeigt werden:

    Screenshot of running app in browser with arguments while adding a controller.

Öffnen sie die Datei program.cs in Ihrem Projekt, und schauen Sie sich diese an. Beachten Sie, dass mehrere Dinge geschehen. Zunächst einmal gibt es keine Main-Methode. Standardmäßig ist die leere Vorlage so konfiguriert, dass sie die in .NET 6 eingeführten Minimalprojekte vom Typ „Web-API“ verwendet.

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

Der folgende Code erstellt einen WebApplicationBuilder und eine WebApplication mit vorkonfigurierten Standardwerten:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

Der nachstehende Code erstellt einen HTTP GET-Endpunkt /, der Hello World! zurückgibt:

app.MapGet("/", () => "Hello World!");

app.Run(); führt die App aus.

Dieses einfache „Hello World“-Projekt kann nun ausgeführt werden, ohne das zusätzlicher Code hinzugefügt werden muss. Sie können zum Ausführen der App entweder über die Dropdownliste rechts neben der Wiedergabeschaltfläche auswählen, in welchem Browser Sie die App ausführen möchten, oder einfach die (dreieckige) Wiedergabeschaltfläche drücken, um Ihren Standardbrowser zu verwenden:

Browser Run

Visual Studio für Mac verwendet einen zufälligen Port, um Ihr Webprojekt zu starten. Öffnen Sie die Anwendungsausgabe unter Ansicht > Weitere Fenster, um herauszufinden, um welchen Port es sich dabei handelt. Dort sollten Sie eine Ausgabe wie die folgende sehen:

Application Output displaying listening port

Sobald das Projekt ausgeführt wird, sollte Ihr Standardwebbrowser gestartet werden und eine Verbindung zu der URL herstellen, die in der Ausgabe der Anwendung aufgeführt ist. Als Alternative können Sie einen Browser Ihrer Wahl öffnen und http://localhost:5000/ eingeben. Ersetzen Sie dabei 5000 durch den Port, den Visual Studio in der Anwendungsausgabe ausgegeben hat. Der Text Hello World! sollte angezeigt werden:

browser showing text

Problembehandlung

Wenn Sie .NET Core manuell unter macOS 10.12 (Sierra) installieren müssen, führen Sie die folgenden Schritte aus:

  1. Bevor Sie mit der Installation von .NET Core beginnen, achten Sie darauf, dass Sie alle Betriebssystemupdates auf die aktuelle stabile Version durchgeführt haben. Dies können Sie überprüfen, indem Sie zur App Store-Anwendung navigieren und auf die Registerkarte Updates klicken.

  2. Folgen Sie den Schritten auf der .NET Core-Website.

Achten Sie darauf, dass Sie alle Schritte erfolgreich abschließen, um sicherzustellen, dass .NET Core ordnungsgemäß installiert wird.

Zusammenfassung

Dieses Handbuch hat Sie in ASP.NET Core eingeführt. Nun wissen Sie, was ASP.NET Core ist und wofür und wie Sie es in Visual Studio für Mac verwenden können. Weitere Informationen zu den nächsten Schritten finden Sie in den folgenden Ressourcen: