Está en la página 1de 38

Table of Contents

Introducción
Introducción al lenguaje C# y .NET Framework
Compilación de una aplicación Hola mundo en C# con .NET Core en Visual Studio
2017
Depuración de la aplicación Hola a todos en C# con Visual Studio 2017
Publicación de la aplicación Hola mundo con Visual Studio 2017
Creación de una biblioteca de clases con C# y .NET Core en Visual Studio 2017
Prueba de una biblioteca de clases con .NET Core en Visual Studio 2017
Consumo de una biblioteca de clases con .NET Core en Visual Studio 2017
Introducción a C# y Visual Studio Code
Introducción a C#
11/01/2018 • 4 min to read • Edit Online

Esta sección proporciona breves y sencillos tutoriales simples que permiten compilar una aplicación con rapidez
mediante C# y .NET Core. Incluye temas de introducción a Visual Studio 2017 y Visual Studio Code. Puede crear
una aplicación Hola mundo sencilla o, si tiene Visual Studio 2017, una biblioteca de clases sencilla que se puede
utilizar con otras aplicaciones.
Los siguientes temas se encuentran disponibles:
Introducción al lenguaje C# y .NET Framework
Proporciona información general sobre el lenguaje C# y .NET.
Compilación de una aplicación Hola mundo en C# con .NET Core en Visual Studio 2017
Visual Studio 2017, la última versión de Visual Studio, permite codificar, compilar, ejecutar, depurar, generar
perfiles y publicar aplicaciones para Windows desde un entorno de desarrollo integrado.
El tema le permite crear y ejecutar una aplicación Hola mundo sencilla y, a continuación, modificarla para
ejecutar una aplicación Hola mundo algo más interactiva. Una vez que haya terminado de generar y ejecutar
la aplicación, también puede aprender cómo depurarla y publicarla para que se pueda ejecutar en cualquier
plataforma compatible con .NET Core.
Creación de una biblioteca de clases con C# y .NET Core en Visual Studio 2017
Una biblioteca de clases permite definir los tipos y miembros de tipo que se pueden llamar desde otra
aplicación. Este tema le permite crear una biblioteca de clases con un único método que determina si una
cadena comienza con un carácter en mayúscula. Una vez que haya terminado de compilar la biblioteca,
puede desarrollar una prueba unitaria para asegurarse de que funciona según lo previsto y, a continuación,
puede hacer que esté disponible para aplicaciones que desean usarla.
Introducción a C# y Visual Studio Code
Visual Studio Code es un editor de código gratuito optimizado para la compilación y depuración de
aplicaciones web y en la nube modernas. Es compatible con IntelliSense y está disponible para Windows,
macOS y Linux.
En este tema se muestra cómo crear y ejecutar una aplicación Hola mundo sencilla con Visual Studio Code y
.NET Core.
Otros recursos para los programadores de Visual C#
Proporciona vínculos a sitios Web y grupos de noticias con los que le será más fácil encontrar la solución a
los problemas más comunes.

Secciones relacionadas
Usar el entorno de desarrollo de Visual C#
Proporciona una guía para utilizar el entorno de desarrollo integrado de Visual C#.
Guía de programación de C#
Proporciona información sobre conceptos de programación en C# y describe cómo realizar diversas tareas
en C#.
Referencia de C#
Proporciona información de referencia detallada sobre palabras clave, operadores, directivas de
preprocesador, opciones del compilador y errores del compilador y advertencias de C#.
Ejemplos de Visual Studio
Proporciona información sobre cómo obtener acceso a los ejemplos en línea.
Tutoriales
Proporciona vínculos a los tutoriales de programación que usan C# y una breve descripción de cada uno.

Vea también
Introducción a Visual C# y Visual Basic con Visual Studio
Introducción al lenguaje C# y .NET Framework
11/01/2018 • 11 min to read • Edit Online

C# es un lenguaje elegante, con seguridad de tipos y orientado a objetos, que permite a los desarrolladores crear
una gran variedad de aplicaciones seguras y sólidas que se ejecutan en .NET Framework .NET. Puede usar C# para
crear aplicaciones cliente de Windows, servicios web XML, componentes distribuidos, aplicaciones cliente-servidor,
aplicaciones de base de datos y muchas, muchas más cosas. Visual C# proporciona un editor de código avanzado,
prácticos diseñadores de interfaz de usuario, un depurador integrado y muchas otras herramientas que facilitan el
desarrollo de aplicaciones basadas en el lenguaje C# y .NET Framework.

NOTA
En la documentación de Visual C# se supone que comprende los conceptos básicos de programación. Si es un principiante,
puede que desee explorar Visual C# Express, que está disponible en la Web. También puede aprovechar los libros y recursos
web sobre C# para aprender sobre habilidades prácticas de programación.

Lenguaje C#
La sintaxis de C# es muy expresiva, pero también sencilla y fácil de aprender. Cualquier persona familiarizada con
C, C++ o Java, reconocerá al instante la sintaxis de llaves de C#. Los desarrolladores que conocen cualquiera de
estos lenguajes puede empezar normalmente a trabajar en C# de forma productiva en un espacio muy corto de
tiempo. La sintaxis de C# simplifica muchas de las complejidades de C++ y proporciona características eficaces,
como tipos de valor que aceptan valores NULL, enumeraciones, delegados, expresiones lambda y acceso directo a
memoria, que no se encuentran en Java. C# admite métodos y tipo genéricos, que proporcionan una mayor
seguridad de tipos y rendimiento, e iteradores, que permiten a los implementadores de clases de colecciones
definir comportamientos de iteración personalizados que son fáciles de usar por el código de cliente. Las
expresiones Language-Integrated Query (LINQ) convierten la consulta fuertemente tipada en una construcción de
lenguaje de primera clase.
En cuanto lenguaje orientado a objetos, C# admite los conceptos de encapsulación, herencia y polimorfismo. Todas
las variables y métodos, incluido el método Main , el punto de entrada de la aplicación, se encapsulan dentro de las
definiciones de clase. Una clase puede heredar directamente de una clase primaria, pero puede implementar
cualquier número de interfaces. Los métodos que invalidan los métodos virtuales en una clase primaria requieren
la palabra clave override como una manera de evitar redefiniciones accidentales. En C#, un struct es como una
clase sencilla; es un tipo asignado en la pila que puede implementar interfaces pero que no admite herencia.
Además de estos principios básicos orientados a objetos, C# facilita el desarrollo de componentes de software
mediante varias construcciones de lenguaje innovadoras, incluidas las siguientes:
Signaturas de método encapsulado llamadas delegados, que permiten notificaciones de eventos con
seguridad de tipos.
Propiedades, que actúan como descriptores de acceso para variables miembro privadas.
Atributos, que proporcionan metadatos declarativos sobre tipos en tiempo de ejecución.
Comentarios de doc.umentación XML insertados
Language-Integrated Query (LINQ) que proporciona funcionalidades de consulta integradas en diversos
orígenes de datos.
Si tiene que interactuar con otro software de Windows, como objetos COM o archivos DLL nativos de Win32,
puede hacerlo en C# mediante un proceso denominado "Interoperabilidad". La interoperabilidad permite que los
programas de C# hagan casi todo lo que puede hacer una aplicación C++ nativa. C# admite incluso el uso de
punteros y el concepto de código "no seguro" en los casos en los que el acceso directo a memoria es
absolutamente crítico.
El proceso de compilación de C# es simple en comparación con C y C++ y más flexible que en Java. No hay ningún
archivo de encabezado independiente y ningún requisito de declaración de métodos y tipos en un orden en
particular. Un archivo de código fuente de C# puede definir cualquier número de clases, structs, interfaces y
eventos.
Los siguientes son recursos adicionales de C#:
Para obtener una buena introducción general al lenguaje, consulte el capítulo 1 de la especificación del
lenguaje C#.
Para más información sobre aspectos específicos del lenguaje C#, consulte la referencia de C#.
Para más información sobre LINQ, consulte LINQ (Language-Integrated Query).

