visual una tipo studio standard resultado referencia puedo puede proyecto net librerias libreria iniciar framework directamente crear con clases clase biblioteca agregar c# asp.net asp.net-mvc asp.net-core

c# - una - no puedo agregar referencia en visual studio 2017



¿Por qué crear un proyecto de biblioteca de clases ASP.NET 5? (3)

Estoy tratando de averiguar qué tiene que ver un "C # Biblioteca de clases ASP.NET" (vNext) con ASP.NET. ¿Por qué crear un proyecto con esta plantilla en lugar de solo un proyecto normal de "Biblioteca de clases" de C #?

Me gustan las nuevas características, como el archivo project.json en lugar del archivo .csproj, etc., pero no parece correcto crear una biblioteca de clases "ASP.NET" cuando el proyecto no tiene nada que ver con ASP.NET o IIS, etc. Es solo un proyecto para la capa de lógica de negocios. Un nuevo sitio web WebApi ASP.NET eventualmente hará referencia a este proyecto, pero eso no es relevante en este momento.

¿Está mal nombrado? ¿Debería llamarse "vNext Class Library" y no usar un ícono que parece una aplicación web?


¿Por qué crear un proyecto de biblioteca de clases ASP.NET 5?

Hay varios beneficios de los proyectos de biblioteca de clases ASP.NET 5 ( .kproj) sobre los proyectos de biblioteca de clases ( .csproj):

  1. Las bibliotecas de clases ASP.NET 5 admiten fácilmente proyectos de compilación cruzada para múltiples destinos, como aspnet50 , aspnetcore50 , net45 y otras variaciones de bibliotecas de clases portátiles. Esto incluye un amplio soporte de Visual Studio para Intellisense para notificarle qué API están disponibles para qué objetivos.
  2. Los paquetes de NuGet se crean automáticamente, lo cual es algo muy común que hacer con las bibliotecas de clases.
  3. Mejor productividad cuando se trata de cosas como actualizar automáticamente el Explorador de soluciones cuando cambia el sistema de archivos. Menos conflictos en el control de origen al intentar fusionar cambios conflictivos en el archivo * .csproj.
  4. Se puede compilar multiplataforma (en parte porque no depende de MSBuild)

Puede hacer referencia a un proyecto * .csproj desde un proyecto * .kproj (esto se hizo mucho más fácil con la nueva vista previa de Visual Studio 2015), pero siempre fue posible con algunos pasos manuales.

¿Por qué el nombre tiene "ASP.NET"?

En cuanto a los nombres, es una reliquia de la historia que pronto se abordará. El nuevo tipo de proyecto es útil mucho más allá de las aplicaciones ASP.NET 5. Espere ver nuevos nombres en una vista previa futura de Visual Studio:

  • Aplicación de consola .NET (multiplataforma)
  • Biblioteca de clases .NET (multiplataforma)

Actualización 13/05/2015

Con el lanzamiento de Visual Studio 2015 RC , puede ver los nombres de plantilla de proyecto actualizados:

  • Biblioteca de clases (paquete)
  • Aplicación de consola (paquete)

Estos usan el archivo project.json y el .NET Execution Environment (DNX) para construir, ejecutar y empaquetar (en un paquete NuGet) el proyecto.

Estas plantillas de proyecto continúan apareciendo en el cuadro de diálogo Nuevo proyecto en el nodo "Web", pero ahora también se muestran en el nodo principal "Visual C #".


Esta es una observación interesante, la plantilla actual generará una biblioteca de clases compatible con el tiempo de ejecución de ASP.NET 5. No obtienes eso de la biblioteca de clase C # normal.

Presenté el siguiente problema para seguir esta pregunta de diseño: https://github.com/aspnet/Home/issues/281


Por lo que entiendo, un beneficio es que el producto final del proyecto de biblioteca de clases ASP.NET 5 es un paquete NuGet (en lugar de solo el ensamblado .dll).

Puede generar el paquete NuGet haciendo clic derecho en el proyecto en Visual Studio 2015 y eligiendo la opción "Publicar ...". O puede usar el "paquete KPM" en la línea de comando.

Además, tiene la capacidad de usar el tiempo de ejecución de ASP.NET 5 Core para que su biblioteca pueda ejecutar multiplataforma.