domingo, 17 de agosto de 2025

Programando en C# no. 9 (usando Nuget)

En un anterior post hablamos sobre Nuget. El cual es el administrador de paquetes para .NET.

Con Nuget podemos:

  1. Consumir paquetes de terceros. 
  2. Crear nuestros paquetes. 
  3.  Publicar nuestros paquetes.

Nuget está incluido en el .Net Core. Abriremos una consola y teclearemos lo siguiente:

$ mkdir codemonkey 
$ cd codemonkey
$ dotnet new console

Nos ubicaremos en el proyecto creado y listaremos los paquetes:

$ dotnet list package

Mostrará un mensaje indicando que no hay paquetes asociados al proyecto.

Si queremos instalar un paquete podemos hacerlo con Nuget.

El sitio https://www.nuget.org/ tiene un buscador de paquetes. Si queremos, por ejemplo, instalar un conector de BD de MySQL podemos buscarlo. Si lo encuentra, damos clic al enlace y nos mostrará la forma de instalarlo desde dotnet.

Instalando el paquete de MySQL:

$ dotnet add package MySqlConnector --version 2.4.0

Ahora listamos el paquete:

$ dotnet list package

El sitio también provee de ejemplos de cómo usarlo (en algunos paquetes):

// set these values correctly for your database server
var builder = new MySqlConnectionStringBuilder
{
	Server = "your-server",
	UserID = "database-user",
	Password = "P@ssw0rd!",
	Database = "database-name",
};

// open a connection asynchronously
using var connection = new MySqlConnection(builder.ConnectionString);
await connection.OpenAsync();

// create a DB command and set the SQL statement with parameters
using var command = connection.CreateCommand();
command.CommandText = @"SELECT * FROM orders WHERE order_id = @OrderId;";
command.Parameters.AddWithValue("@OrderId", orderId);

// execute the command and read the results
using var reader = await command.ExecuteReaderAsync();
while (reader.Read())
{
	var id = reader.GetInt32("order_id");
	var date = reader.GetDateTime("order_date");
	// ...
}

Para ASP .Net tendríamos:

var builder = WebApplication.CreateBuilder(args);

// use AddMySqlDataSource to configure MySqlConnector
builder.Services.AddMySqlDataSource(builder.Configuration.GetConnectionString("Default"));

var app = builder.Build();

// use dependency injection to get a MySqlConnection in minimal APIs or in controllers
app.MapGet("/", async (MySqlConnection connection) =>
{
    // open and use the connection here
    await connection.OpenAsync();
    await using var command = connection.CreateCommand();
    command.CommandText = "SELECT name FROM users LIMIT 1";
    return "Hello World: " + await command.ExecuteScalarAsync();
});

app.Run();

Nuget nos permite encontrar, agregar y compartir paquetes para nuestras aplicaciones. Como desarrolladores sabemos que muchas veces un paquete puede ahorrarnos horas o días (e incluso más tiempo) de desarrollo.

Ejemplo. Queremos hacer una sencilla gráfica, pero nos llevaría bastante tiempo crear un paquete que nos permita hacerlo. La solución sería buscarlo e instalarlo.

La opción ideal sería ScottPlot, ya que es una biblioteca de gráficos similar a Matplotlib. La cual ofrece un equilibrio ideal entre facilidad de uso, rendimiento, integración nativa y documentación extensa. Eso es lo que buscamos.

La instalaremos:

$ dotnet add package ScottPlot --version 5.0.55

Si la instalación fue correcta, saldrá un mensaje indicando que ya lo tenemos integrado a nuestro proyecto. Usaremos el código de ejemplo:

Program.cs

double[] dataX = { 1, 2, 3, 4, 5 };
double[] dataY = { 1, 4, 9, 16, 25 };

ScottPlot.Plot myPlot = new();
myPlot.Add.Scatter(dataX, dataY);
myPlot.SavePng("quickstart.png", 400, 300);

Código completo:

Program.cs

using System;
using ScottPlot;


class Program
{

    public static void Main(string[] args)
    {
        Test();
    }


   private static void Test()
   {
       double[] dataX = { 1, 2, 3, 4, 5 };
       double[] dataY = { 1, 4, 9, 16, 25 };

       ScottPlot.Plot myPlot = new();
       myPlot.Add.Scatter(dataX, dataY);
       myPlot.SavePng("quickstart.png", 400, 300);
       Console.WriteLine("Gráfico creado.");
   }

}

Compilamos y ejecutamos:

$ dotnet build
$ dotnet run

Si ejecutó correctamente la aplicación, entonces se creará un gráfico llamado ``quickstart.png``.

En conclusión, si eres desarrollador .NET, entonces con Nuget encontrarás los paquetes necesarios para tus aplicaciones.

Enlaces:

https://www.nuget.org/
https://learn.microsoft.com/es-es/nuget/what-is-nuget
https://codemonkeyjunior.blogspot.com/2019/06/instalar-paquetes-nuget-con-dotnet.html



No hay comentarios:

Publicar un comentario

Claude Code: un nuevo enfoque de la programación por pares

Claude Code es una herramienta de inteligencia artificial creada por Anthropic que funciona directamente en la terminal. Sirve para acele...

Etiquetas

Archivo del blog