SPA mit ASP.NET Core und Angular

Was ist ASP.NET Core MVC?

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Seit der Einführung des .NET-Framesworks hat Microsoft einige Web-Frameworks herausgebracht. Das neueste ist ASP.NET Core. In diesem Film erfahren Sie, was es damit auf sich hat, und Sie lernen einiges über die Geschichte der Web-Frameworks von Microsoft.
11:03

Transkript

Seit der Einführung des .NET Framworks hat Microsoft einige Web Frameworks herausgebracht. Das neueste Web Framework ist ASP.NET Core. Schauen wir uns einmal an, was es damit auf sich hat. Wie bereits gesagt, gab es in der Vergangenheit bereits andere Web Frameworks von Microsoft. Das erste, das erschien 1996 und das hieß Active Server Pages oder Classic ASP. Die Idee bei Classic ASP war, dass ich serverseitiges VBScript ausführen konnte, um dann auf dieser Basis Seiten generieren zu können, die zum Browser zurückgeschickt worden sind. Die Verarbeitung geschah also komplett serverseitig und es lief VBScript. Das war natürlich ein Riesenschritt auf der Microsoft-Plattform, um dynamische Webseiten zu schreiben. Allerdings hatte man dort häufig das Problem, dass irgendwie in einer Core-Datei später tausende, vielleicht sogar zehntausend Zeilen drinnen standen, dass man dort Datenzugriff in der einen Zeile, in der nächsten Zeile Geschäftslogik und in der dritten Zeile eine oberflächige Logik hatte. Etwas aufgeräumter wurde das dann mit ASP.NET Web Forms. ASP.NET Web Forms erschien 2002 gemeinsam mit dem .NET Framework. Und im Endeffekt kann man sich ASP.NET Web Forms als eine Art Visual Basic 6 im Browser vorstellen. Die Grundidee war also, man hat das Paradigma der Desktopentwicklung, sprich eine statusbehaftete Entwicklung ins Internet gebracht. Das geschah durch Techniken, wie zum Beispiel den ViewState, der dabei half, dass eine Anwendung Request-übergreifend den Status behalten konnte. Web Forms war für die damalige Zeit eine sehr gute Technologie. Es hat sehr viel entwickelt, an die vorher keine Webprogrammierung gemacht haben, den Einstieg ins Web gebracht. Allerdings hat man dann im Laufe der Zeit gemerkt, dass es doch mit einigen Problemen behaftet waren, zum Beispiel, dass Mac ab was am Ende herausgerendert worden ist, weil man alles nur per Drag and Drop zusammengeschoben hat. Das war nicht sonderlich gut. Man hatte wenig Einfluss drauf. Die Zusammenarbeit mit Script-Bibliotheken, die gestaltete sich etwas schwieriger, als es hätte sein müssen und deswegen hat man dann 2009 als alternatives Framework ASP.NET MVC rausgebracht. ASP.NET MVC ist auch ein Web Framework von Microsoft, was auf der Basis von ASP.NET läuft. Und hier hat man das Model-View-Controller-Muster, daher auch MVC umgesetzt. Man hat also hier versucht weitaus mehr die Zuständigkeiten zu trennen, indem man gesagt hat, wir haben eine Komponente, die ist zum Rendern da, das ist der View. Wir haben außerdem das Modell, was unsere Daten und Geschäftslogik beinhaltet. und wir haben zu guter Letzt den Controller, der beides zusammenführt. ASP.NET MVC war sicherlich ein Schritt in die richtige Richtung. Allerdings war ASP.NET MVC immer noch fest verdrahtet mit den Wurzeln von ASP.NET und somit auf Windows-Systeme begrenzt. Das hat man mit ASP.NET Core MVC geändert. ASP.NET Core MVC, das kam 2016 in der Version 1 heraus. Das ist eine vollständige Neuimplementierung und hier hat man die Möglichkeit Cross-Plattform zu arbeiten. Was bedeutet das konkret? Wir können uns die Zusammenhänge wie folgt vorstellen. Wir haben in der früheren Welt, also von 2002 an, haben wir ASP.NET gehabt auf Basis der System.Web.dll. Diese System.Web.dll, die lief auf dem vollen .NET Framework, was es nur für Windows gab. Auf der Basis von dieser ASP.NET-Plattform sind dann verschiedene Frameworks entstanden. Das erste war 2002, wie gesagt Web Forms, dann kam 2009 MVC hinzu und etwas später gab es dann die ASP.NET Web API, die kam 2012 heraus. Wir hatten also hier zwei verschiedene Frameworks, nämlich MVC und Web API, die ganz ähnliche Sachen gemacht haben, die nämlich direkt HTTP-Anfragen beantwortet haben. 2016 kam dann ASP.NET Core hinzu. Und Sie sehen hier ASP.NET Core hängt so halb auf den .NET Framework. Das liegt daran, weil ASP.NET Core auf zwei Frameworks laufen kann. Ich kann eine ASP.NET Core-Anwendung auf dem normalen vollen .NET Framework laufen lassen, inklusive der riesigen .NET Klassenbibliothek, die ich da dann Zugriff habe. Ich kann es aber auch unter .NET Core laufen lassen. .Net Core ist eine Neuimplementierung des .NET Frameworks, die unter Linux, macOS und Windows läuft. Bedeutet ich habe jetzt die Möglichkeit meine Anwendungen auf allen drei Betriebsystemen auszuführen. Auf der Basis von ASP.NET Core gibt es nun ein Framework, nämlich ASP.NET Core MVC. Und in ASP.NET Core MVC da sind die Funktionalitäten von MVC und der Web API ineinander aufgegangen. Bedeutet also ich kann hier in einem Controller sowohl Views später zurückgeben, als auch Daten zurückgeben. Die Frage ist natürlich, wie ist jetzt genau der Zusammenhang zwischen vollem .NET Framework und .NET Core und das schauen wir uns auch einmal kurz gemeinsam an. Denn das ist für Sie wichtig, um später entscheiden zu können, ob Sie Ihre ASP.NET Core-Anwendung lieber auf dem vollen Framework oder lieber auf .NET Core laufen lassen wollen. Von der Grundidee her hat Microsoft etwas ganz interessantes gemacht. Als die in die Entwicklung des .NET Frameworks eingestiegen sind Ende der 90er, da haben die folgendes gemacht, die haben gesagt, wir möchten das Ganze gerne standardisieren, was wir hier machen. Bedeutet also die haben bei der Ecma zwei Standards eingereicht. Und diese Standards, die beschreiben plattformneutral, was das .NET Framework zu bieten hat. Eine der Implementierung ist dann, wie gesagt das .NET Framework, wir es unter Windows kennen und das andere ist jetzt .NET Core, was unter Linux, macOS und Windows läuft. Andere Implementierungen wären zum Beispiel die Mono-Laufzeitumgebung, die auch unter Linux und unter Mac läuft und die zum Beispiel für ???? Bestandteile dieser Standardisierung sind jetzt zum einen die C sharp Spar-Spezifikation unter dem Ecma-Standard-334, die im .NET Framework durch den Roslyn-Compiler umgesetzt wird, und zwar im vollen Framework, sowie auch unter .NET Core. Der Roslyn-Compiler, der wird übrigens auch für Mono genutzt, was wir hier auf der Folie jetzt nicht sehen. Der zweite Standard, der dokumentiert wurde, ist der Ecma-Standard-335. Und zwar der Ecma-Standard-335 beschreibt die Common Language Infrastructure. Die Common Language Infrastructure, die besteht aus zwei Elementen. Zum einen das einer virtuellen Maschine, also aus etwas, was die Intermediate Language, die das C sharp Compiler generiert, ausführen kann. Und im Falle des vollem .NET Frameworks ist das natürlich die Common Language Runtime, die CLR. Das werden Sie vielleicht schon mal gehört haben. Das ist also das Modul, was unsern .NET Code ausführt. .NET Core wiederum hat eine eigene Implementierung dieses Standards. Die haben also eine eigene CLR und diese eigene CLR, die Core CLR, die läuft eben unter Linux, unter Mac und unter Windows. Darüber hinaus gehören zum Standard ein Set an Standardbibliotheken, beziehungsweise eine Dokumentation der öffentlichen Schnittstellen. Das sind so Bibliotheken, wie System+MAF oder ähnliches. Also ganz viel der Bibliotheken, die Sie im System Namespace finden. Die hat Microsoft damals in den Standard hereingebracht und gesagt, diese Bibliotheken, das sind die, die man mindestens braucht, um eine Implementierung dieses Standards bereitstellen zu können. Und unter dem folgenden .NET Framework sprechen wir von der .NET Framework Class Library. Und unter .NET Core sprechen wir über die CoreFX, also über die .NET Core Class Library. Hier haben wir auch wieder zwei verschiedene Implementierungen. Und da .NET Core noch relativ jung ist, ist .NET Core natürlich noch nicht auf dem gleichen Stand, wie die .NET Framework Class Library. Bedeutet es gibt einfach Funktionalitäten, die fehlen. Zum Teil, weil die .NET Framework Class Library, beziehungsweise weil das .NET Framework viele Funktionalitäten bereitstellt, die über die .NET Framework Class Library hinausgehen. Zum Beispiel die Windows Communication Foundation, die ist nicht in der .NET Framework Class Library drin, die gehört aber zum vollen .NET Framework und die kann ich unter .NET Core nicht benutzen, weil die nicht portiert worden ist. Heißt einfach für Sie, wenn Sie ein neues Projekt starten möchten, dann müssen Sie vorher überprüfen, ob denn die Funktionalitäten des .NET Frameworks, die Sie benötigen, ob es die überhaupt in der .NET Core Class Library, also in CoreFX gibt. Wenn es sie gibt, dann können Sie jedoch von folgenden Verbesserungen von ASP.NET Core profitieren. Zum einen ist ASP.NET Core Cross-Plattform. Sie sind also nicht mehr an Windows gebunden, weder bei der Entwicklung, noch beim Hosting. Es mag jetzt sein, dass das für Sie im Moment vielleicht egal ist, weil Sie sagen, ich entwickle sowieso nur unter Windows und ich hoste auch nur unter Windows. Aber vielleicht schreiben Sie irgendwann eine Anwendung, die einmal auf einem Linux-Server gehostet werden soll, weil vielleicht das Unternehmen, für die Sie diese Anwendung schreiben, auf Linux wechselt. Darüber hinaus wurden Web API und MVC zusammengeführt. Bedeutet vorher hatten wir zwei Controller-Klassen, jetzt haben wir nur noch eine Controller-Basis-Klasse und müssen uns nicht mehr entscheiden, ob jetzt ein Controller ein MVC oder ein Web API-Controller ist. Unter ASP.NET Core ist es immer beides. Das System ist darüber hinaus sehr modular. Von Grund auf ist ASP.NET Core auf Dependency Injection aufgebaut. Bedeutet sämtliche Abhängigkeiten kann ich mit eingebauten Mechanismen bereits registrieren und zur Laufzeit später auflösen. Das erlaubt es mir natürlich sehr flexiblen und sehr gut wartbaren Code zu schreiben. Ein weiterer Vorteil ist, dass .NET Core sehr leichtgewichtig und skalierbar ist. .NET Core ist ganz klar mit dem Hintergrund auf ein Deploy mit in der Cloude entwickelt worden. Und hier braucht man natürlich ein Framework, was nur sehr wenig Komponenten erstmal benötigt, was also von sich her klein ist und was sich sehr einfach auf verschiedene Server skalieren kann. Es ist bei .NET Core zum Beispiel so, dass Sie gar kein volles .NET Framework mehr installieren müssen, sondern die Abhängigkeiten, die Ihre Anwendung braucht. Die deployen Sie einfach mit Ihrer Anwendung und fertig. Keine Installation des .NET Frameworks ist mehr auf dem Zielrechner erforderlich. Was darüber hinaus sehr einfach geworden ist, ist die Integration von kleinen Frameworks. Also unter .NET Core hat man zum einen schon mal ein Command Line Interface bereitgestellt, weil das jetzt auch sehr viele andere kleine Frameworks machen, wie zum Beispiel Angular oder auch Aurelia. Zum anderen hat man einen neuen Weg gefunden statische Dateien zu surfen mit einem Ordner, wwwroot, in dem Sie später einfach komplett Ihre Client-App hereinbringen können. Das Ganze Zusammenspiel zwischen Client und Server funktioniert hier einfach um einiges runder, als bei dem klassichen ASP.NET MVC und viel runder, als beim klassichen ASP.NET Web Forms. Wir können also kurz zusammenfassen. ASP.NET Core ist ein neues Web Framework von Microsoft, und zwar ein Open Source Framework. Das Framework ist Cross-Plattform verfügbar. Es ist skalierbar, es ist leichtgewichtig, es ist modular aufgebaut, es ist an vielen Stellen vereinfacht und besser nachvollziehbar. Aber es gibt natürlich auch ein aber. Und zwar, dass sie aktuell eben noch einen geringeren Funktionsumfang im Bereich der Framework Class Librarys haben.

SPA mit ASP.NET Core und Angular

Lernen Sie die Bestandteile von modernen Webanwendungen kennen und nutzen.

5 Std. 21 min (36 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.09.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!