ASP.NET Core: Eine Einführung
Von Oğuzhan Açıkgöz
()
Über dieses E-Book
Ähnlich wie ASP.NET Core
Ähnliche E-Books
C# 10 – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenWeb-APIs mit ASP.NET MVC 6 Bewertung: 0 von 5 Sternen0 BewertungenLogging: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Bewertung: 0 von 5 Sternen0 BewertungenNext Level JavaScript: Schlagworte Bewertung: 0 von 5 Sternen0 BewertungenDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Bewertung: 1 von 5 Sternen1/5C# 8.0 – kurz & gut Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Bewertung: 0 von 5 Sternen0 BewertungenSteuergeräte-Entwicklung mit AUTOSAR: Evaluierung der Entwicklungsumgebung Arctic Studio: Entwicklung AUTOSAR-basierter Systeme Bewertung: 0 von 5 Sternen0 BewertungenSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Bewertung: 0 von 5 Sternen0 BewertungenSharePoint Kompendium - Bd. 13 Bewertung: 0 von 5 Sternen0 BewertungenVue.js kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenSharePoint Kompendium - Bd. 16 Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform-Entwicklung mit HTML und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenDie Serverwelt von Node.js Bewertung: 0 von 5 Sternen0 BewertungenBootstrap kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Bewertung: 0 von 5 Sternen0 BewertungenKompaktkurs C# 7 Bewertung: 0 von 5 Sternen0 BewertungenDocker: Webseiten mittels Containerarchitektur erstellen Bewertung: 3 von 5 Sternen3/5Einstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenAzure und IoT Bewertung: 0 von 5 Sternen0 BewertungenWindows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Bewertung: 0 von 5 Sternen0 BewertungenDynamische Webseiten: Einstieg in HTML, PHP und MySQL Bewertung: 0 von 5 Sternen0 BewertungenModerne Datenzugriffslösungen mit Entity Framework 6 Bewertung: 0 von 5 Sternen0 BewertungenEclipse 4: Rich Clients mit dem Eclipse 4.2 SDK Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5PHP for Office: Automatisierte Dokumentenerstellung mit PHPExcel, PHPWord und PHPPowerPoint Bewertung: 1 von 5 Sternen1/5Software entwickeln mit C#, WPF und dem MVVM-Konzept Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
Die ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5New Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenSQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenDocker: Webseiten mittels Containerarchitektur erstellen Bewertung: 3 von 5 Sternen3/5SQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5
Rezensionen für ASP.NET Core
0 Bewertungen0 Rezensionen
Buchvorschau
ASP.NET Core - Oğuzhan Açıkgöz
geschützt.
1 Einleitung
Mit ASP.NET Core hat Microsoft einen Weg eingeschlagen, der bis vor einigen Jahren undenkbar gewesen wäre. Es ist der Meilenstein schlechthin, denn das Core Framework ist quelloffen und lädt die Community ein, Teil des Projekts zu sein. Wenn man bedenkt, dass bisher Frameworks von Microsoft möglichst abgeschottet und geschlossen waren, ist diese Neuerung eine wegweisende Änderung für die zukünftigen Pläne des Unternehmens. Microsoft will nicht mehr der Unbekannte hinter verschlossenen Türen sein, sondern eine Nähe zu Entwicklern aufbauen, insbesondere zu jenen, die bisher Alternativen wie PHP oder Java präferiert haben. Natürlich ist es naiv zu glauben, dass nur durch ein quelloffenes Framework ein solches Vorhaben realisiert werden kann: Deshalb verbirgt sich hinter ASP.NET Core mehr als nur eine Strategieänderung.
Eine der großen Neuigkeiten ist die Auflösung der Verbindlichkeit zu Internet Information Services als Host für Webanwendungen und implizit zu Windows Server. Auch architektonisch hat sich das vollständig modular aufgebaute Core Framework von dem bisher verwendeten, monolithisch implementierten .NET Framework differenziert. Die neue Architektur fusioniert alle Bestandteile von ASP.NET wie Web API und MVC in einem Framework, sodass eine einfache Initialisierung im Code darüber entscheidet, welche Art von Software implementiert wird.
2 Einführung in ASP.NET Core
2.1 Das Core-Gerüst
ASP.NET Core hat sich im Vergleich zu ASP.NET MVC oder Web API konzeptionell signifikant geändert. Diese Veränderung wirkt sich auch auf den Entwickler aus und verpflichtet, das Re-Design zu verstehen, um weiterhin zukunftssicher aufgestellt zu sein.
Unter Anbetracht der Prämisse von ASP.NET Core, plattformunabhängig zu sein und diverse, bisher unabhängige Technologien in einem Framework zu vereinen, waren Aktualisierungen seitens der Softwarearchitektur unumgänglich. Dabei ist die größte Errungenschaft unumstritten der modulare Aufbau.
Das Core Framework muss man sich als eine Konsolenanwendung mit einem statischen Einstiegspunkt vorstellen – der Main-Methode –, in der programmatisch Konfigurationen vorgenommen werden können. Beispielsweise lässt sich wie folgt der Kestrel- und IIS-Support aktivieren:
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseIISIntegration()
.UseStartup
.Build();
host.Run();
}
Dieser Codeschnipsel verdeutlicht, was bisher vielmals mit dem Begriff „modular" gemeint war. Durch Initialisierung einer Klasse und Aufruf von Eigenschaften integriert das Core Framework den IIS/Kestrel-Support.
Für ein besseres Verständnis wird im Folgenden der Fokus auf die einzelnen Komponenten gelegt. Einige sind vollkommen neu im Vergleich zu älteren ASP.NET-Versionen, andere hingegen lediglich an die neue Architektur angepasst.
2.1.1 Der Startpunkt: die „Startup"-Klasse
Die Startup-Klasse ist der Einstiegspunkt von Webanwendungen. Jede ASP.NET-Core-Anwendung, die davon absieht als Webapplikation zu fungieren, muss deshalb eine Startup-Klasse implementieren. Innerhalb der Startup-Klasse wird die Anwendung konfiguriert. Beim Anlegen eines neuen ASP.NET-Core-Projekts in Visual Studio wird, nach folgendem Beispiel, initial eine Startup-Klasse angelegt.
Abb. 2.1: Ein neues Projekt anlegen
Abb. 2.2: Das Web-Application-Template auswählen
Aus unserer Auswahl resultiert folgende Projektstruktur:
Abb. 2.3: Die aus der Auswahl folgende Projektstruktur
Der Startpunkt von Core ist Program.cs, in der sich die oben aufgeführte statische Main-Methode befindet. Erst durch das Initialisieren von WebHostBuilder() wird aus dem Core-Projekt eine Webanwendung und nach der Initialisierung startet die Startup-Klasse.
Im nächsten Schritt liegt der Fokus auf den einzelnen Methoden, die sich innerhalb der Startup-Klasse befinden.
Hier wird bewusst auf die detaillierte Verwendung von Methoden und Konfigurationsmöglichkeiten verzichtet, weil die kommenden Kapitel sich darauf konzentrieren werden.
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile(appsettings.json
, optional: true, reloadOnChange: true)
.AddJsonFile($appsettings.{env.EnvironmentName}.json
, optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
Im Konstruktor befindet sich ein Parameter vom Typ IHostingEnvironment, der uns die Konfiguration von Umgebungsvariablen und Konfigurationsdateien ermöglicht.
Im Vergleich zu älteren ASP.NET-MVC-Versionen ist ASP.NET Core nicht auf die Web.config-Datei beschränkt. Es lassen sich beliebig viele Konfigurationsdateien erstellen und durch den Konstruktor im Startup initialisieren.
In der Startup-Klasse muss die Methode Configure implementiert sein, in der die HTTP-Request-Pipeline konfiguriert wird.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection(Logging
));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler(/Home/Error
);
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: default
,
template: {controller=Home}/{action=Index}/{id?}
);
});
}
Durch den IApplicationBuilder lassen sich so genannte Middlewares definieren, die die einzelnen Komponenten der Pipeline abbilden. Alternativ lassen sich auch in dieser Methode die Einstellungen der Konfigurationsdateien übernehmen und das Logging verwalten.
Optional kann eine ConfigureService-Methode verwendet werden, die den integrierten Dependency-Injection-Container (auch Inversion-of-Control-Container genannt) abbildet. Falls diese Methode existiert, wird sie definitiv vor der ConfigureService-Methode aufgerufen, weil potenziell Verbindlichkeiten zwischen Middlewares aufgelöst werden müssen.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext
options.UseSqlServer(Configuration.GetConnectionString(DefaultConnection
)));
services.AddIdentity
.AddEntityFrameworkStores
.AddDefaultTokenProviders();