Introducción a proyectos y soluciones
En este artículo introductorio se explica qué significa crear una solución y un proyecto en Visual Studio. Una solución es un contenedor para organizar uno o más proyectos de código relacionados, como un proyecto de biblioteca de clases y un proyecto de prueba correspondiente.
Como ejercicio educativo para comprender el concepto de proyecto, creará una solución y un proyecto desde cero. Normalmente, usaría plantillas de proyecto de Visual Studio para crear proyectos. También examinará las propiedades de un proyecto y algunos de los archivos que puede contener y creará una referencia de un proyecto a otro.
Nota
El desarrollo de aplicaciones en Visual Studio no requiere soluciones ni proyectos. Basta con abrir una carpeta que contenga código para empezar a codificar, compilar y depurar. Por ejemplo, un repositorio clonado de GitHub podría no contener soluciones o proyectos de Visual Studio. Para obtener más información, vea Desarrollo de código en Visual Studio sin proyectos o soluciones.
Si todavía no ha instalado Visual Studio 2019, vaya a la página Descargas de Visual Studio para instalarlo de forma gratuita.
Si todavía no ha instalado Visual Studio, vaya a la página de descargas de Visual Studio para instalarlo de forma gratuita.
Soluciones y proyectos
En Visual Studio, una solución no es una "respuesta", sino simplemente un contenedor que Visual Studio usa para organizar uno o más proyectos relacionados. Cuando se abre una solución, Visual Studio carga automáticamente todos los proyectos que contiene la solución.
Crear una solución
Comience su periplo creando una solución vacía. Cuando se familiarice con Visual Studio, lo más probable es que no cree soluciones vacías con frecuencia. Al crear un proyecto, Visual Studio crea automáticamente una solución para este, a menos que ya haya una abierta.
Abra Visual Studio.
En la ventana de inicio, seleccione Crear un proyecto.
En la página Crear un proyecto, escriba solución en blanco en el cuadro de búsqueda, seleccione la plantilla Solución en blanco y luego Siguiente.
Sugerencia
Si tiene instaladas varias cargas de trabajo, es posible que la plantilla Solución en blanco no aparezca en la parte superior de la lista de resultados de la búsqueda. Pruebe a desplazarse hasta la sección Otros resultados basados en su búsqueda de la lista. Debería aparecer ahí.
Asígnele a la solución el nombre QuickSolution y seleccione Crear.
Aparece una solución en el Explorador de soluciones, en el lado derecho de la ventana de Visual Studio. Seguramente use el Explorador de soluciones a menudo para examinar el contenido de los proyectos.
Abra Visual Studio y, en la ventana de inicio, seleccione Crear un nuevo proyecto.
En la página Crear un nuevo proyecto, escriba solución en blanco en el cuadro de búsqueda, elija la plantilla Solución en blanco y, luego, seleccione Siguiente.
Sugerencia
Si tiene instaladas varias cargas de trabajo, es posible que la plantilla Solución en blanco no aparezca en la parte superior de la lista de resultados de la búsqueda. Pruebe a desplazarse por Otros resultados basados en su búsqueda para encontrar la plantilla.
En la página Configurar el nuevo proyecto, asigne a la solución el nombre QuickSolution y seleccione Crear.
La solución QuickSolution aparece en el Explorador de soluciones, en el lado derecho de la ventana de Visual Studio. Usará el Explorador de soluciones a menudo para examinar el contenido de los proyectos.
Agregar un proyecto
Ahora agregará su primer proyecto a la solución. Comience con un proyecto vacío y agregue los elementos que necesite.
En el menú contextual que aparece al hacer clic con el botón derecho en Solución "QuickSolution" en el Explorador de soluciones, seleccione Agregar>Nuevo proyecto.
Se abre un cuadro de diálogo de nombre Agregar un nuevo proyecto.
Escriba el texto vacío en el cuadro de búsqueda de la parte superior y luego seleccione C# en Lenguaje.
Seleccione la plantilla Proyecto vacío (.NET Framework) y luego Siguiente.
Asigne el nombre QuickDate al proyecto y seleccione Crear.
Un proyecto denominado QuickDate aparece debajo de la solución en el Explorador de soluciones. Actualmente solo contiene un archivo denominado App.config.
Nota
Si no ve la plantilla Proyecto vacío (.NET Framework) , debe instalar la carga de trabajo Desarrollo de escritorio de .NET de Visual Studio. Visual Studio usa la instalación basada en la carga de trabajo para instalar únicamente los componentes necesarios para el tipo de desarrollo que se lleva a cabo.
Una manera fácil de instalar una nueva carga de trabajo al crear un nuevo proyecto es seleccionar el vínculo Instalar más herramientas y características debajo del texto que indica Not finding what you’re looking for? (¿No encuentra lo que busca?). Una vez que se abra el Instalador de Visual Studio, seleccione la carga de trabajo Desarrollo de escritorio de .NET y luego haga clic en el botón Modificar.
Haga clic con el botón derecho en Solution 'QuickSolution' (Solución "QuickSolution") en el Explorador de soluciones y seleccione Agregar>Nuevo proyecto en el menú contextual.
En la página Agregar un nuevo proyecto, escriba vacío en el cuadro de búsqueda de la parte superior y seleccione C# en Todos los lenguajes.
Elija la plantilla Proyecto vacío (.NET Framework) de C# y, luego, seleccione Siguiente.
Nota
Visual Studio usa la instalación basada en la carga de trabajo para instalar únicamente los componentes necesarios para el tipo de desarrollo que se lleva a cabo. Si no ve la plantilla Proyecto vacío (.NET Framework) , tiene que instalar la carga de trabajo Desarrollo de escritorio de .NET de Visual Studio.
Una manera fácil de instalar una nueva carga de trabajo al crear un nuevo proyecto es seleccionar el vínculo Instalar más herramientas y características debajo del texto que indica Not finding what you’re looking for? (¿No encuentra lo que busca?). En el Instalador de Visual Studio, elija la carga de trabajo Desarrollo de escritorio de .NET y, luego, seleccione Modificar.
En la página Configurar el nuevo proyecto, asigne al proyecto el nombre QuickDate y seleccione Crear.
El proyecto QuickDate aparecerá debajo de la solución en el Explorador de soluciones. El proyecto contiene un nodo Referencias y un único archivo denominado App.config.
Agregar un elemento al proyecto
Agregue un archivo de código al proyecto vacío.
En el menú contextual que aparece al hacer clic con el botón derecho en el proyecto QuickDate en el Explorador de soluciones, seleccione Agregar>Nuevo elemento.
Se abrirá el cuadro de diálogo Agregar nuevo elemento. Seleccione Mostrar todas las plantillas si se abre el cuadro de diálogo en la vista compacta.
Expanda Elementos de Visual C# y seleccione Código. En el panel central, seleccione la plantilla de elemento Clase. En Nombre, escriba Calendar y seleccione Agregar.
Visual Studio agrega un archivo denominado Calendar.cs al proyecto. El fragmento .cs del final es la extensión de archivo que tienen los archivos de código de C#. El archivo Calendar.cs aparece en la jerarquía visual del proyecto en el Explorador de soluciones y se abre en el editor.
Reemplace el contenido del archivo Calendar.cs por el siguiente código:
using System; namespace QuickDate { internal class Calendar { static void Main(string[] args) { DateTime now = GetCurrentDate(); Console.WriteLine($"Today's date is {now}"); Console.ReadLine(); } internal static DateTime GetCurrentDate() { return DateTime.Now.Date; } } }
Aún no es necesario entender todo lo que hace el código. Presione CTRL+F5 para ejecutar la aplicación. Verá que la aplicación imprime la fecha del día actual en la ventana de la consola o de la salida estándar. Después, cierre la ventana de la consola.
Agregar un segundo proyecto
Las soluciones suelen contener más de un proyecto y, a menudo, estos proyectos se hacen referencia entre sí. Algunos proyectos de una solución pueden ser bibliotecas de clases; otros, aplicaciones ejecutables, y otros, proyectos de prueba unitaria o sitios web.
Para agregar un proyecto de prueba unitaria a la solución, empiece con una plantilla de proyecto para no tener que agregar otro archivo de código al proyecto.
En el menú contextual que aparece al hacer clic con el botón derecho en Solución "QuickSolution" en el Explorador de soluciones, seleccione Agregar>Nuevo proyecto.
En el cuadro de diálogo Agregar un nuevo proyecto, escriba el texto prueba unitaria en el cuadro de búsqueda de la parte superior y luego seleccione C# en Lenguaje.
Seleccione la plantilla de proyecto Proyecto de prueba unitaria para .NET Core y luego seleccione Siguiente.
Nota
A partir de la versión 16.9 de Visual Studio 2019, el nombre de la plantilla de proyecto MSTest cambió de Proyecto de prueba unitaria de MSTest (.NET Core) a Proyecto de prueba unitaria. En esta actualización se han modificado varios pasos de la creación del proyecto.
Asigne el nombre QuickTest al proyecto y seleccione Siguiente.
Elija la plataforma de destino recomendada (.NET Core 3.1) o .NET 5 y, a continuación, elija Crear.
Se agregará un segundo proyecto al Explorador de soluciones, mientras que un archivo denominado UnitTest1.cs se abre en el editor.
En el menú contextual que aparece al hacer clic con el botón derecho en Solución "QuickSolution" en el Explorador de soluciones, seleccione Agregar>Nuevo proyecto.
En el cuadro de diálogo Agregar un nuevo proyecto, escriba prueba unitaria en el cuadro de búsqueda de la parte superior y, luego, seleccione C# en Todos los lenguajes.
Elija la plantilla Proyecto de prueba unitaria (.NET Framework) de C# y seleccione Siguiente.
En la página Configurar el nuevo proyecto, asigne al proyecto el nombre QuickTest y seleccione Crear.
Visual Studio agrega el proyecto QuickTest al Explorador de soluciones y el archivo UnitTest1.cs se abre en el editor.
Agregar una referencia de proyecto
Usará el nuevo proyecto de prueba unitaria para probar el método en el proyecto QuickDate, por lo que debe agregar una referencia a QuickDate en el proyecto QuickTest. Al agregar la referencia, se crea una dependencia de compilación entre ambos proyectos, lo que significa que, al compilar la solución, QuickDate se compila antes que QuickTest.
Seleccione el nodo Dependencias en el proyecto QuickTest y, en el menú contextual que aparece al hacer clic con el botón derecho, seleccione Agregar referencia de proyecto.
Se abre el cuadro de diálogo Administrador de referencias.
En el panel izquierdo, expanda Proyectos y, después, seleccione Solución. En el panel central, active la casilla situada junto a QuickDate y luego seleccione Aceptar.
Se agrega una referencia al proyecto QuickDate.
En el Explorador de soluciones, haga clic con el botón derecho en el nodo Referencias del proyecto QuickTest y seleccione Agregar referencia en el menú contextual.
En el cuadro de diálogo Administrador de referencias, seleccione Proyectos. En el panel central, active la casilla situada junto a QuickDate y luego seleccione Aceptar.
Aparece una referencia al proyecto QuickDate en el proyecto QuickTest en el Explorador de soluciones.
Agregar código de prueba
Ahora, agregará código de prueba al archivo de código de prueba de C#. Reemplace el contenido del archivo UnitTest1.cs por el siguiente código:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace QuickTest { [TestClass] public class UnitTest1 { [TestMethod] public void TestGetCurrentDate() { Assert.AreEqual(DateTime.Now.Date, QuickDate.Calendar.GetCurrentDate()); } } }
Aparece una línea ondulada de color rojo debajo de algunas partes del código. Para solucionar este error, convierta el proyecto de prueba en un ensamblado de confianza para el proyecto QuickDate.
En el archivo Calendar.cs, agregue la siguiente instrucción using y el atributo InternalsVisibleToAttribute en la parte superior del archivo para resolver el error del proyecto de prueba.
using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("QuickTest")]
El código de Calendar.cs debería tener un aspecto similar al de esta captura de pantalla:
Ejecutar la prueba unitaria
Para comprobar que la prueba unitaria funciona, seleccione Probar>Ejecutar todas las pruebas en la barra de menús. Se abre la ventana Explorador de pruebas, donde debería ver que la prueba TestGetCurrentDate se supera.
Sugerencia
También puede abrir el Explorador de pruebas eligiendo Probar>Explorador de pruebas desde la barra de menús.
Propiedades de proyecto
La línea del archivo Calendar.cs que contiene el atributo InternalsVisibleToAttribute hace referencia al nombre de ensamblado o al nombre de archivo del proyecto QuickTest. El nombre del ensamblado no siempre es el mismo que el nombre del proyecto. Para averiguar el nombre del ensamblado de un proyecto, use las propiedades del proyecto. Las páginas de propiedades contienen varios valores para el proyecto.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto QuickTest y seleccione Propiedades, o bien seleccione el proyecto y presione Alt+ENTRAR.
Las páginas de propiedades del proyecto se abren en la pestaña Aplicación. El nombre del ensamblado del proyecto QuickTest es, efectivamente, QuickTest.
Si quiere, puede cambiar el nombre aquí. Al compilar el proyecto de prueba, el nombre del archivo binario resultante cambia de QuickTest.dll a <NombreNuevo>.dll.
Examine algunas de las demás pestañas de las páginas de propiedades del proyecto, como Compilar y Depurar. Estas pestañas son diferentes para los distintos tipos de proyectos.