Ejercicio: Instalación de paquetes

Completado

Los desarrolladores de Tailwind Traders asumen que están a punto de invertir una gran cantidad de recursos en el desarrollo de aplicaciones para la plataforma .NET. Estas aplicaciones mostrarán muchos datos legibles para los usuarios, como fechas, horas y números.

.NET tiene las funcionalidades para desarrollar esta aplicación, pero los desarrolladores están seguros de que alguien ya ha resuelto este problema. Necesitan un marco. Tras realizar una búsqueda, han encontrado Humanizer en el registro de paquetes NuGet. Parece ser ampliamente utilizado y promete satisfacer todas sus necesidades de .NET. En concreto, manipular y mostrar cadenas, enumeraciones, fechas, horas, intervalos de tiempo, números y cantidades.

En este punto, los desarrolladores desean que instale Humanizer, que escriba un par de manipulaciones de datos y que las ejecute para ver si Humanizer cumple las expectativas.

Nota:

En este módulo se usan la CLI (interfaz de la línea de comandos) de .NET y Visual Studio Code para el desarrollo local. Cuando complete este módulo, podrá aplicar los conceptos mediante Visual Studio (Windows) o seguir con el desarrollo mediante Visual Studio Code (Windows, Linux y macOS).

En este módulo se usa el SDK de .NET 8.0. Asegúrese de que tiene instalado .NET 8.0 mediante la ejecución del siguiente comando en el terminal de comandos que prefiera:

dotnet --list-sdks

Aparecerá un resultado similar al del ejemplo siguiente:

6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]

Asegúrese de que aparezca una versión que comience en 8. Si no aparece ninguna o no se encuentra el comando, instale el SDK más reciente de .NET 8.0.

Creación de un proyecto de .NET de ejemplo

Para configurar un proyecto de .NET para que funcione con dependencias, usaremos Visual Studio Code. Visual Studio Code incluye una terminal integrada que facilita la creación de un proyecto. Si no quiere usar otro editor de código, puede ejecutar los comandos de este módulo en un terminal.

  1. En Visual Studio Code, seleccione Archivo>Abrir carpeta.

  2. Cree una carpeta denominada DotNetDependencies en la ubicación que prefiera y, después, seleccione Seleccionar carpeta.

  3. Abra el terminal integrado desde Visual Studio Code; para ello, seleccione Ver>Terminal en el menú principal.

  4. En la ventana del terminal, copie y pegue el siguiente comando:

    dotnet new console -f net8.0
    

    Este comando crea un archivo Program.cs en la carpeta con un programa "Hola mundo" básico que ya está escrito, junto con un archivo de proyecto de C# denominado DotNetDependencies.csproj.

    Ahora debería tener acceso a estos archivos.

    -| obj
    -| DotNetDependencies.csproj
    -| Program.cs
    
  5. En la ventana del terminal, copie y pegue el siguiente comando para ejecutar el programa "Hola mundo".

    dotnet run
    

En la ventana del terminal se muestra "Hola mundo" como salida.

Captura de pantalla de Visual Studio Code con una nueva aplicación de consola.

Configuración de Visual Studio Code para la depuración de .NET

Abra Program.cs. La primera vez que abra un archivo de C# en Visual Studio Code, recibirá un aviso para instalar las extensiones recomendadas para C#. Seleccione el botón Instalar en el mensaje.

Captura de pantalla del mensaje de extensiones recomendadas de Visual Studio Code.

Visual Studio Code instala la extensión de C#. Muestra un aviso adicional para agregar los recursos necesarios para compilar y depurar el proyecto. Seleccione .

Captura de pantalla del mensaje de recursos necesarios de Visual Studio Code.

Puede cerrar la pestaña Extensión: Pestaña de C# para centrarse en el código que está escribiendo.

Adición de un paquete NuGet mediante la herramienta de .NET Core

  1. Abra Program.cs. Debería ser parecido a este:

    Console.WriteLine("Hello, World!");
    

    La función anterior se ejecuta al principio de la aplicación y genera una cadena en la consola. Vamos a agregar Humanizer y a manipular los datos y escribirlos en la consola.

  2. Ejecute el siguiente comando para instalar la biblioteca de Humanizer:

    dotnet add package Humanizer --version 2.7.9
    

    Abra el archivo DotNetDependencies.csproj y busque la sección ItemGroup. Ahora debería tener una entrada similar a la siguiente:

    <ItemGroup>
        <PackageReference Include="Humanizer" Version="2.7.9" />
    </ItemGroup>
    
  3. Agregue el siguiente contenido en la parte superior del archivo Program.cs que inicializa Humanizer:

    using Humanizer;
    

    El archivo Program.cs ahora debería ser similar al siguiente:

    using Humanizer;
    
    Console.WriteLine("Hello, World!");
    
  4. Agregue el contenido siguiente al archivo Program.cs en la parte inferior del archivo, debajo de Console.WriteLine("Hello, World!");:

    static void HumanizeQuantities()
    {
        Console.WriteLine("case".ToQuantity(0));
        Console.WriteLine("case".ToQuantity(1));
        Console.WriteLine("case".ToQuantity(5));
    }
    
    static void HumanizeDates()
    {
        Console.WriteLine(DateTime.UtcNow.AddHours(-24).Humanize());
        Console.WriteLine(DateTime.UtcNow.AddHours(-2).Humanize());
        Console.WriteLine(TimeSpan.FromDays(1).Humanize());
        Console.WriteLine(TimeSpan.FromDays(16).Humanize());
    }
    
  5. Reemplace Console.WriteLine("Hello, World!"); por el código siguiente:

    Console.WriteLine("Quantities:");
    HumanizeQuantities();
    
    Console.WriteLine("\nDate/Time Manipulation:");
    HumanizeDates();
    
  6. Guarde el archivo (Archivo>Guardar o CTRL + S). Escriba el siguiente comando en el terminal para ejecutar la aplicación:

    dotnet run
    

    Debería obtener la siguiente salida:

    Quantities:
    0 cases
    1 case
    5 cases
    
    Date/Time Manipulation:
    yesterday
    2 hours ago
    1 day
    2 weeks
    

Enhorabuena. Ha instalado correctamente Humanizer como una dependencia y ha escrito lógica para el código de la aplicación con el objetivo de que los datos sean más legibles. Parece que Humanizer está a la altura de las expectativas y que probablemente en Tailwind Traders estarán satisfechos con el resultado de esta evaluación.