Arquitectura de la plataforma .NET Framework


Los programas de C# se ejecutan en .NET Framework, un componente integral de Windows que incluye un sistema
de ejecución virtual llamado Common Language Runtime (CLR) y un conjunto unificado de bibliotecas de clases. El
CLR es la implementación comercial de Microsoft de Common Language Infrastructure (CLI), un estándar
internacional que es la base para la creación de entornos de ejecución y desarrollo en los que los lenguajes y las
bibliotecas trabajan juntos sin problemas.
El código fuente escrito en C# se compila en un lenguaje intermedio (IL) que guarda conformidad con la
especificación de CLI. El código y los recursos IL, como mapas de bits y cadenas, se almacenan en disco en un
archivo ejecutable denominado ensamblado, normalmente con la extensión .exe o .dll. Un ensamblado contiene un
manifiesto que proporciona información sobre los tipos, la versión, la referencia cultural y los requisitos de
seguridad del ensamblado.
Cuando se ejecuta el programa de C#, el ensamblado se carga en el CLR, el cual podría realizar diversas acciones en
función de la información en el manifiesto. Luego, si se cumplen los requisitos de seguridad, el CLR realiza la
compilación Just in time (JIT) para convertir el código IL en instrucciones máquina nativas. El CLR también
proporciona otros servicios relacionados con la recolección de elementos no utilizados, el control de excepciones y
la administración de recursos. El código que se ejecuta en el CLR se conoce a veces como "código administrado", a
diferencia del "código no administrado" que se compila en lenguaje de máquina nativo destinado a un sistema
específico. En el siguiente diagrama se ilustran las relaciones de tiempo de compilación y tiempo de ejecución de
archivos de código fuente de C#, las bibliotecas de clases de .NET Framework, los ensamblados y el CLR.
la interoperabilidad entre lenguajes es una característica principal de .NET Framework. Debido a que el código IL
generado por el compilador de C# cumple la especificación de tipo común (CTS), este código puede interactuar con
el código generado a partir de las versiones .NET de Visual Basic, Visual C++ o cualquiera de los más de 20
lenguajes compatibles con CTS. Un solo ensamblado puede contener varios módulos escritos en diferentes
lenguajes .NET y los tipos se pueden hacer referencia mutuamente igual que si estuvieran escritos en el mismo
lenguaje.
Además de los servicios de tiempo de ejecución, .NET Framework también incluye una amplia biblioteca de más de
4000 clases organizadas en espacios de nombres que proporcionan una gran variedad de funciones útiles para
todo, desde la entrada y la salida de archivos, pasando por la manipulación de cadenas para el análisis XML, hasta
controles de formularios Windows Forms. La aplicación de C# típica usa la biblioteca de clases .NET Framework de
forma extensa para administrar tareas comunes de infraestructura.
Para más información sobre .NET Framework, consulte Introducción a Microsoft .NET Framework.

Vea también
C# Introducción a Visual C# y Visual Basic
Compilación de una aplicación Hola a todos en C#
con .NET Core en Visual Studio 2017
11/01/2018 • 8 min to read • Edit Online

En este tema se proporciona una introducción detallada para compilar, depurar y publicar una sencilla aplicación
de consola .NET Core con C# en Visual Studio 2017. Visual Studio 2017 proporciona un entorno de desarrollo
completo para la compilación de aplicaciones .NET Core. Siempre que la aplicación no tenga dependencias
específicas de la plataforma, la aplicación puede ejecutarse en cualquier plataforma que tenga como destino .NET
Core y en cualquier sistema que tenga instalado .NET Core.

Requisitos previos
Visual Studio de 2017 con la carga de trabajo "Desarrollo multiplataforma de .NET Core" instalada. Puede
desarrollar su aplicación con .NET Core 1.1 o .NET Core 2.0.
Para obtener más información, vea el tema Requisitos previos para .NET Core en Windows.

Una aplicación Hola mundo sencilla


Comience creando una aplicación de consola "Hola mundo" sencilla. Siga estos pasos:
1. Inicie Visual Studio 2017. Seleccione Archivo > Nuevo > Proyecto de la barra de menús. En el cuadro de
diálogo Nuevo proyecto, seleccione el nodo **Visual C#* seguido del nodo .NET Core. Después, seleccione
la plantilla del proyecto Aplicación de consola (.NET Core). En el cuadro de texto Nombre, escriba "Hola
mundo". Seleccione el botón Aceptar.

2. Visual Studio usa la plantilla para crear el proyecto. La plantilla de aplicación de consola de C# para .NET
Core define automáticamente una clase, Program , con un único método, Main , que adopta una matriz
String como argumento. Main es el punto de entrada de la aplicación, el método que se llama
automáticamente mediante el tiempo de ejecución cuando inicia la aplicación. Los argumentos de línea de
comandos proporcionados cuando se inicia la aplicación están disponibles en la matriz args.
La plantilla crea una aplicación "Hola mundo" sencilla. Llama al método Console.WriteLine(String) para
mostrar la cadena literal "Hola mundo" en la ventana de la consola. Al seleccionar el botón HelloWorld con
la flecha verde en la barra de herramientas, puede ejecutar el programa en modo de depuración. Si lo hace,
la ventana de la consola se mostrará durante poco tiempo antes de cerrarse. Esto ocurre porque el método
Main finaliza y la aplicación termina en cuanto se ejecuta la única instrucción en el método Main .

3. Para que la aplicación se pause antes de que se cierre la ventana de la consola, agregue el siguiente código
inmediatamente después de la llamada al método Console.WriteLine(String):

Console.Write("Press any key to continue...");


Console.ReadKey(true);

Este código pide al usuario que presione cualquier tecla y, a continuación, detiene el programa hasta que se
presiona una tecla.
4. En la barra de menús, seleccione Compilar > Compilar solución. De esta forma, el programa se compila
en un lenguaje intermedio (IL) que se convierte en código binario mediante un compilador Just-In-Time
(JIT).
5. Seleccione el botón HelloWorld con la flecha verde en la barra de herramientas para ejecutar el programa.

6. Presione cualquier tecla para cerrar la ventana de consola.


Mejorar la aplicación Hola mundo
Mejore su aplicación para pedir su nombre al usuario y mostrarlo junto con la fecha y la hora. Para modificar y
probar el programa, haga lo siguiente:
1. Escriba el siguiente código de C# en la ventana de código inmediatamente después del corchete de apertura
que sigue a la línea static void Main(string[] args) y antes del primer corchete de cierre:

Console.WriteLine("\nWhat is your name? ");


var name = Console.ReadLine();
var date = DateTime.Now;
Console.WriteLine($"\nHello, {name}, on {date:d} at {date:t}!");
Console.Write("\nPress any key to exit...");
Console.ReadKey(true);

Este código reemplaza las instrucciones Console.WriteLine, Console.Write y Console.ReadKey existentes.

Este código muestra "What is your name?" en la ventana de la consola y espera a que el usuario escriba una
cadena seguida de la tecla Entrar. Almacena esta cadena en una variable denominada name . También
recupera el valor de la propiedad DateTime.Now, que contiene la hora local actual, y lo asigna a una variable
denominada date . Por último, usa una cadena interpolada para mostrar estos valores en la ventana de la
consola.
2. Compile el programa; para ello, seleccione Generar > Compilar solución.
3. Ejecute el programa en modo de depuración en Visual Studio; para ello, seleccione la flecha verde en la
barra de herramientas, presione F5 o seleccione el elemento de menú Depurar > Iniciar depuración.
Responda a la solicitud escribiendo un nombre y presionando la tecla Entrar.
4. Presione cualquier tecla para cerrar la ventana de consola.
Ha creado y ejecutado la aplicación. Para desarrollar una aplicación profesional, realice algunos pasos adicionales
para preparar el lanzamiento de la aplicación:
Para obtener información sobre la depuración de la aplicación, vea Depuración de la aplicación Hola a todos
en C# con Visual Studio 2017.
Para obtener información sobre el desarrollo y publicación de una versión de distribución de la aplicación,
vea Publicación de la aplicación Hola a todos en C# con Visual Studio 2017.

Temas relacionados
En lugar de una aplicación de consola, también puede crear una biblioteca de clases con .NET Core y Visual Studio
2017. Para consultar una introducción detallada, vea Building a class library with C# and .NET Core in Visual Studio
2017 (Creación de una biblioteca de clases con C# y .NET Core en Visual Studio 2017).
También puede desarrollar una aplicación de consola .NET Core en Mac, Linux y Windows mediante Visual Studio
Code, un editor de código descargable. Para obtener un tutorial detallado, vea Introducción a Visual Studio Code.
Depuración de la aplicación Hola a todos con Visual
Studio 2017
11/01/2018 • 18 min to read • Edit Online

Hasta ahora, ha seguido los pasos descritos en Compilación de una aplicación Hola a todos en C# con .NET Core
en Visual Studio 2017 o Compilación de una aplicación Hola a todos en Visual Basic con .NET Core en Visual
Studio 2017 para crear y ejecutar una aplicación de consola sencilla. Cuando haya escrito y compilado la
aplicación, puede comenzar a probarla. Visual Studio incluye un conjunto completo de herramientas de
depuración que puede usar para probar y solucionar problemas de la aplicación.

Depuración en modo de depuración


El modo de depuración y versión son dos de las configuraciones de compilación predeterminadas de Visual
Studio. La configuración de compilación actual se muestra en la barra de herramientas. En la siguiente imagen de
la barra de herramientas se muestra que Visual Studio está configurado para compilar la aplicación en el modo de
depuración.

Siempre debe empezar probando el programa en modo de depuración. El modo de depuración desactiva la
mayoría de las optimizaciones del compilador y proporciona información más completa durante el proceso de
compilación.

Establecer un punto de interrupción


Ejecute su programa en el modo de depuración y pruebe algunas características de depuración:
1. Un punto de interrupción interrumpe temporalmente la ejecución de la aplicación antes de que se ejecute la
línea con el punto de interrupción.
C#
Visual Basic
C#
Visual Basic
C#
Visual Basic
Establezca un punto de interrupción en la línea que dice
Console.WriteLine($"\nHello, {name}, on {date:d} at {date:t}!"); haciendo clic en el margen izquierdo de la
ventana de código en esa línea o seleccione el elemento de menú Depurar > Alternar punto de interrupción
con la línea seleccionada. Como se muestra en la siguiente ilustración, para indicar la línea en la que se establece
el punto de interrupción, Visual Studio lo resalta y muestra un círculo rojo en el margen izquierdo.
1. Seleccione el botón Continuar en la barra de herramientas para continuar con la ejecución del programa, o
seleccione el elemento de menú Depurar > Continuar. Los valores mostrados en la ventana de la consola
corresponden a los cambios realizados en la ventana Inmediato.

2. Presione cualquier tecla para salir de la aplicación y finalice el modo de depuración.

Establecimiento de un punto de interrupción condicional


Su programa muestra la cadena que escribe el usuario. ¿Qué sucede si el usuario no escribe nada? Puede probar
esto con una característica de depuración útil, el punto de interrupción condicional, que interrumpe la ejecución
del programa cuando se cumplen una o más condiciones.
Para establecer un punto de interrupción condicional y probar lo que sucede cuando el usuario no especifica una
cadena, haga lo siguiente:
C#
Visual Basic
1. Haga clic con el botón derecho en el punto rojo que representa al punto de interrupción. En el menú
contextual, seleccione Condiciones para abrir el cuadro diálogo Configuración del punto de
interrupción. Marque la casilla Condiciones.
2. Para la expresión condicional, reemplace "por ejemplo, x == 5" por lo siguiente:

String.IsNullOrEmpty(name)

Se está probando una condición de código, en la que la llamada al método String.IsNullOrEmpty(name) es true
porque name no tiene asignado un valor o porque su valor es una cadena vacía (""). También puede especificar un
número de llamadas, que es lo que interrumpe la ejecución antes de que una instrucción se ejecute un número
especificado de veces; o una condición de filtro, que es lo que interrumpe la ejecución del programa en función de
atributos como un identificador de subproceso, nombre de proceso o nombre de subproceso.
1. Seleccione el botón Cerrar para cerrar el cuadro de diálogo.
2. Ejecute el programa en modo de depuración.
3. En la ventana de consola, cuando se le pida que escriba su nombre, presione la tecla Entrar.
4. Como la condición que hemos especificado, name es null o String.Empty, se ha cumplido, la ejecución del
programa se detiene cuando se alcanza el punto de interrupción y antes de que se ejecute el método
Console.WriteLine .

5. Seleccione la ventana Variables locales, que muestra los valores de las variables que son locales para el
método que se ejecuta actualmente, que es el método Main en su programa. Observe que el valor de la
variable name es "" o String.Empty.

C#
Visual Basic
1. Confirme que el valor es una cadena vacía escribiendo la siguiente instrucción en la ventana Inmediato. El
resultado es true .

? name == String.Empty
1. Seleccione el botón Continuar en la barra de herramientas para continuar la ejecución del programa.
2. Presione cualquier tecla para cerrar la ventana de consola y salir del modo de depuración.
3. Para borrar el punto de interrupción, haga clic en el punto en el margen izquierdo de la ventana de código,
o seleccione el elemento de menú Depurar > Alternar punto de interrupción con la fila seleccionada.

Ejecución paso a paso de un programa


Visual Studio también le permite recorrer línea a línea un programa y supervisar su ejecución. Normalmente,
establecería un punto de interrupción y usaría esta característica para seguir el flujo del programa mediante una
pequeña parte de su código de programa. Como nuestro programa es pequeño, puede ejecutar paso a paso el
programa entero realizando lo siguiente:
C#
Visual Basic
1. En la barra de menús, seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual
Studio resalta y muestra una flecha junto a la siguiente línea de ejecución.

En este punto, la ventana Automático muestra que su programa ha definido solo una variable, args .
Dado que no ha pasado ningún argumento de línea de comandos al programa, su valor es una matriz de
cadena vacía. Además, Visual Studio ha abierto una ventana de consola en blanco.
2. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio ahora resalta
la siguiente línea de ejecución. Como se muestra en la ilustración, el código tarda en ejecutarse menos de
una milésima de segundo entre la última instrucción y esta. args sigue siendo la única variable declarada y
la ventana de consola sigue estando en blanco.
1. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio resalta la
instrucción que incluye la asignación de variables name . La ventana Automático muestra que name es
null (en C#) o Nothing (en Visual Basic), y la ventana de consola muestra la cadena "What is your name?".

2. Para responder a la solicitud, escriba una cadena en la ventana de consola y presione Entrar. La consola no
responde y la cadena que especifique no se muestra en la ventana de la consola, pero el método
Console.ReadLine capturará en cambio la entrada.
3. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio resalta la
instrucción que incluye la asignación de variables date (en C#) o currentDate (en Visual Basic). La ventana
Automático muestra el valor de propiedad DateTime.Now y el valor devuelto por la llamada al método
Console.ReadLine. La ventana de la consola también muestra la cadena especificada cuando se solicitó la
entrada.
4. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. La ventana Automático
muestra el valor de la variable date tras la asignación desde la propiedad DateTime.Now. La ventana de
consola permanece sin cambios.
5. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio llama al
método Console.WriteLine(String, Object, Object). Los valores de las variables date (o currentDate ) y
name aparecen en la ventana Automático y la ventana de consola muestra la cadena con formato.

6. Seleccione Depurar > Paso a paso para salir o presione la tecla Mayús y la tecla F11. Esta acción detiene
la ejecución paso a paso. La ventana de la consola muestra un mensaje y espera a que presione una tecla.
7. Presione cualquier tecla para cerrar la ventana de consola y salir del modo de depuración.

Creación de una versión de lanzamiento


Una vez que ha probado la compilación de depuración de la aplicación, también debe compilar y probar la versión
de lanzamiento. La versión de lanzamiento incorpora optimizaciones del compilador que en ocasiones afectan
negativamente al comportamiento de una aplicación. Por ejemplo, las optimizaciones del compilador que están
diseñadas para mejorar el rendimiento pueden crear condiciones de carrera en aplicaciones multiproceso o
asincrónicas.
Para compilar y probar la versión de lanzamiento de la aplicación de la consola, cambie la configuración de
compilación en la barra de herramientas de Depurar a Versión.

Cuando presiona F5 o selecciona Compilar solución en el menú Compilar, Visual Studio compila la versión de
lanzamiento de la aplicación de consola. Puede probarla como hizo con la versión de depuración de la aplicación.
Cuando haya terminado de depurar la aplicación, el siguiente paso es publicar una versión implementable de la
aplicación. Para obtener más información sobre cómo hacerlo, vea Publicación de la aplicación Hola a todos con
Visual Studio 2017.
Publicación de la aplicación Hola a todos con Visual
Studio 2017
11/01/2018 • 4 min to read • Edit Online

En Compilación de una aplicación Hola a todos en C# con .NET Core en Visual Studio 2017 o Compilación de una
aplicación Hola a todos en Visual Basic con .NET Core en Visual Studio 2017, ha compilado una aplicación de
consola Hola a todos. En Depuración de la aplicación Hola a todos en C# con Visual Studio 2017, la ha probado
con el depurador de Visual Studio. Ahora que está seguro de que funciona como se esperaba, puede publicarla
para que otros usuarios puedan ejecutarla. Al realizar la publicación, se crea el conjunto de archivos necesarios
para ejecutar la aplicación; y puede implementarlos mediante su copia en un equipo de destino.
Para publicar y ejecutar la aplicación:
1. Asegúrese de que Visual Studio esté compilando la versión de lanzamiento de la aplicación. Si es necesario,
cambie la configuración de compilación en la barra de herramientas de Depurar a Versión.

2. Haga clic con el botón derecho en el proyecto HelloWorld (no en la solución HelloWorld) y seleccione
Publicar en el menú. También puede seleccionar Publicar Hola a todos en el menú principal Compilar
de Visual Studio.
3. Abra una ventana de consola. Por ejemplo, en el cuadro de texto Escriba aquí para ejecutar la búsqueda
de la barra de tareas de Windows, escriba Command Prompt (o cmd para abreviar) y abra una ventana de
consola seleccionando la aplicación de escritorio Símbolo del sistema o presionando Entrar si está
seleccionada en los resultados de búsqueda.
4. Vaya a la aplicación publicada en el subdirectorio bin\release\PublishOutput del directorio del proyecto de
la aplicación. Como se muestra en la ilustración siguiente, el resultado publicado incluye los siguientes
cuatro archivos:
HelloWorld.deps.json
Archivo de dependencias de tiempo de ejecución de la aplicación. Define los componentes
principales de .NET y las bibliotecas (incluida la biblioteca de vínculos dinámicos que contiene la
aplicación) necesitan para ejecutar la aplicación. Para obtener más información, consulte archivos de
configuración en tiempo de ejecución.
HelloWorld.dll
El archivo que contiene la aplicación. Es una biblioteca de vínculos dinámicos que se pueden ejecutar
mediante la especificación de la dotnet HelloWorld.dll comando en una ventana de consola.
HelloWorld.pdb (opcional para la implementación)
Un archivo que contiene los símbolos de depuración. No necesita implementar este archivo junto
con su aplicación, aunque se debe guardar en caso de que necesite depurar la versión publicada de
la aplicación.
HelloWorld.runtimeconfig.json
Archivo de configuración de la aplicación en tiempo de ejecución. Identifica la versión de .NET Core
que la aplicación se ha compilado. Para obtener más información, consulte archivos de
configuración en tiempo de ejecución.

El proceso de publicación crea una implementación dependiente del marco, que es un tipo de implementación
donde la aplicación publicada se ejecutará en cualquier plataforma compatible con .NET Core con .NET Core
instalado en el sistema. Los usuarios pueden ejecutar la aplicación mediante la emisión del comando
dotnet HelloWorld.dll desde una ventana de consola.

Para más información sobre cómo publicar e implementar aplicaciones de .NET Core, consulte Implementación de
aplicaciones .NET Core.
Creación de una biblioteca de clases con C# y .NET
Core en Visual Studio 2017
11/01/2018 • 4 min to read • Edit Online

Una biblioteca de clases define los tipos y los métodos que se llaman desde una aplicación. Una biblioteca de
clases que tiene como destino .NET Standard 2.0, lo que permite que cualquier implementación .NET que admita
esa versión de .NET Standard pueda llamar a su biblioteca. Cuando termine la biblioteca de clases, puede decidir si
quiere distribuirla como un componente de terceros o si la quiere incluir como un componente empaquetado con
una o varias aplicaciones.

NOTA
Para ver una lista de las versiones de .NET Standard y las plataformas que admiten, vea .NET Standard.

En este tema, se creará una sencilla biblioteca de utilidades que contiene un único método de control de cadenas.
Se implementará como un método de extensión de modo que se pueda llamar como si fuera un miembro de la
clase String.

Creación de una solución de biblioteca de clases


Para empezar, se crea una solución para el proyecto de biblioteca de clases y sus proyectos relacionados. Una
solución de Visual Studio solo sirve como contenedor de uno o varios proyectos. Para crear la solución:
1. En la barra de menús de Visual Studio, elija Archivo > Nuevo > Proyecto.
2. En el cuadro de diálogo Nuevo proyecto, expanda el nodo Otros tipos de proyectos y seleccione
Soluciones de Visual Studio. Asigne a la solución el nombre "ClassLibraryProjects" y pulse el botón
Aceptar.

Creación del proyecto de biblioteca de clases


Crear el proyecto de biblioteca de clases:
1. En el Explorador de soluciones, haga clic con el botón derecho en el archivo de solución
ClassLibraryProjects y seleccione Agregar > Nuevo proyecto en el menú contextual.
2. En el cuadro de diálogo Agregar nuevo proyecto, expanda el nodo Visual C#, después seleccione el nodo
.NET Standard seguido de la plantilla del proyecto Biblioteca de clases (.NET Standard). En el cuadro
de texto Nombre, escriba "StringLibrary" como nombre del proyecto. Pulse Aceptar para crear el proyecto
de biblioteca de clases.

La ventana de código se abre después en el entorno de desarrollo de Visual Studio.

3. Compruebe para asegurarse de que nuestra biblioteca tiene como destino la versión correcta de .NET
Standard. Haga clic con el botón derecho en el proyecto de la biblioteca en las ventanas del Explorador de
soluciones y, después, seleccione Propiedades. El cuadro de texto Plataforma de destino muestra que
nos referimos a .NET Standard 2.0.
4. Reemplace el código de la ventana de código por el código siguiente y guarde el archivo:

using System;

namespace UtilityLibraries
{
public static class StringLibrary
{
public static bool StartsWithUpper(this String str)
{
if (String.IsNullOrWhiteSpace(str))
return false;

Char ch = str[0];
return Char.IsUpper(ch);
}
}
}

la biblioteca de clases, UtilityLibraries.StringLibrary , contiene un método llamado StartsWithUpper , que


devuelve un valor Boolean que indica si la instancia de cadena actual comienza con un carácter en
mayúscula. El estándar Unicode distingue caracteres en mayúsculas de caracteres en minúsculas. El método
Char.IsUpper(Char) devuelve true si un carácter está en mayúsculas.
5. En la barra de menús, seleccione Compilar > Compilar solución. El proyecto se debería compilar sin
errores.

Paso siguiente
La biblioteca se ha creado correctamente. Como no se ha llamado a ninguno de los métodos, no se sabe si
funciona como estaba previsto. El siguiente paso en el desarrollo de la biblioteca consiste en probarla mediante
un proyecto de prueba unitaria.
Prueba de una biblioteca de clases con .NET Core en
Visual Studio 2017
11/01/2018 • 18 min to read • Edit Online

En Building a class library with C# and .NET Core in Visual Studio 2017 (Creación de una biblioteca de clases con
C# y .NET Core en Visual Studio 2017) o Building a class library with Visual Basic and .NET Core in Visual Studio
2017 (Creación de una biblioteca de clases con Visual Basic y .NET Core en Visual Studio 2017), ha creado una
biblioteca de clases simple que agrega un método de extensión a la clase String. Ahora, creará una prueba unitaria
para asegurarse de que funciona según lo esperado. Agregará su proyecto de prueba unitaria a la solución que ha
creado en el tema anterior.

Creación de un proyecto de prueba unitaria


Para crear el proyecto de prueba unitaria, haga lo siguiente:
C#
Visual Basic
1. En el Explorador de soluciones, abra el menú contextual del nodo de solución ClassLibraryProjects y
seleccione Agregar > Nuevo proyecto.
2. En el cuadro de diálogo Agregar nuevo proyecto, seleccione el nodo Visual C#. Después seleccione el
nodo .NET Core seguido por la plantilla del proyecto Proyecto de prueba unitaria (.NET Core). En el
cuadro de texto Nombre, escriba "StringLibraryTest" como nombre del proyecto. Seleccione Aceptar para
crear el proyecto de prueba unitaria.
NOTA
Además de un proyecto de prueba unitaria, también puede usar Visual Studio para crear un proyecto de prueba
xUnit para .NET Core.

3. Visual Studio crea el proyecto y abre el archivo UnitTest1.cs en la ventana de código.

El código fuente creado por la plantilla de prueba unitaria hace lo siguiente:


Importa el espacio de nombres Microsoft.VisualStudio.TestTools.UnitTesting, que contiene los tipos
usados para la prueba unitaria.
Aplica el atributo [TestClass] a la clase UnitTest1 . Cada método de prueba en una clase de prueba
etiquetada con el atributo [TestMethod] se ejecuta automáticamente cuando se ejecute la prueba
unitaria.
Aplica el atributo [TestMethod] para definir TestMethod1 como un método de prueba para la
ejecución automática cuando se ejecuta la prueba unitaria.
4. En el Explorador de soluciones, haga clic con el botón derecho en el nodo Dependencias del proyecto
StringLibraryTest y seleccione Agregar referencia del menú contextual.

5. En el cuadro de diálogo Administrador de referencias, expanda el nodo Proyectos y marque la casilla


junto a StringLibrary. Agregar una referencia al ensamblado StringLibrary permite al compilador buscar
métodos StringLibrary. Seleccione el botón Aceptar. Se agrega una referencia a su proyecto de biblioteca
de clases, StringLibrary .
Adición y ejecución de métodos de prueba unitaria
Cuando Visual Studio ejecuta una prueba unitaria, ejecuta cada método marcado con el atributo [TestMethod] en
una clase de prueba unitaria; la clase a la que se le aplica el atributo [TestClass]. Un método de prueba finaliza
cuando se encuentra el primer error, o cuando todas las pruebas contenidas en el método se han realizado
correctamente.
Las pruebas más comunes llaman a los miembros de clase Assert. Muchos métodos de aserción incluyen al menos
dos parámetros, uno de los cuales es el resultado esperado de la prueba y el otro es el resultado real de la prueba.
Algunos de sus métodos a los que se llama con más frecuencia se muestran en la tabla siguiente.

MÉTODOS DE ASERCIÓN FUNCIÓN

Assert.AreEqual Comprueba que dos valores u objetos son iguales. La aserción


da error si los valores o los objetos no son iguales.

Assert.AreSame Comprueba que dos variables de objeto hacen referencia al


mismo objeto. La aserción da error si las variables hacen
referencia a objetos diferentes.

Assert.IsFalse Comprueba si una condición es false . La aserción produce


un error si la condición es true .

Assert.IsNotNull Comprueba que un objeto no es null . La aserción da error


si el objeto es null .

También puede aplicar el atributo [ExpectedException] a un método de prueba. Indica el tipo de excepción que se
espera que inicie un método de prueba. La prueba dará error si no se inicia la excepción especificada.
Al probar el método StringLibrary.StartsWithUpper , quiere proporcionar un número de cadenas que comiencen
con un carácter en mayúsculas. Espera que el método devuelva true en estos casos, por lo que puede llamar al
método Assert.IsTrue(Boolean, String). Del mismo modo, quiere proporcionar un número de cadenas que
comiencen con algo que no sea un carácter en mayúsculas. Espera que el método devuelva false en estos casos,
por lo que puede llamar al método Assert.IsFalse(Boolean, String).
Dado que el método de biblioteca controla cadenas, quiere asegurarse también de que controla correctamente
una cadena vacía ( String.Empty ), una cadena válida que no tenga caracteres y cuyo Length sea 0, y una cadena
null que no se haya inicializado. Si StartsWithUpper se llama como un método de extensión en una instancia
String, no se puede pasar una cadena null . En cambio, también se puede llamar directamente como un método
estático y pasarse como un argumento String único.
Definirá tres métodos, cada uno de los cuales llama a su método Assert repetidamente para cada elemento de una
matriz de cadenas. Dado que el método de prueba produce un error tan pronto como encuentra el primer error,
llamará a una sobrecarga de método que le permita pasar una cadena que indique el valor de cadena usado en la
llamada al método.
Para crear los métodos de prueba:
C#
Visual Basic
1. Reemplace el código de la ventana de código UnitTest1.cs por el código siguiente:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UtilityLibraries;

namespace StringLibraryTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestStartsWithUpper()
{
// Tests that we expect to return true.
string[] words = { "Alphabet", "Zebra", "ABC", "Αθήνα", "Москва" };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsTrue(result,
String.Format("Expected for '{0}': true; Actual: {1}",
word, result));
}
}

[TestMethod]
public void TestDoesNotStartWithUpper()
{
// Tests that we expect to return false.
string[] words = { "alphabet", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство",
"1234", ".", ";", " " };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word, result));
}
}

