Suche…


Bemerkungen

Dieser Abschnitt bietet einen Überblick über das, was asp.net-core-mvc ist und warum ein Entwickler es verwenden möchte.

Es sollte auch alle großen Themen in asp.net-core-mvc erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für asp.net-core-mvc neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Installation oder Setup

Visual Studio installieren

Wenn Sie Visual Studio nicht installiert haben, können Sie die kostenlose Visual Studio Community Edition hier herunterladen . Wenn Sie es bereits installiert haben, können Sie mit dem nächsten Schritt fortfahren.

Erstellen einer ASP.NET Core MVC-Anwendung.

  1. Öffnen Sie Visual Studio.
  2. Wählen Sie Datei> Neues Projekt.
  3. Wählen Sie im Bereich Vorlagen auf der linken Seite die Sprache Ihrer Wahl aus.
  4. Wählen Sie im Dialog einen bevorzugten Projekttyp aus .
  5. Optional: Wählen Sie ein .NET Framework aus, auf das Sie abzielen möchten
  6. Benennen Sie Ihr Projekt und geben Sie an, ob Sie eine Lösung für das Projekt erstellen möchten.
  7. Klicken Sie auf OK , um das Projekt zu erstellen.

Geben Sie hier die Bildbeschreibung ein

In einem weiteren Dialog wird die Vorlage ausgewählt, die Sie für das Projekt verwenden möchten:

Geben Sie hier die Bildbeschreibung ein

Jede der Beschreibungen ist selbsterklärend. Wählen Sie für dieses erste Projekt die Webanwendung aus , die alle Standardkonfigurationen, die Authentifizierung und einige vorhandene Inhalte enthält.

Da dies eine Einführung ist und keine Sicherheit oder Authentifizierung erforderlich ist, können Sie auf der rechten Seite des Dialogfelds die Authentifizierungsoption in Keine Authentifizierung ändern und auf OK klicken, um das Projekt zu erstellen .

Sie sollten das neue Projekt dann im Projektmappen-Explorer sehen:

Geben Sie hier die Bildbeschreibung ein

Drücken Sie die Taste F5, um die Anwendung auszuführen und eine Debugging-Sitzung zu starten, die die Anwendung in Ihrem Standardbrowser startet:

Geben Sie hier die Bildbeschreibung ein

Sie können jetzt sehen, dass Ihr Projekt lokal läuft und als Ausgangspunkt für die Erstellung Ihrer Anwendung bereit ist.

PS: Erste Schritte mit asp.net-core- Thema aus der asp.net-core- Dokumentation

Fügen Sie MVC Middleware hinzu

Wenn Sie ein leeres Projekt erstellt haben oder mvc immer noch nicht in Ihrer Anwendung konfiguriert ist, können Sie Abhängigkeiten hinzufügen:

"Microsoft.AspNetCore.Mvc": "1.0.1"

Zu Ihrer project.json Datei unter "dependencies" .

Registrieren Sie MVC-Middleware in Ihrer Startup-Klasse:

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

Beachten Sie, dass wir sowohl services.AddMvc() als auch services.AddMvcCore() . Wenn Sie mit asp.net core oder es so haben möchten, sollten Sie bei services.AddMvc() bleiben. Wenn Sie jedoch eine erweiterte Erfahrung wünschen, können Sie mit einer minimalen MVC-Pipeline beginnen und Funktionen hinzufügen, um mithilfe von services.AddMvcCore() ein benutzerdefiniertes Framework zu erhalten. Weitere Informationen zu AddMvcCore Sie in dieser Diskussion

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvcCore()
        .AddAuthorization()
        .AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}

Jetzt können Sie Ihrem Application Builder mitteilen, dass er mvc verwenden soll:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    ...
    app.UseMvc();
}

oder mit Standardrouting:

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

Grundlagen der Injektion von Abhängigkeiten

Fast jeder Controller benötigt einige externe Abhängigkeiten, um zu funktionieren. Hier können Sie ein Abhängigkeitsobjekt (oder seine Factory) konfigurieren und an einen Controller übergeben. Dies wird dazu beitragen, die Trennung der Bedenken aufrechtzuerhalten, den Code klar und überprüfbar zu halten.

Angenommen, wir haben eine Schnittstelle und deren Implementierung, die einige Werte von config in ihrem Konstruktor benötigt:

public interface ISomeDependency
{
    async Task<IEnumerable<string>> GetItemsAsync(string key);
}

public class SomeDependency : ISomeDependency
{
    public SomeDependency(string connectionString)
    {
        ...
    }
    ...
}

Es wird in einigen Controller-Klassen verwendet:

public class SomeController : Controller
{
    private reanonly ISomeDependency dependency;

    public SomeController(ISomeDependency dependency)
    {
        ...
        this.dependency = dependency;
    }

    ...

    public async Task<IEnumerable<string>> Get(string key) =>
        await dependency.GetItemsAsync(key);
}

Diese Abhängigkeit kann in den Controller-Konstruktor eingefügt werden, der services.AddTransient aufruft. Startup.ConfigureServices in der Startup.ConfigureServices Methode:

public class Startup
{
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder().
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        ...
        Configuration = builder.Build();
    }

    public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        ...
        services.AddTransient(serviceProvider =>
            new MyDependency(Configuration["Data:ConnectionString"]));
    }

    ...
}

Here Data:ConnectionString ist ein Pfad zu einer Einstellung in der Datei appsettings.json :

{
  ...
  },
  "Data": {
    "ConnectionString": "some connection string"
  }
}

Lebenszeitmanagement

Um die Lebensdauer des injizierten Objekts zu verwalten, gibt es neben AddTransient zwei weitere Optionen: AddSingleton und AddScoped . Die letzte bedeutet, dass die Lebensdauer des Objekts auf eine HTTP-Anforderung beschränkt ist.

Versionen

Offizielle Roadmap @ Github

Ausführung Ankündigungen Veröffentlichungsdatum
RC1 * 1.0.0-rc1 2015-11-01
RC2 * 1.0.0-rc2 2016-05-16
1.0.0 1.0.0 2016-06-27
1.0.1 1.0.1 2016-09-13
1.0.1 1.0.1 2016-09-13
1.1 1.1.0 Q4 2016 / Q1 2017
1.2 1.2.0 Q1 2017 / Q2 2017

* Verweise auf Jahresquartale (Q1, Q2, Q3, Q4) beziehen sich auf Kalender



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow