Was ist dieses ASP.NET Core und warum ist es so besonders?

Bei .NET handelt es sich um ein Framework, welches eine Software-Plattform und Laufzeitumgebung mit eigenen Klassenbibliotheken, Schnittstellen und Dienstprogrammen bereitstellt, die unterschiedliche Programmiersprachen unterstützt. In einfachen Worten nochmal ausgedrückt, ist .NET eine kostenlose, plattformübergreifende Open-Source-Entwicklerplattform für die Erstellung vieler verschiedener Arten von Anwendungen.

csharp Icon - dotnet Web-entwicklung

Die Entwicklung ist vielseitig und findet Verwendung im Web, auf mobilen Endgeräten, Desktopanwendungen, für Spiele und für IoT.



Geschichte des .NET Frameworks

Im Fokus stehen hier natürlich die Webanwendungen. Die Entwicklung unter .NET war auch lange Zeit als ASP.NET bekannt. Dies geht auf die Geschichte der Entwicklung des .NET Frameworks zurück.

ASP.NET ist der Nachfolger von Active Server Pages und erschien im Jahr 2002 in seiner ersten Version. Die aktuellste Version dieses Zweigs ist Version 4.8, welches zugleich aber auch die letzte Version sein wird. Was meinte ich aber mit diesem Zweig?

Am 27. Juni 2016 wurde ein weiterer Zweig Namens .NET Core vom Hauptzweig abgespalten. Die Idee dahinter war eine plattformunabhängige Lösung zu entwickeln, welche wie andere bekannte Sprache – zum Beispiel Java, auf sämtlichen Plattformen lauffähig ist. Denn bis zu diesem Zeitpunkt war die .NET Umgebung ausschließlich auf Windowssystemen einsetzbar.



Struktur von .NET Websiten

Bei der Struktur gibt es zwei verschiedene Varianten. Variante eins ist an die alten Webform-Seiten aus vergangen Zeiten angelehnt, wo zu einer CSHTML Seite direkt eine Programmierklasse zugeordnet ist. Die andere ist eine weit verbreitete Art und trägt den Kurznamen MVC. Hier werden die Ansichtsseiten (Views oder halt CS-/HTML Seiten) losgelöst und in Verbindung zu einem Controller gesetzt, welcher die Rolle der Programmierklasse übernimmt – heißt dort wo sämtliche Logik und Verhalten definiert werden können. Controller und Views haben zudem einen Zugang zu einem Model. Eine weitere Programmierklasse, welche aber nur dazu dient Wertausprägungen zu halten und diese Information vom Controller an die View übergeben kann.

Es ist Außerdem Möglich einzelne Views so aufzubauen, dass sie nach Belieben in andere Views integriert werden können. Sogenannte Partial Views, welche keine vollwertigen Views in sich selbst sind, sondern dafür konfiguriert wurden, um in normale Views nach Wunsch integriert zu werden. Durch dieses Prinzip lassen sich Seiteninhalte auch besonders gut dynamisch updaten, indem Werte in einer Datenbank gehalten werden und durch ein Ereignis beispielweise verändert wurden. Jetzt kann man nach der Veränderung die betroffene View, im besten Fall eine Partial View – die sagen wir eine Liste darstellt, einzeln aktualisieren und muss nicht die ganze Seite neu laden.



Vorteile von .NET – warum sollte ich kein CMS stattdessen benutzen?

Wo fangen wir an, wenn es um die Vorteile geht. Als erstes ein praktisches Beispiel: Dabei handelt es sich um diese Seite – um aufzuzeigen, dass Websiten in Eigenentwicklung deutlich mehr Potenzial bieten, habe ich mir die Mühe gemacht und hier einige kleinere Spielereien eingebaut. Manches mag durch die Optik eventuell als unseriös eingestuft werden, nehmen wir als Beispiel das Ninja-Design auf der Preisübersicht. ABER einerseits wird man sich an meine Seite so deutlich wahrscheinlicher erinnern und zweitens möchte ich damit auch zeigen, dass der Fantasie hier keine Grenzen gesetzt sind und Individualität bei mir groß geschrieben wird, da meiner Meinung nach viele WordPress Websiten sich kaum noch unterscheiden und ich meistens nicht einmal meine Tools benötige um mit Sicherheit sagen zu können, dass die Website vor mir nicht mit WordPress erstellt wurde.

Also einmal zusammenfassend, falls jemand das nicht alles lesen möchte: Individualität wird großgeschrieben.

Wie in der Struktur bereits beschrieben, lassen sich Inhalte gut auslagern. Besonders welche man dynamisch durch Events updaten möchte. Durch die Möglichkeit nur einen kleinen Teil der Seite laden zu müssen, bekommen wir einen enormen Geschwindigkeitsboost. Man sollte nicht vergessen, Geschwindigkeit ist das A und O in der heutigen Zeit.

Die Freie Gestaltung der Datenbankstrukturen ist für viele ein Segen. Endlich keine vordefinierten Tabellen oder 1000 unnötige Spalten ohne Inhalt. Ein separierter Zugriff auf seine Daten und keine Abhängigkeit zu MySQL/ MariaDB, sondern die freie Wahl.

Gehen wir jetzt in Richtung Business Anwendungen, würden wir mit CMS System direkt an die obersten Grenzen der Machbarkeit stoßen. Hier wäre zusätzlich der Einsatz von weiteren Tools auf der .NET Ebene möglich, die aber auch zu kosten der Performance neue Funktionalitäten freischalten, die kein CMS System bieten kann.

Einen Schritt weitergedacht, sind auf der .NET Seite auch kinderleicht komplette Automatisierungen möglich. Die Erstellung von Word oder Excel Layouts, die als PDF an die Kunden verschickt werden oder der eigene Newsletter Versand. Man ist nicht mehr auf die Plugins von WordPress und Co angewiesen und kann vieles selber und vor allem besser machen.





Nachteile von .NET – wo Licht ist, da ist auch Schatten?

Zum einen ist ein Windows Server eben teurer als ein Linux Server. Um das volle Potenzial der Microsoft Datenbanken nutzen zu können, würde man hier auch zur Kasse gebeten werden. Auch wenn es hierfür genug Alternativen gibt oder man die geringe Performance der kostenlosen Version in Kauf nimmt und nur an Stellen benutzt, welche nicht auf die Sekunde genau antworten müssen.

Theoretisch ist dank der Plattformunabhängigkeit auch die Möglichkeit gegeben, eine .NET Anwendung auf einen Linux Server zu veröffentlichen. Doch die Realität über den normalen Weg ist grauenhaft und erfordert viel Konfigurationsaufwand und eine erschwerte Instandhaltung. Der andere Weg würde über eine Virtualisierung mit Docker funktionieren, wo man aber auch wieder zusätzliches Know-how benötigt und trotzdem einige beschriebene Vorteile so nicht mehr ausführbar wären.

Durch die Entwicklung ohne ein CMS können statische Inhalte nur vom Entwickler über eine Neuveröffentlichung der Quelldateien durchgeführt werden. Sollte sich also die Startseite wöchentlich ändern, müsste man dies speziell dafür bauen. Andernfalls wäre die kurzfristige Inhaltsaktualisierung immer ein neuer Aufwand.