[TestMethod]
public void DirectCallWithNullOrEmpty()
{
// Tests that we expect to return false.
string[] words = { string.Empty, null };
foreach (var word in words)
{
bool result = StringLibrary.StartsWithUpper(word);
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word == null ? "<null>" : word, result));
}
}
}
}

Observe que la prueba de caracteres en mayúsculas del método TestStartsWithUpper incluye la letra
mayúscula griega alfa (U+0391) y la letra mayúscula cirílica EM (U+041C), y la prueba de caracteres en
minúsculas del método TestDoesNotStartWithUpper incluye la letra griega minúscula alfa (U+03B1) y la letra
cirílica minúscula Ghe (U+0433).
2. En la barra de menús, seleccione Archivo > Guardar UnitTest1.cs como. En el cuadro de diálogo Guardar
archivo como, seleccione la flecha junto al botón Guardar y seleccione Guardar con codificación.

1. En el cuadro de diálogo Confirmar guardar como, seleccione el botón Sí para guardar el archivo.
2. En el cuadro de diálogo Opciones avanzadas para guardar, seleccione Unicode (UTF-8 con firma) -
Página de códigos 65001 desde la lista desplegable Codificación y seleccione Aceptar.

Si obtiene un error al guardar el código fuente en un archivo con codificación UTF-8, Visual Studio puede
guardarlo como un archivo ASCII. Cuando eso suceda, el tiempo de ejecución no descodifica correctamente
los caracteres UTF-8 del rango ASCII, y los resultados de la prueba no serán precisos.
3. En la barra de menús, seleccione Prueba > Ejecutar > Todas las pruebas. Se abre la ventana del
Explorador de pruebas y muestra que las pruebas se han ejecutado correctamente. Las tres pruebas se
muestran en la sección Pruebas superadas y en la sección Resumen se informa del resultado de la serie
de pruebas.
Control de errores en las pruebas
Su serie de pruebas no tuvo errores, pero vamos a cambiarla un poco para que uno de los métodos de prueba
produzca un error:
1. Modifique la matriz words en el método TestDoesNotStartWithUpper para incluir la cadena "Error". No
necesita guardar el archivo porque Visual Studio guarda automáticamente archivos abiertos cuando se crea
una solución para ejecutar pruebas.

