webentwicklung-frage-antwort-db.com.de

Warum ein ASP.NET 5-Klassenbibliotheksprojekt erstellen?

Ich versuche herauszufinden, was ein "ASP.NET 5 Class Library" (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, z. B. die Datei project.json anstelle der Datei .csproj usw., aber es scheint nicht richtig, eine "ASP.NET" -Klassenbibliothek zu erstellen, wenn das Projekt nichts mit ASP.NET oder IIS usw. 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 an dieser Stelle nicht relevant.

Ist es nur schlecht benannt? Sollte es einfach "vNext Class Library" heißen und kein Symbol verwenden, das wie eine Web-App aussieht?

97
mkaj

Warum ein ASP.NET 5-Klassenbibliotheksprojekt erstellen?

Es gibt eine Reihe von Vorteilen von ASP.NET 5-Klassenbibliotheksprojekten (. Kproj) gegenüber Klassenbibliotheksprojekten (. Csproj):

  1. ASP.NET 5-Klassenbibliotheken unterstützen problemlos das Kompilieren von Projekten mit mehreren Zielen, z. B. aspnet50, aspnetcore50, net45 und verschiedene andere tragbare Klassenbibliotheksvarianten. Dazu gehört die umfassende Unterstützung von Visual Studio für Intellisense, mit der Sie benachrichtigt werden, welche APIs für welche Ziele verfügbar sind.
  2. NuGet-Pakete werden automatisch erstellt, was bei Klassenbibliotheken sehr häufig vorkommt.
  3. Höhere Produktivität, wenn beispielsweise der Solution Explorer automatisch aktualisiert wird, wenn sich das Dateisystem ändert. Weniger Konflikte in der Quellcodeverwaltung beim Versuch, widersprüchliche Änderungen in der * .csproj-Datei zusammenzuführen.
  4. Kann plattformübergreifend kompiliert werden (teilweise, weil es nicht von MSBuild abhängt)

Sie können auf ein * .csproj-Projekt aus einem * .kproj-Projekt verweisen (dies wurde durch die neue Vorschau von Visual Studio 2015 erheblich vereinfacht), war jedoch mit einigen manuellen Schritten immer möglich.

Warum enthält der Name "ASP.NET"?

Was die Namen betrifft, handelt es sich um ein Relikt der Geschichte, auf das bald eingegangen wird. Der neue Projekttyp ist weit über ASP.NET 5-Anwendungen hinaus nützlich. Erwarten Sie, in einer zukünftigen Vorschau von Visual Studio neue Namen zu sehen:

  • .NET-Konsolenanwendung (plattformübergreifend)
  • .NET-Klassenbibliothek (plattformübergreifend)

Update 13.05.2015

Mit dem Release von Visual Studio 2015 RC können Sie die aktualisierten Projektvorlagennamen anzeigen:

  • Klassenbibliothek (Paket)
  • Konsolenanwendung (Paket)

Diese verwenden das 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 jedoch auch im Hauptknoten "Visual C #".

VS2015 RC Class Lib / Console App templates

100
Eilon

Dies ist eine interessante Beobachtung. Mit der aktuellen Vorlage wird eine Klassenbibliothek generiert, die mit der ASP.NET 5-Laufzeit kompatibel ist. Sie erhalten das nicht aus der normalen C # -Klassenbibliothek.

Ich habe die folgende Ausgabe eingereicht, um diese Entwurfsfrage zu verfolgen - https://github.com/aspnet/Home/issues/281

10
Yishai Galatzer

Ich verstehe einen 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 in Visual Studio 2015 mit der rechten Maustaste auf das Projekt klicken und die Option "Veröffentlichen ..." auswählen. Oder Sie können "KPM Pack" in der Befehlszeile verwenden.

Außerdem können Sie die ASP.NET 5 Core-Laufzeitumgebung verwenden, damit Ihre Bibliothek plattformübergreifend ausgeführt werden kann.

3
Thomas Kadlec