ASP.NET Core: Eine Einführung
()
About this ebook
Related to ASP.NET Core
Related ebooks
Next Level JavaScript: Schlagworte Rating: 0 out of 5 stars0 ratingsDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5Logging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsWeb-APIs mit ASP.NET MVC 6 Rating: 0 out of 5 stars0 ratingsC# 10 – kurz & gut Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 13 Rating: 0 out of 5 stars0 ratingsC# 8.0 – kurz & gut Rating: 0 out of 5 stars0 ratingsC – kurz & gut Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsBootstrap kurz & gut Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsDie Serverwelt von Node.js Rating: 0 out of 5 stars0 ratingsEinstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsPHP for Office: Automatisierte Dokumentenerstellung mit PHPExcel, PHPWord und PHPPowerPoint Rating: 1 out of 5 stars1/5Progressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Rating: 0 out of 5 stars0 ratingsSteuergeräte-Entwicklung mit AUTOSAR: Evaluierung der Entwicklungsumgebung Arctic Studio: Entwicklung AUTOSAR-basierter Systeme Rating: 0 out of 5 stars0 ratingsHTML5 kurz & gut Rating: 0 out of 5 stars0 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsDynamische Webseiten: Einstieg in HTML, PHP und MySQL Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsEclipse SmartHome und Smart Office: Intelligente Lösungen in der Heimautomation Rating: 0 out of 5 stars0 ratingsC# 6.0 – kurz & gut Rating: 5 out of 5 stars5/5VMware vSphere 6.5: Deployment, Migration, Patch-Management Rating: 5 out of 5 stars5/5Docker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5Azure und IoT Rating: 0 out of 5 stars0 ratingsAutodesk Inventor 2016 - Einsteiger-Tutorial Hubschrauber Rating: 0 out of 5 stars0 ratingsPowerShell: Grundlagen für .NET-Entwickler Rating: 0 out of 5 stars0 ratings
Programming For You
Python-Grundlagen Rating: 0 out of 5 stars0 ratingsMicrosoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Raspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Traumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 5 out of 5 stars5/5C++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsThink Python: Systematisch programmieren lernen mit Python Rating: 0 out of 5 stars0 ratingsDie ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 0 out of 5 stars0 ratingsReact lernen und verstehen Rating: 0 out of 5 stars0 ratingsGames | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsC++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratingsJava 8 - Die Neuerungen: Lambdas, Streams, Date and Time API und JavaFX 8 im Überblick Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratings
Reviews for ASP.NET Core
0 ratings0 reviews
Book preview
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();