string[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство",


"1234", ".", ";", " " };

Dim words() As String = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство",


"1234", ".", ";", " " }

2. Ejecute la prueba seleccionando Prueba > Ejecutar > Todas las pruebas de la barra de menús. En la
ventana Explorador de pruebas se indica que dos pruebas se han realizado correctamente y que una ha
finalizado con errores.

3. Seleccione la prueba que ha dado error, TestDoesNotStartWith , en la sección Pruebas no superadas. En la


ventana Explorador de pruebas se muestra el mensaje generado por la aserción: "Error de Assert.IsFalse.
Se esperaba para "Error": false; real: True". Debido al error, no se probaron todas las cadenas de la matriz
después de "Error".
4. Quite el código que ha agregado ( "Error", ) y vuelva a ejecutar la prueba. Se superarán las pruebas.

Prueba de la versión de la biblioteca


Ha estado ejecutando sus pruebas con la versión de depuración de la biblioteca. Ahora que todas sus pruebas se
han superado y que ha probado adecuadamente la biblioteca, debe ejecutar las pruebas un tiempo adicional con
respecto a la compilación de versión de la biblioteca. Varios factores, como las optimizaciones del compilador, a
veces pueden producir un comportamiento diferente entre las compilaciones de depuración y versión.
Para probar la compilación de versión:
1. En la barra de herramientas de Visual Studio, cambie la configuración de compilación de Depurar a
Versión.

