J'essaie de comprendre le lien entre un projet C # "ASP.NET 5 Class Library" (vNext) et ASP.NET. Pourquoi créer un projet avec ce modèle plutôt qu’un simple projet "Class Library" C #?
J'aime les nouvelles fonctionnalités, telles que le fichier project.json plutôt que le fichier .csproj, etc., mais il ne semble pas correct de créer une bibliothèque de classes "ASP.NET" lorsque le projet n'a rien à voir avec ASP.NET ou IIS etc. C'est simplement un projet pour la couche de logique applicative. Un nouveau site Web WebApi ASP.NET fera éventuellement référence à ce projet, mais ce n'est pas pertinent pour le moment.
Est-ce juste mal nommé? Devrait-il simplement s'appeler "Bibliothèque de classes vNext" et ne pas utiliser une icône qui ressemble à une application Web?
Les projets de bibliothèque de classes ASP.NET 5 présentent des avantages (. Kproj) par rapport aux projets de bibliothèque de classes (. Csproj):
aspnet50
, aspnetcore50
, net45
, et diverses autres variantes de bibliothèques de classes portables. Cela inclut la prise en charge enrichie par Visual Studio d'Intellisense pour vous informer des API disponibles pour quelles cibles.Vous pouvez référencer un projet * .csproj à partir d'un projet * .kproj (la nouvelle prévisualisation de Visual Studio 2015 l'a rendu beaucoup plus simple), mais cela a toujours été possible avec certaines étapes manuelles.
En ce qui concerne les noms, il s'agit d'un vestige de l'histoire qui sera bientôt abordé. Le nouveau type de projet est utile bien au-delà des applications ASP.NET 5. Attendez-vous à voir de nouveaux noms dans un futur aperçu de Visual Studio:
Avec la version de Visual Studio 2015 RC , vous pouvez voir les noms de modèle de projet mis à jour:
Ceux-ci utilisent le project.json
et le DNX (.NET Execution Environment) pour générer, exécuter et mettre en package (dans un package NuGet) le projet.
Ces modèles de projet continuent de s'afficher dans la boîte de dialogue Nouveau projet sous le nœud "Web", mais également dans le nœud principal "Visual C #".
Ceci est une observation intéressante, le modèle actuel générera une bibliothèque de classes compatible avec le runtime ASP.NET 5. Vous ne l'obtenez pas dans la bibliothèque normale de la classe C #.
J'ai classé le problème suivant pour suivre cette question de conception - https://github.com/aspnet/Home/issues/281
D'après ce que j'ai compris, l'un des avantages est que le produit final du projet ASP.NET 5 Class Library est un package NuGet (plutôt que l'assembly .dll).
Vous pouvez générer le package NuGet en cliquant avec le bouton droit de la souris sur le projet dans Visual Studio 2015 et en choisissant l'option "Publier ...". Ou vous pouvez utiliser "KPM Pack" sur la ligne de commande.
En outre, vous avez la possibilité d'utiliser le runtime ASP.NET 5 Core pour que votre bibliothèque puisse exécuter plusieurs plates-formes.