Ich habe eine neue Webseite erstellt. Das ist nicht ungewöhnlich und kaum eines Posts wert. Zumal die Webseite nicht der Burner ist. Weder vom Design, noch dem Inhalt. Es ist im Grunde nur etwas Werbung für mein Buch zu „Webanwendungen mit ASP.NET MVC und Razor – Ein kompakter und praxisnaher Einstieg„, das ich vor einiger Zeit beim Springer-Verlag veröffentlicht habe. Also wozu der Hussle?
Nun – wenn man den Link zu der Webseite anklickt, fällt vielleicht der ungewöhnliche Port auf (33333). Der eigentliche Anlass für die neue Webseite war die Vorbereitung für eine Schulung mit ASP.NET im kommenden Januar. Ich will einfach einige Praxisseiten zum Zeigen von ein paar Sachen haben.
Ich betreibe meine Webseiten nun aber mit einem Apache-Webserver unter Linux. Die neue Webseite ist jedoch – aus besagten Gründen – mit ASP.NET MVC und Razor gemacht. Und das braucht – eigentlich – einen Windows-Server mit IIS oder so. Also auf jeden Fall .NET. Lokal auf einem Windows-PC bzw. direkt aus Visual Studio kein Problem. Aber wenn man „In-the-wild“ nur Linux verwendet?
Deshalb finde ich die Sache bemerkenswert, denn ASP.NET & Co laufen auf meinem Linux-Server. Genaugenommen in einem Docker-Container, denn mit Visual Studio kann man ab der Version 2022 Unterstützung für Docker integrieren. Das geht noch nicht für alle .NET-Projekte, aber für ASP.NET wirklich gut und einfach.
Damit habe eine Weile herumexperimentiert. Das Starten eines Webservers als Docker-Container direkt aus Visual Studio geht per Mausklick, wenn diese Docker-Unterstützung dem Projekt hinzugefügt wurde. Es gibt für mich erst einmal keinen wirklichen Unterschied dazu, ob ich meine Demoseite unter IIS oder eben im Docker-Container laufen lasse.
Aber der große Charme besteht eben darin, dass ich die neue Webseite eben auch live auf meinem Linux-Server laufen lassen kann, indem ich einfach aus Visual Studio heraus ein Docker-Image auf Docker Hub gepusht und dann auf meinem Linux-Server gepullt habe. Dann noch passende Ports für das „run“-Command von Docker ausgesucht und das Zeug läuft. Ich habe die Geschichte erst mit meinem lokalen Linux-Rechner getestet und ehrlich gesagt ziemlich rumprobiert, bis ich die Sache im Griff hatte. Aber die Schwierigkeiten kamen für mich nicht von ASP.NET und Visual Studio, sondern von der Docker-Administration, mit der ich mir immer schon schwer getan habe.
Dennoch – eine feine Geschichte mit hoher Überschneidung zu dem, was auch bei meinem neusten Python-Kurs bei LinkedIn Learning, der als Teil einer internationalen Kampagne in der Tech-Library von LiL veröffentlicht wurde, im Fokus steht. Denn dort nutzt man direkt die Integration in die Cloud-basierte IDE Github Codespaces. Diese Integration in Github Codespaces bietet den Vorteil, eine voll funktionsfähige Sandbox zu haben, die Visual Studio Code im Browser emuliert. Tja – und damit ist der Bogen geschlagen, denn Codespaces basiert auf Docker-Images bzw. -Containern.