Una herramienta esencial para cualquier plataforma de desarrollo moderno, es un mecanismo a través del cual los desarrolladores pueden crear, compartir y consumir código útil. A menudo, este código se integra en «paquetes» que contienen código compilado (como archivos DLL) y otro contenido necesario en los proyectos que utilizan estos paquetes.

En .Net (incluido .NET Core), el mecanismo compatible con Microsoft para compartir código es NuGet, que define cómo se crean, hospedan y consumen en .NET, y ofrece las herramientas para cada uno de esoso roles

Desde un punto de vista sencillo, un paquete NuGet es un archivo ZIP con la extensión .nupkg que contiene código compilado (archivos DLL), otros archivos relacionados con ese código y un manifiesto descriptivo que incluye información como el número de versión del paquete. Los programadores con código para compartir crean paquetes y los publican en un host público o privado. Los consumidores de paquetes obtienen esos paquetes de los hosts adecuados, los agregan a sus proyectos y, después, llaman a la funcionalidad de un paquete en el código del proyecto. Después, el propio NuGet controla todos los detalles intermedios.

¿Qué más hace NuGet?

Hasta ahora ha aprendido las siguientes características de NuGet:

  • NuGet ofrece el repositorio central nuget.org con compatibilidad de hospedaje privado.
  • NuGet proporciona a los desarrolladores las herramientas que necesitan para crear, publicar y consumir paquetes.
  • Y lo más importante, NuGet mantiene una lista de referencias de los paquetes que se usan en un proyecto y permite restaurar y actualizar los paquetes de esa lista.

Pasos para crear un NuGet

Debemos descargar la herramienta de generación de nuget:

https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

Es línea de comandos para generar los nuget.  Vamos a poner el programa dentro

Del Path de Windows.

Lo copiamos dentro de C:\Windows\System32

Para poder publicar Nuget necesitamos una cuenta Microsoft dentro de nuget.org

Ahora crearemos un proyecto nuevo en el Visual Studio, de tipo Class Library Net Standard.

Una vez creado el proyecto, lo que haremos será crear un clase llamada Persona. Con sus propiedades, idpersona, nombre, apellido, edad y sexo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PostNuget
{
    class Persona
    {
        public int IdPersona { get; set; }
        public string Nombre { get; set; }
        public string Apellido { get; set; }
        public int Edad { get; set; }
        public string Sexo { get; set; }

    }
}

Creamos otra clase llamada comunidad, en la cual crearemos dos métodos uno que devuelve un conjunto de personas y otro método que devuelve una persona por su id.

Método que devuelve una persona.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PostNuget
{
    class Comunidad
    {
        public List<Persona> GetPersonas() 
        {
            List<Persona> personas = new List<Persona>();
            Persona p = new Persona
            {
                IdPersona = 1,
                Nombre = "Juan",
                Apellido = "Cardenas",
                Edad = 14,
                Sexo = "Hombre"
            };
            personas.Add(p);
            Persona p1 = new Persona
            {
                IdPersona = 1,
                Nombre = "Carlos",
                Apellido = "Jimenez",
                Edad = 28,
                Sexo = "Hombre"
            };
            personas.Add(p1);
            Persona p2 = new Persona
            {
                IdPersona = 1,
                Nombre = "Pedro",
                Apellido = "Ramos",
                Edad = 17,
                Sexo = "Hombre"
            };
            personas.Add(p2);
            Persona p3 = new Persona
            {
                IdPersona = 1,
                Nombre = "Marta",
                Apellido = "Valencia",
                Edad = 10,
                Sexo = "Mujer"
            };
            personas.Add(p3);
            Persona p4 = new Persona
            {
                IdPersona = 1,
                Nombre = "Sonia",
                Apellido = "León",
                Edad = 45,
                Sexo = "Mujer"
            };
            personas.Add(p4);
            Persona p5 = new Persona
            {
                IdPersona = 1,
                Nombre = "Yesica",
                Apellido = "Cardenas",
                Edad = 18,
                Sexo = "Mujer"
            };
            personas.Add(p5);
            return personas;
        }
        public Persona FindPersona(int id) 
        {
            return this.GetPersonas().FirstOrDefault(z => z.IdPersona == id);
        }
    }
}

Una vez creado las clases vamos a generar el paquete. Sobre el proyecto damos al clic derecho y en propiedades, pulsamos en package.

Nos debe salir está pantalla y rellenamos los campos a nuestro criterio.

Hay que poner el proyecto en Realease lo ejecutamos una vez y nos crea un paquete.

y nos genera un paquete.

Los nuget van asociados a una Api Key, hay que ir a nuget.org y crear una api key.

Y creamos nuestra api key .

Una vez creada, copiamos la clave generada.

Debemos utilizar un comando de nuget.exe

Entramos, con CMDER, dentro de la ruta donde tengamos el paquete nupkg

Escribimos la siguiente instrucción

nuget push archivo.nupkg APIKEY -source https://api.nuget.org/v3/index.json

nuget push PostNugetPersona2022.2.0.0.nupkg oy2h3dvlxjrwebrepp7aj47ftbc2gz2u3kd53kgzg6ze3e -source https://api.nuget.org/v3/index.json

Insertamos el comando en CMDER una vez hayamos accedido al directorio donde tenemos el nuget.

Ya tendríamos nuestro paquete publicado.

Ya en nuestro Proyecto MVC, podremos agregar el nuget PostNugetPersona2022.

Autor: Steven Alexander Cadena Giler

Curso: Desarrollo Web Full Stack, MultiCloud y MultiPlataforma

Centro: Tajamar

Año académico: 2021-2022

GitHub: https://github.com/Steven-Cadena/PostNuget.git

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.