J'essaie de comprendre ce qu'un projet C # «ASP.NET 5 Class Library» (vNext) a à voir avec ASP.NET. Pourquoi créer un projet avec ce modèle plutôt qu'un simple projet "Bibliothèque de classes" 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 juste un projet pour la couche de logique métier. Un nouveau site Web WebApi ASP.NET fera éventuellement référence à ce projet, mais ce n'est pas pertinent à ce stade.
Est-ce juste mal nommé? Doit-il simplement s'appeler "Bibliothèque de classes vNext" et ne pas utiliser une icône qui ressemble à une application Web?
Réponses:
Pourquoi créer un projet de bibliothèque de classes ASP.NET 5?
Il existe un certain nombre d'avantages des projets de bibliothèque de classes ASP.NET 5 ( .kproj) par rapport aux projets de bibliothèque de classes ( .csproj):
aspnet50
,aspnetcore50
,net45
et d'autres variations de bibliothèque de classe portable. Cela inclut une prise en charge riche de Visual Studio pour Intellisense afin de vous informer des API disponibles pour quelles cibles.Vous pouvez référencer un projet * .csproj à partir d'un projet * .kproj (cela a été rendu beaucoup plus facile avec le nouvel aperçu de Visual Studio 2015), mais cela a toujours été possible avec quelques étapes manuelles.
Pourquoi le nom contient-il "ASP.NET"?
En ce qui concerne les noms, c'est une relique de l'histoire qui sera bientôt abordée. 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:
Mise à jour 13/05/2015
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
fichier et l'environnement d'exécution .NET (DNX) pour générer, exécuter et empaqueter (dans un package NuGet) le projet.Ces modèles de projet continuent à s'afficher dans la boîte de dialogue Nouveau projet sous le nœud "Web", mais s'affichent désormais également dans le nœud principal "Visual C #".
la source
C'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 n'obtenez pas cela à partir de la bibliothèque de classes C # normale.
J'ai déposé le problème suivant pour suivre cette question de conception - https://github.com/aspnet/Home/issues/281
la source
D'après ce que je comprends, un avantage est que le produit final du projet de bibliothèque de classes ASP.NET 5 est un package NuGet (plutôt que simplement l'assembly .dll).
Vous pouvez générer le package NuGet en cliquant avec le bouton droit 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 afin que votre bibliothèque puisse s'exécuter sur plusieurs plates-formes.
la source