ASP.NET Core: Warum Core so spannend ist

Eine mit ASP.NET erstellte Website eignet sich bestens für kleine bis mittlere Webprojekte, besonders im Enterprise Bereich, – zum Beispiel eine Webapplikation oder eine andere einfache Datenbankanwendung.

Millionen von Entwicklern verlassen sich bei der Erstellung von Internetanwendungen auf ASP.NET 4.x. Das Web-Framework ASP.NET von Microsoft, das Entwickler bei der Erstellung von Webanwendungen unterstützt, hat sich dabei im Laufe der Jahre zu einem eigenen kleinen Kosmos entwickelt, auf dem zahlreiche Erweiterungen und Weiterentwicklungen basieren.

Das Produkt „Core“

Die Microsoft Software ASP.NET Core ist ein kostenloses und quelloffenes Framework zur Erstellung von Webanwendungen, das sowohl auf dem vollständigen .NET-Framework unter Windows als auch auf dem plattformübergreifenden .NET Core läuft.

Die .NET Core Standardanwendung ist dabei ein reines Kommandozeilenprogramm und ASP.NET das Website-Framework dafür. Core ist eigentlich ein Redesign mit signifikanten Änderungen an der Architektur, was zu einem schlankeren Framework mit mehr Modularität und besserer Performance führt. So gab Microsoft bekannt, dass die Bing-Suchmaschine, die ihren Core 2.1 verwendet, eine Leistungssteigerung von 34 Prozent gegenüber dem klassischen .NET-Framework und .NET Core 2.0 erreichen konnte. Der Leistungszuwachs ist dabei besonders auf Verbesserungen bei Zeichenkettenoperationen in .NET Core 2.1 zurückzuführen. Die Verbesserungen basieren auf der Einführung neuer Typen, die eine effizientere Behandlung in Speicherblöcken ermöglichen.

Microsoft entwickelt ASP.NET Core als Open Source Projekt unter Beteiligung externer Entwickler der eigenen Community. Die Technologie ist meist modular, vollständig Open Source und läuft auf den wichtigsten Plattformen neben Windows.

Features der Microsoft Software

ASP.NET Core wurde 2015 nach mehrjähriger Entwicklungszeit als Version 1.0 veröffentlicht und befindet sich derzeit in der Version 2.1. Es ist ein Paradigmenwechsel weg von Closed Source und Windows als alleiniger Grundlage zu einem plattformunabhängigen und architektonisch anspruchsvollen Framework, denn egal ob iOS, Android oder Windows: Auf allen Betriebssystemen kann nun mit C# und dem .NET Framework entwickelt werden.

Das Endergebnis ist eine Applikation, die alle plattformspezifischen Funktionen nutzen kann und die Leistung einer nativen App bietet. Umgebungen für Entwicklung und Produktion sind im ASP.NET Core besonders wichtig und können durch Umgebungsvariablen, die Einstellungsdatei und das Kommandozeilenargument definiert werden.

Das Web-Root-Verzeichnis einer Anwendung ist dabei das Projektverzeichnis, das öffentliche statische Ressourcen wie CSS, JavaScript und Bilddateien enthält. Das Framework bietet Vorlagen für Webseiten und verschiedene Methoden zur Authentifizierung von Benutzern.

Entwickler haben dabei die Wahl, ASP.NET Core auf .NET Core 1.x oder.NET Framework 4.x auszuführen.

Weitere Features sind unter anderem:

  • In Verbindung mit .NET Core gibt es das separate Entity Framework Framework für Core, auch bekannt als EF Core, das seit 2016 verfügbar ist.
  • ASP.NET Core Identity ermöglicht es dem Entwickler, Login-Funktionen hinzuzufügen und Daten über den angemeldeten Benutzer anzupassen.
  • Neu in ASP.NET Core 2.0 ist „Razor Pages“, ein seitenbasiertes Programmiermodell, das die Erstellung einer Web-Benutzeroberfläche einfacher und produktiver macht.
  • „Floating Apps“ ist eine Lösung für den durchschnittlichen Benutzer, der keine großen Projekte starten will, sondern nur eine kleine Seite erstellen möchte.
  • Die Laufzeit ist für die Cloud und das Internet optimiert, und es gibt ein cloud-fähiges, umgebungsbasiertes Konfigurationssystem.
  • Die Kompilierung ist kontinuierlich, so dass der Entwickler den Kompilierungsbefehl nicht manuell aufrufen muss.

MVC: Model, View, Controller

