Neues in ASP.NET 5, Teil 3: Änderungen in Visual Studio 2015

Auch in seiner Entwicklungsumgebung öffnet sich Microsoft. In Visual Studio 2015 findet man in ASP.NET-5-Webprojekten eine Menge Open-Source-Werkzeuge.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 15 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Auch in seiner Entwicklungsumgebung öffnet sich Microsoft. In Visual Studio 2015 findet man in ASP.NET-5-Webprojekten eine Menge Open-Source-Werkzeuge. Selbst bei der Projektstruktur verabschieden sich die Redmonder von Traditionen.

Bereits beim Anlegen eines Webprojekts in Visual Studio 2015 fallen einige Merkwürdigkeiten auf. Als Erstes ist kurios, dass es im Dialog "New Project" unter Visual C# | Web beziehungsweise Visual Basic | Web (s. Abb. 1) nicht nur einen Eintrag "Web Application" gibt, hinter dem sich dann aber ein weiterer Dialog mit mehreren Projektvorlagen verbirgt, sondern darüber hinaus auch zwei neue Einträge "Class Library" und "Console Application".

Erster Schritt beim Anlegen eines neuen Webprojekts (Abb. 1)

Dass im Dialog aus Abbildung 1 Klassenbibliotheken und Konsolenanwendungen erscheinen, liegt daran, dass Microsoft im Zuge der Generalüberholung von ASP.NET eine neue Form plattformneutraler Klassenbibliotheken und Konsolenanwendungen geschaffen hat. Sie laufen – genauso wie ASP.NET-5-Webanwendungen – nicht direkt auf einer bestimmten .NET-Framework-Version, sondern auf einer Zwischenschicht, die Microsoft .NET Execution Environment (DNX) nennt (s. Abb. 2).

ASP.NET 5.0 läuft auf .NET 4.6, Mono (ab Version 3.4.1) und .NET Core 5.0 (Abb. 2).

DNX abstrahiert von den Unterschieden verschiedener .NET-Varianten auf diversen Plattformen. Dafür stellt DNX Entwicklerwerkzeuge und eine Ausführungsumgebung zur Laufzeit bereit.

Konsolenanwendungen in ASP.NET 5 erzeugen keine direkt ausführbaren Dateien ([.exe), sondern DLLs, die mit dem Werkzeug DNX(.exe) zu starten sind. Gedacht sind diese Konsolenanwendung primär für Web-Worker-Prozesse in Microsofts Cloud-Umgebung Azure. Klassenbibliotheken in ASP.NET 5 lassen sich von Konsolen- und Webanwendungen referenzieren. Sie erfüllen die gleiche Wiederverwendungsfunktion wie klassische .NET-Klassenbibliotheken.

Mehr Infos

Neues in ASP.NET 5

Ob beziehungsweise wann DNX und seine speziellen Projekte für andere Anwendungsarten allein als Webprojekte verfügbar sein wird, ist noch unklar. Vorerst sind die beiden Projektvorlagen unter "Web" richtig aufgehoben. Die Symbole dieser Projektvorlagen zeigen allerdings in Visual Studio 2015 noch "vNext". Das bis zum Erscheinen von Visual Studio 2015 noch zu ändern, hat Microsoft jedoch angekündigt.

Im Dialog zum Anlegen von Webprojekten in Abbildung 1 fällt auch auf, dass man nur zwischen .NET Framework 2.0 bis .NET Framework 4.6 wählen kann. In dem dafür angelegten Auswahlfeld gibt es verwirrenderweise kein .NET Core 5.0. An dieser Stelle muss man wissen, dass alle ASP.NET-5-Projekte standardmäßig so eingestellt sind, dass sie sowohl auf .NET Framework 4.6 als auch auf .NET Core 5.0 kompilieren. Hier ist also die Version 4.6 erst mal die richtige Wahl.

Wenn man nun im ersten Dialog ASP.NET Web Application wählt, folgt ein zweiter Auswahldialog (s. Abb. 3). Hier hat man nun die Wahl zwischen ASP.NET 4.6 Templates und ASP.NET 5 Preview Templates. Unter Ersteren findet man die Projektvorlagen, die es schon in Visual Studio 2013 gab, also für ASP.NET Web Forms 4.x, ASP.NET MVC 5.x und ASP.NET Web API 2.x – mit der Option, diese drei namensähnlichen, aber doch verschiedenen Techniken in einem einzigen Projekt mischen zu können. Diesen Mix ermöglicht Microsoft seit Visual Studio 2013 unter dem Marketingbegriff "One ASP.NET".

Ein tatsächliches "One ASP.NET" gibt es aber erst in ASP.NET 5.0, denn hier sind ASP.NET MVC und ASP.NET Web API wirklich ein Framework. Der neue Oberbegriff ist "ASP.NET MVC 6". Ein Controller in diesem liefert entweder eine View (also eine HTML-Seite) oder JSON-Daten für eine Web API. In beiden Fällen ist die Basisklasse Microsoft.AspNet.Mvc.Controller. Die Auswahl zwischen Web API und Web Site im zweiten Dialog aus Abbildung 3 entscheidet nur, ob man ein Muster für einen Controller bekommt, der eine View liefert, oder Daten. Wünschenswert wäre eine Projektvorlage, die beides demonstriert; aber diese gibt es bedauerlicherweise noch nicht.

Zweiter Schritt beim Anlegen eines neuen Webprojekts (Abb. 3)