asp.net-core-mvc Tutorial
Erste Schritte mit asp.net-core-mvc
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.
- Öffnen Sie Visual Studio.
- Wählen Sie Datei> Neues Projekt.
- Wählen Sie im Bereich Vorlagen auf der linken Seite die Sprache Ihrer Wahl aus.
- Wählen Sie im Dialog einen bevorzugten Projekttyp aus .
- Optional: Wählen Sie ein .NET Framework aus, auf das Sie abzielen möchten
- Benennen Sie Ihr Projekt und geben Sie an, ob Sie eine Lösung für das Projekt erstellen möchten.
- Klicken Sie auf OK , um das Projekt zu erstellen.
In einem weiteren Dialog wird die Vorlage ausgewählt, die Sie für das Projekt verwenden möchten:
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:
Drücken Sie die Taste F5, um die Anwendung auszuführen und eine Debugging-Sitzung zu starten, die die Anwendung in Ihrem Standardbrowser startet:
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
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