Das MVC-Framework für ASP.NET Core bietet ein einfaches, hochgradig testbares Open-Source-Präsentations-Framework, das für den praktischen Einsatz weiterentwickelt wurde. Das MVC-Framework verbindet Model, View und Controller mit Schnittstellen, so dass jede Komponente unabhängig von den anderen getestet werden kann. Die musterbasierte Anwendung dient der Entwicklung dynamischer Websites, die eine saubere Trennung der einzelnen Elemente von Software ermöglicht.

Die Implementierung des MVC-Musters ermöglicht es damit, derartige dynamische Webseiten besonders klar in die drei Bereiche Model (Datenmodell), View (View) und Controller (Kontrollstrukturen) zu unterteilen. Auch der Ansatz der testgetriebenen Entwicklung hilft dabei in besonderer Weise, da ASP.NET für automatisierte Unit-Tests verwendet wird. Daneben basiert auch die ASP.NET Web API auf dem MVC-Muster.

Die Web API ist ein Framework zur Erstellung REST-basierter Webservices mit HTTP und XML oder JSON und bietet die Möglichkeit, Schnittstellen zu planen und Daten in verschiedenen Varianten auszugeben oder zu empfangen. Beide Frameworks sind in ihrer Struktur sehr ähnlich. Die Trennung der einzelnen Bereiche und möglicherweise das separate Hosting bringen Flexibilität und Stabilität.

So kann es beispielsweise bei der Entwicklung einer E-Commerce-Lösung hilfreich sein, ein umfangreiches Backend vorerst zu vermeiden und sich nur auf das Frontend zu konzentrieren.

Wie die Ähnlichkeit der Namen schon andeutet, gibt es auch eine Ähnlichkeit in der Art und Weise, wie eine Website entwickelt wird: HTML-Oberflächen werden mit einem Designer visuell zusammengestellt, die Logik mit Eventhandlern implementiert. Analog dazu werden Controls per Drag & Drop auf die Benutzeroberfläche gezogen und konfiguriert. ASP.NET Core (genauso wie ASP.NET MVC und ASP.NET Web Forms) ist für alle Anwendungsgrößen geeignet.

Das Projekt Electron.NET

Electron.NET ist ein neues Projekt zur Cross-Plattform-Entwicklung von Desktop-Anwendungen mit ASP.NET. Das von GitHub entwickelte Open-Source-Framework Electron ermöglicht es so, für das Internet erstellte Web-Anwendungen auf dem Desktop-PC auszuführen.

Elektron.NET baut auf der bereits hoch entwickelten und stabilen Electron-Plattform auf. Der ASP.NET Core wird dabei innerhalb der Electron App eingebettet.

Vorteile und Nachteile des Frameworks

ASP.NET Core MVC und ASP.NET Core Web API sind je nach Messung zwischen 12 und 34 Prozent leistungsfähiger als ihre Vorgänger. Neben den bereits angesprochenen Vorteilen wie deutlich bessere Performance, Modularisierung, Open Source und plattformunabhängige Entwicklung, erlauben beispielsweise sogenannte NuGet Packages (einzelne ZIP-Dateien mit der Erweiterung .nupkg, die kompilierten Code, andere Dateien und ein beschreibendes Manifest enthalten) schnellere Updates.

Daneben ist die Komplexität, die das .NET Framework insgesamt auszeichnet, deutlich reduziert. Weiterhin erlaubt es moderne Programmier-Strukturen, wie zum Beispiel das Konzept der Dependency Injection, was andere Frameworks schon lange implementiert hatten. Außerdem wurde die Entwicklung von Controller und ApiController hinter dem gemeinsamen Konzept ControllerBase vereinheitlicht.

Nachteil ist, dass sich die verfügbaren Funktionen und Fähigkeiten von .Net Core und dem .Net-Framework jedoch so sehr voneinander unterscheiden, dass sich ein Umstieg schwierig gestaltet. Dementsprechend äußerten bereits viele Entwickler ihren Unmut darüber durch einen Fehlerbericht auf GitHub.

Insgesamt bringt Core fast nur Vorteile. Ob sich allerdings der Rückstand gegenüber der Linux-Server-Welt und Internet-Applikationen, die mit Programmiersprachen wie PHP oder auch Python erstellt wurden, aufholen lässt, ist fraglich. Dazu hat Microsoft viel zu lange auf die Windows-eigene Infrastruktur inklusive ihrer Nachteile gesetzt.

Interessante Beiträge zum Thema:
Offizielle Informationen zu Core auf der Microsoft Seite
Heise.de schreibt zu den Performance Verbesserungen bei ASP.NET


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar