ASP.NET Core: Eine Einführung
()
About this ebook
Related to ASP.NET Core
Related ebooks
Die Serverwelt von Node.js Rating: 0 out of 5 stars0 ratingsBootstrap kurz & gut Rating: 0 out of 5 stars0 ratingsLogging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsC# 8.0 – kurz & gut Rating: 0 out of 5 stars0 ratingsC# 10 – kurz & gut Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5Web-APIs mit ASP.NET MVC 6 Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 13 Rating: 0 out of 5 stars0 ratingsNext Level JavaScript: Schlagworte 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 ratingsCross-Plattform-Entwicklung mit HTML und JavaScript Rating: 0 out of 5 stars0 ratingsJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Rating: 0 out of 5 stars0 ratingsProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratingsDynamische Webseiten: Einstieg in HTML, PHP und MySQL Rating: 0 out of 5 stars0 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsKompaktkurs C# 7 Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 18 Rating: 0 out of 5 stars0 ratingsDocker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio 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/5Windows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Rating: 0 out of 5 stars0 ratingsHTML5 kurz & gut Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsEclipse SmartHome und Smart Office: Intelligente Lösungen in der Heimautomation Rating: 0 out of 5 stars0 ratingsAutodesk AutoCAD 2018 - Grundlagen in Theorie und Praxis: Viele praktische Übungen am Planbeispiel: Digitale Fabrikplanung 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/5
Programming For You
Weniger schlecht programmieren Rating: 4 out of 5 stars4/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5JavaScript kurz & gut Rating: 3 out of 5 stars3/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Programmieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Python | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung 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 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe 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 ratingsLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Vue.js kurz & gut 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 ratingsDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratingsRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Einstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5
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();