2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto StringLibrary y seleccione
Compilar desde el menú contextual para volver a compilar la biblioteca.

3. Ejecute las pruebas unitarias seleccionando Prueba > Ejecutar > Todas las pruebas de la barra de menús.
Las pruebas se superan.
Ahora que ha terminado de probar la biblioteca, el siguiente paso es ponerla a disposición de los llamadores.
Puede empaquetarla con una o varias aplicaciones o puede distribuirla como un paquete NuGet. Para obtener más
información, vea Consumo de una biblioteca de clases .NET Standard.
Consumo de una biblioteca de clases con .NET Core
en Visual Studio 2017
11/01/2018 • 11 min to read • Edit Online

Una vez que haya creado una biblioteca de clases siguiendo los pasos de Building a C# class library with .NET Core
in Visual Studio 2017 (Creación de una biblioteca de clases de C# con .NET Core en Visual Studio 2017) o Building
a Visual Basic class library with .NET Core in Visual Studio 2017 (Creación de una biblioteca de clases de Visual
Basic con .NET Core en Visual Studio 2017), pruébela en Testing a class library with .NET Core in Visual Studio
2017 (Prueba de una biblioteca de clases con .NET Core en Visual Studio 2017), y compile una versión de
lanzamiento de la biblioteca; el paso siguiente consiste en hacer que esté disponible para los autores de llamadas.
Existen dos maneras de hacerlo:
Si una única solución va a usar la biblioteca (por ejemplo, si es un componente de una sola aplicación más
grande), se puede incluir como proyecto en la solución.
Si la biblioteca va a ser accesible con carácter general, puede distribuirla como un paquete NuGet.

Inclusión de una biblioteca como proyecto en una solución


Así como se incluyen pruebas unitarias en la misma solución que la biblioteca de clases, se puede incluir la
aplicación como parte de esa solución. Por ejemplo, se puede usar la biblioteca de clases en una aplicación de
consola que pide al usuario que inserte una cadena e informa de si su primer carácter está en mayúsculas:
C#
Visual Basic
1. Abra la solución ClassLibraryProjects creada en el tema Building a C# Class Library with .NET Core in
Visual Studio 2017 (Creación de una biblioteca de clases de C# con .NET Core en Visual Studio 2017). En el
Explorador de soluciones, haga clic con el botón derecho en la solución ClassLibraryProject y seleccione
Agregar > Nuevo proyecto en el menú contextual.
2. En el cuadro de diálogo Agregar nuevo proyecto, expanda el nodo Visual C# y seleccione el nodo .NET
Core seguido por la plantilla del proyecto Aplicación de consola (.NET Core). En el cuadro de texto
Nombre, escriba "Presentación" y pulse el botón Aceptar.
3. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto Presentación y seleccione
Establecer como proyecto de inicio en el menú contextual.

4. Inicialmente, el proyecto no tiene acceso a la biblioteca de clases. Para permitir que se llame a métodos de la
biblioteca de clases, puede crear una referencia a la biblioteca de clases. En el Explorador de soluciones,
haga clic con el botón derecho en el nodo Dependencias del proyecto ShowCase y seleccione Agregar
referencia.
5. En el cuadro de diálogo Administrador de referencias, seleccione StringLibrary, el proyecto de biblioteca
de clases, y pulse el botón Aceptar.

6. En la ventana de código del archivo Program.cs, reemplace todo el código por el código siguiente:

using System;
using UtilityLibraries;

class Program
{
static void Main(string[] args)
{
int rows = Console.WindowHeight;

Console.Clear();
do
{
if (Console.CursorTop >= rows || Console.CursorTop == 0)
{
Console.Clear();
Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press
<Enter>:\n");
}
string input = Console.ReadLine();
if (String.IsNullOrEmpty(input)) break;
Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
$"{(input.StartsWithUpper() ? "Yes" : "No")}\n");
} while (true);
}
}
El código usa la propiedad Console.WindowHeight para determinar el número de filas de la ventana de
consola. Siempre que la propiedad Console.CursorTop sea mayor o igual que el número de filas de la
ventana de consola, el código borra la ventana de consola y muestra un mensaje al usuario.
El programa le pide al usuario que escriba una cadena. Indica si la cadena comienza con un carácter en
mayúsculas. Si el usuario presiona la tecla Entrar sin especificar una cadena, la aplicación finaliza y la
ventana de consola se cierra.
7. Si es necesario, cambie la barra de herramientas para compilar la versión de depuración del proyecto
ShowCase . Compile y ejecute el programa haciendo clic en la flecha verde en el botón Presentación.

La aplicación que usa esta biblioteca se puede depurar y publicar siguiendo los pasos indicados en Debugging
your Hello World Application with Visual Studio 2017 (Depuración de la aplicación Hola a todos con Visual Studio
2017) y Publishing your Hello World Application with Visual Studio 2017 (Publicación de la aplicación Hola a todos
con Visual Studio 2017).

Distribución de la biblioteca en un paquete NuGet


Puede hacer que la biblioteca de clases tenga una disponibilidad amplia si la publica como un paquete NuGet.
Visual Studio no admite la creación de paquetes NuGet. Para crear uno, se usa la utilidad de línea de comandos
dotnet :

1. Abra una ventana de consola. Por ejemplo, en el cuadro de texto Pregúntame cualquier cosa de la barra
de tareas de Windows, escriba Command Prompt (o cmd para abreviar) y abra una ventana de consola
seleccionando la aplicación de escritorio Símbolo del sistema o presionando Entrar si está seleccionada en
los resultados de búsqueda.
2. Vaya al directorio del proyecto de la biblioteca. A menos que haya reconfigurado la ubicación típica del
archivo, se encuentra en el directorio Documentos\Visual Studio
2017\Projects\ClassLibraryProjects\StringLibrary. El directorio contiene el código fuente y un archivo de
proyecto, StringLibrary.csproj.
3. Emita el comando dotnet pack --no-build : La utilidad dotnet genera un paquete con una extensión
.nupkg.

SUGERENCIA
Si el directorio que contiene dotnet.exe no está en la ruta de acceso, puede encontrar su ubicación escribiendo
where dotnet.exe en la ventana de consola.

Para más información sobre la creación de paquetes NuGet, consulte Cómo crear un paquete NuGet con
herramientas multiplataforma .
Introducción a C# y Visual Studio Code
11/01/2018 • 5 min to read • Edit Online

.NET Core ofrece una plataforma modular y rápida para crear aplicaciones que se ejecutan en Windows, Linux y
macOS. Use Visual Studio Code con la extensión de C# para disfrutar de una sólida experiencia de edición con
compatibilidad total para C# IntelliSense (completado de código inteligente) y para depuración.

Requisitos previos
1. Instale Visual Studio Code.
2. Instale el SDK de .NET Core.
3. Instale la extensión de C# desde Visual Studio Code Marketplace.

Hello World
Se va a empezar con un programa "Hola mundo" sencillo basado en .NET Core:
1. Abrir un proyecto:
Abra Visual Studio Code.
Haga clic en el icono del explorador en el menú de la izquierda y después haga clic en Abrir carpeta.
Seleccione archivo > Abrir carpeta en el menú principal para abrir la carpeta que desea que el
proyecto de C# y haga clic en seleccionar la carpeta. En nuestro ejemplo, estamos creando una
carpeta para nuestro proyecto denominado HelloWorld.

2. Inicializar un proyecto de C#:


Para abrir el Terminal integrada desde código de Visual Studio, seleccione vista > Terminal integrado
en el menú principal.
En la ventana de terminal, escriba dotnet new console .
Este comando crea un Program.cs archivo con un programa simple "Hola mundo" ya escrito, junto
con un archivo de proyecto de C# con el nombre en la carpeta HelloWorld.csproj .

3. Resolver los recursos de compilación:


Para .NET Core 1.x, tipo dotnet restore . Al ejecutar dotnet restore , se concede acceso a los
paquetes de .NET Core necesarios para compilar el proyecto.
NOTA
Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all
commands, such as dotnet build and dotnet run , that require a restore to occur. It's still a valid
command in certain scenarios where doing an explicit restore makes sense, such as continuous integration
builds in Visual Studio Team Services or in build systems that need to explicitly control the time at which the
restore occurs.

4. Ejecutar el programa "Hola mundo":


Escriba dotnet run .

También puede ver un breve tutorial de vídeo para obtener ayuda del programa de instalación en Windows,
macOS o Linux.

Depuración
1. Haga clic en el archivo Program.cs para abrirlo. La primera vez que abra un archivo de C# en Visual Studio
Code, OmniSharp se carga en el editor.
2. Código de Visual Studio debe solicitarle que agregue los activos que faltan para compilar y depurar la
aplicación. Seleccione Sí.

3. Para abrir la vista Depurar, haga clic en el icono de depuración en el menú de la izquierda.

4. Busque la flecha verde en la parte superior del panel. Asegúrese de que .NET Core Launch (console) está
seleccionado en el menú desplegable que está junto a la flecha.
5. Agregar un punto de interrupción al proyecto haciendo clic en el editor margen, que es el espacio de la
izquierda de los números de línea en el editor, junto a la línea 9.

6. Para iniciar la depuración, seleccione F5 o en la flecha verde. El depurador detiene la ejecución del
programa cuando alcanza el punto de interrupción establecido en el paso anterior.
Durante la depuración, puede ver las variables locales en el panel superior izquierdo o utilizar la consola
de depuración.
7. Seleccione la flecha verde en la parte superior para continuar la depuración o seleccione el cuadrado rojo
que se encuentra arriba para detenerla.

SUGERENCIA
Para obtener más información y sugerencias sobre solución de problemas en relación con la depuración de .NET Core con
OmniSharp en Visual Studio Code, vea Instructions for setting up the .NET Core debugger (Instrucciones para configurar el
depurador de .NET Core).

Vea también
Setting up Visual Studio Code (Configuración de Visual Studio Code)
Debugging in Visual Studio Code (Depuración en Visual Studio Code)

También podría gustarte