Ich versuche herauszufinden, was ein "ASP.NET 5-Klassenbibliothek" (vNext) C # -Projekt mit ASP.NET zu tun hat. Warum ein Projekt mit dieser Vorlage erstellen und nicht nur ein reguläres C # -Projekt "Klassenbibliothek"?
Ich mag die neuen Funktionen wie die Datei project.json anstelle der Datei .csproj usw., aber es scheint nicht richtig, eine Klassenbibliothek "ASP.NET" zu erstellen, wenn das Projekt nichts mit ASP.NET oder IIS usw. zu tun hat Es ist nur ein Projekt für die Geschäftslogikschicht. Eine neue WebApi ASP.NET-Website wird möglicherweise auf dieses Projekt verweisen, dies ist jedoch derzeit nicht relevant.
Ist es nur schlecht benannt? Sollte es nur "vNext Class Library" heißen und kein Symbol verwenden, das wie eine Web-App aussieht?
Antworten:
Warum ein ASP.NET 5-Klassenbibliotheksprojekt erstellen?
Es gibt eine Reihe von Vorteilen von ASP.NET 5-Klassenbibliotheksprojekten ( .kproj) gegenüber Klassenbibliotheksprojekten ( .csproj):
aspnet50
,aspnetcore50
,net45
und verschiedene andere tragbare Klassenbibliothek Variationen. Dies umfasst eine umfassende Visual Studio-Unterstützung für Intellisense, mit der Sie benachrichtigt werden, welche APIs für welche Ziele verfügbar sind.Sie können ein * .csproj-Projekt aus einem * .kproj-Projekt referenzieren (dies wurde mit der neuen Vorschau von Visual Studio 2015 erheblich vereinfacht), dies war jedoch immer mit einigen manuellen Schritten möglich.
Warum enthält der Name "ASP.NET"?
Was die Namen angeht, handelt es sich um ein Relikt der Geschichte, das bald angesprochen wird. Der neue Projekttyp ist weit über ASP.NET 5-Anwendungen hinaus nützlich. Erwarten Sie neue Namen in einer zukünftigen Vorschau von Visual Studio:
Update 13.05.2015
Mit der Veröffentlichung von Visual Studio 2015 RC können Sie die aktualisierten Projektvorlagennamen anzeigen:
Diese verwenden die
project.json
Datei und die .NET-Ausführungsumgebung (DNX), um das Projekt zu erstellen, auszuführen und (in ein NuGet-Paket) zu packen.Diese Projektvorlagen werden weiterhin im Dialogfeld "Neues Projekt" unter dem Knoten "Web" angezeigt, jetzt aber auch im Hauptknoten "Visual C #".
quelle
Dies ist eine interessante Beobachtung. Die aktuelle Vorlage generiert eine Klassenbibliothek, die mit der ASP.NET 5-Laufzeit kompatibel ist. Sie erhalten das nicht aus der normalen C # -Klassenbibliothek.
Ich habe das folgende Problem eingereicht, um diese Entwurfsfrage zu verfolgen: https://github.com/aspnet/Home/issues/281
quelle
Nach meinem Verständnis besteht ein Vorteil darin, dass das Endprodukt des ASP.NET 5-Klassenbibliotheksprojekts ein NuGet-Paket ist (und nicht nur die DLL-Assembly).
Sie können das NuGet-Paket generieren, indem Sie mit der rechten Maustaste auf das Projekt in Visual Studio 2015 klicken und die Option "Veröffentlichen ..." auswählen. Oder Sie können "KPM Pack" in der Befehlszeile verwenden.
Sie können auch die ASP.NET 5 Core-Laufzeit verwenden, damit Ihre Bibliothek plattformübergreifend ausgeführt werden kann.
quelle