.NET Core: crear una biblioteca estándar de .NET

Una biblioteca de clases define los tipos y métodos que se pueden llamar desde cualquier aplicación.

  • Una biblioteca de clases desarrollada con .NET Core es compatible con .NET Standard Library, lo que permite que cualquier plataforma .NET que admita esa versión de .NET Standard Library llame a su biblioteca.

  • Cuando termine su biblioteca de clases, puede decidir si desea distribuirla como un componente de terceros o si desea incluirla como un componente que se incluye con una o más aplicaciones.

Comencemos agregando un proyecto de biblioteca de clases en nuestra aplicación de consola; haga clic derecho en elsrc carpeta en el Explorador de soluciones y seleccione Add → New Project…

En el Add New Project cuadro de diálogo, elija el nodo .NET Core y, a continuación, elija la plantilla de proyecto Biblioteca de clases (.NET Core).

En el cuadro de texto Nombre, ingrese "UtilityLibrary" como el nombre del proyecto, como muestra la siguiente figura.

Haga clic en Aceptar para crear el proyecto de biblioteca de clases. Una vez creado el proyecto, agreguemos una nueva clase. Haga clic derecho enproject en el Explorador de soluciones y seleccione Add → Class...

Seleccione la clase en el panel central e ingrese StringLib.cs en el nombre y el campo y luego haga clic en Add. Una vez agregada la clase, reemplace el siguiente código en el archivo StringLib.cs.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
  
namespace UtilityLibrary { 
   public static class StringLib { 
      public static bool StartsWithUpper(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
         return false; 
         Char ch = str[0]; 
         return Char.IsUpper(ch); 
      } 
      public static bool StartsWithLower(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
         return false; 
         Char ch = str[0]; 
         return Char.IsLower(ch); 
      } 
      public static bool StartsWithNumber(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
         return false;  
         Char ch = str[0]; 
         return Char.IsNumber(ch); 
      } 
   } 
}
  • La biblioteca de clases UtilityLibrary.StringLib, contiene algunos métodos como, StartsWithUpper, StartsWithLowery StartsWithNumber que devuelve un valor booleano que indica si la instancia de cadena actual comienza con mayúscula, minúscula y número respectivamente.

  • En .NET Core, el Char.IsUpper El método devuelve verdadero si un carácter está en mayúsculas, el método Char.IsLower devuelve verdadero si un carácter está en minúsculas y, de manera similar, el método Char.IsNumber devuelve verdadero si un carácter es numérico.

  • En la barra de menú, elija Generar, Generar solución. El proyecto debería compilarse sin errores.

  • Nuestro proyecto de consola .NET Core no tiene acceso a nuestra biblioteca de clases.

  • Ahora, para consumir esta biblioteca de clases, necesitamos agregar una referencia de esta biblioteca de clases en nuestro proyecto de consola.

Para hacerlo, expanda FirstApp y haga clic con el botón derecho en Referencias y seleccione Add Reference…

En el cuadro de diálogo Administrador de referencias, seleccione UtilityLibrary, nuestro proyecto de biblioteca de clases, y luego haga clic en OK.

Ahora abramos el archivo Program.cs del proyecto de la consola y reemplacemos todo el código con el siguiente código.

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

namespace FirstApp { 
   public class Program { 
      public 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: {0} {1,30}: {2}\n", input, "Begins with uppercase? ", 
            input.StartsWithUpper() ? "Yes" : "No"); 
         } while (true); 
      } 
   } 
}

Ejecutemos ahora su aplicación y verá el siguiente resultado.

Para una mejor comprensión, hagamos uso de los otros métodos de extensión de su biblioteca de clases en su proyecto.