Zwischen den Jahren nutze ich die Zeit und bereite eine Schulung zu „ASP.NET MVC“ vor, die im kommenden Januar und dann noch einmal im März laufen soll. Ich muss mich wieder etwas einarbeiten, obwohl ich vor einiger Zeit beim Springer-Verlag ein Buch zu „Webanwendungen mit ASP.NET MVC und Razor – Ein kompakter und praxisnaher Einstieg“ veröffentlicht habe. Aber ansonsten sind Webanwendungen mit ASP.NET MVC und Razor bei mir Randthemen, auch wenn ich viel mit purem C# und .NET zu tun habe.
Deshalb hatte ich vorgestern eine neue Webseite als Referenz erstellt, die ich mit ASP.NET MVC und Razor in einem Docker-Container auf meinem Linux-Server laufen lasse.
Heute habe ich u.a. die Datenbank mit ins Spiel gebracht und im Grunde ist es wie immer bei Microsoft – wenn alles konfiguriert und installiert ist, geht das meiste mit Mausschubserei. Aber wehe, wenn nicht oder man vom vorgegebenen Pfad abweicht. Oder irgendwelche Neuerungen inkompatibel zu älteren Dingen sind (was gefühlt bei Microsoft ständig passiert).
Das Buch zu ASP.NET MVC hatte ich auf Basis von Visual Studio 2017 Community Edition, .NET 4.6.x und MVC 5 bzw MVC 6 geschrieben. Mittlerweile habe ich aber diese Version von Visual Studio längst deinstalliert und nur noch die neuste Version 2022 auf meinen Standardrechnern. Aber mein Kunde nutzt m.W. noch die Version 2017 oder maximal die Version 2019. Deshalb wollte ich nochmal die Version 2017 installieren, weil sich doch eine Menge von der Version 2017 bis 2022 getan hat. Nur ist die Version 2017 nirgends mehr zu finden oder ich bin einfach nicht in der Lage, richtig zu suchen. Zumindest nicht die Community Edition – nur andere Versionen, die maximal als Trailvarianten genutzt werden können, wenn man die kommerziellen Varianten nicht kaufen will. Das kennt man leider von Micrsoft – ältere Versionen von Programmen bzw. allgemein Software werden so gut wie möglich unzugänglich gemacht, damit Nutzer zur Verwendung von neueren Versionen gezwungen werden. Das ist für mich eine ganz üble Unart von Microsoft, denn – wie gerade bei mir – gibt es zig Gründe, warum man ältere Versionen von Software zwingend benötigt. Ich verstehe zwar, dass Microsoft Geld verdienen will, aber dass man Kunden sowas von Schwierigkeiten machen muss, finde ich geradezu unverschämt.
Ich habe m.W auf meinen uralten Terra-Notebook in Eppstein noch eine Version von Visual Studio 2017 in der Community Edition installiert, wenn ich mich nicht täusche. Aber da die Version 2019 zumindest nicht so extrem viele Unterschiede zur Version 2017 aufweist und mein Kunde die vermutlich schon nutzen sollte, habe ich mich mit der Installation dieser Version dann erst einmal zurfieden gegeben. Aber merke:
Deinstalliere nie ein Programm von Microsoft, wenn Du es irgendwann nochmal brauchen könntest – die älteren Versionen werden von Microsoft irgendwann so versteckt, dass niemand sie noch finden soll.
Leider macht der Installer von Microsoft dieses Verstecken einfach – im Gegensatz zu dem Fall, dass man eine echte Installationsdatei noch irgendwo lokal archiviert hat oder im Internet findet. Aber auch diesen Ausweg will Microsoft Kunden anscheind so gut wie möglich verschließen :-(.
Sei es drum. Ich habe versucht, meine alten Beispiele aus dem Buch zuerst unter Visual Studio 2022 alle zum Laufen zu bringen und da gab es massive Probleme – vor allen Dingen, wenn Datenbankzugriffe im Spiel waren. In der Regel waren bestimmte Bibliotheken mittlerweile nicht mehr verfügbar oder nicht standardmäßig installiert. Visual Studio 2019 war da weniger buggy, aber auch da musste ich oft NuGet bemühen. Letztendlich habe ich alle Beispielen zum Laufen gebracht (auch unter der Version 2022) und auch problemlos eine ASP.NET-Applikation auf Basis von .NET-Framework mit Datenbankanbindung neu erstellt, aber dieses ganze Nachinstallieren und Rumkonfigurieren sowie die eklatanten Veränderungen unter der Oberfläche also auch in Visual Studio selbst sind nur lästig und demotivierend. Die absolut nichtssagenden Fehlermeldungen bei ASP.NET sind ebenso nur fustrierend.
Was für mich erst einmal eines der lästigsten Probleme in Visual Studio 2022 war – die Vorlagen für eine ASP.NET-Applikation mit .NET-Framework werden standardmäßig nicht mehr mitinstalliert! Auch wenn man die übliche Web-Unterstützung wie in den Vorgängerversionen installiert hat.
Microsoft hat diese „.NET Framework Projekt- und Elementvorlagen“ unter die „Einzelnen Komponente“ im Installationsassistenten versteckt und dort in der Voreinstellung deaktiviert. Das ist genau dieses üble Gebahren, ältere Software zu verbergen oder verstecken, damit Anwender gar nicht mehr auf die Idee kommen, diese zu verwenden. Microsoft will m.E. .NET Core mit Gewalt durchsetzen und .NET Framework so schnell wie möglich loswerden.
Das fängt schon beim Namen an. Denn der Bezeichner „Core“ wird an diversen Stellen gar nicht mehr genommen, sondern zum Regelfall erklärt. Das etablierte .NET-Framework wird damit schon von der Wortwahl zum Sonderfall diskreditiert. Oder eben es werden gar nicht die notwendigen Features installiert (auch wenn alte Projekte natürlich laufen – das hängt ja nur am SDK und nicht den Vorlagen). Aber da mit ASP.NET Core einige Dinge in Hinsicht Datenbanken (Stichwort „ADO.NET Entity Data Model“) nicht gehen (oder ich habe es nur nicht rausbekommen, wie – aber wenn ich an den Klassendesigner denke, ist es für mich plausibel, dass das unter .NET Core aktuell nicht geht), brauche ich einfach die Framework-Variante und die integrierten Vorlagen und Assistenten.
Letztendlich schwillt Visual Studio über die ganzen verschiedenen SDK, Features, Tools und Bibliotheken so extrem an, dass nur noch ein Pfefferminzplätzchen notwendig erscheint, damit das aufgedunsene System platzt (um eine Assoziation zu Teil 6 aus Monty Pythons Meisterwerk „Der Sinn des Lebens“ mit der berühmten Szene mit Mr. Creosote zu bemühen).