Compartir a través de


Tutorial: Creación de una biblioteca de clases de .NET mediante Visual Studio

En este tutorial, creará una biblioteca de clases sencilla que contiene un único método de control de cadenas.

Una biblioteca de clases define tipos y métodos a los que llama una aplicación. Si la biblioteca tiene como destino .NET Standard 2.0, cualquier implementación de .NET (incluido .NET Framework) que admita .NET Standard 2.0 puede llamarla. Si la biblioteca tiene como destino .NET 10, cualquier aplicación que tenga como destino .NET 10 puede llamarla. En este tutorial se muestra cómo dirigirse a .NET 10.

Al crear una biblioteca de clases, puede distribuirla como un paquete NuGet o como un componente agrupado con la aplicación que lo usa.

Prerrequisitos

Creación de una solución

Empiece por crear una solución en blanco para contener el proyecto de biblioteca de clases. Una solución de Visual Studio actúa como contenedor para uno o varios proyectos. Agregue proyectos relacionados a la misma solución.

Para crear la solución en blanco:

  1. Inicie Visual Studio.

  2. En la ventana de inicio, elija Crear un nuevo proyecto.

  3. En el cuadro de búsqueda de la página Crear un nuevo proyecto, escriba solución. Elija la plantilla Solución en blanco y luego seleccione Siguiente.

    plantilla de solución en blanco en Visual Studio

  4. En la página Configure el nuevo proyecto, escriba ClassLibraryProjects en el cuadro Nombre de la solución. A continuación, elija Crear.

Creación de un proyecto de biblioteca de clases

  1. Agregue un nuevo proyecto de biblioteca de clases de .NET denominado StringLibrary a la solución.

    1. Haga clic con el botón derecho en la solución en Solution Explorer y seleccione Agregar>Nuevo Proyecto.

    2. En el cuadro de búsqueda de la página Agregar un nuevo proyecto, escriba biblioteca. Elija C# o Visual Basic de la lista de Lenguajes, y a continuación, elija Todas las plataformas de la lista de Plataformas. Elija la plantilla Biblioteca de clases y luego Siguiente.

    3. En la página Configura tu nuevo proyecto, escriba StringLibrary en el cuadro Nombre del proyecto y luego elija Siguiente.

    4. En la página Información adicional , seleccione .NET 10 y, a continuación, elija Crear.

  2. Compruebe que la biblioteca tiene como destino la versión correcta de .NET. Haga clic con el botón derecho en el proyecto de biblioteca en el Explorador de soluciones y, luego, seleccione Propiedades. El cuadro de texto Marco de destino muestra que el proyecto tiene como destino .NET 10.0.

  3. Si usa Visual Basic, desactive el texto del cuadro de texto Espacio de nombres predeterminado .

    Propiedades del proyecto para la biblioteca de clases

    Para cada proyecto, Visual Basic crea automáticamente un espacio de nombres que corresponde al nombre del proyecto. En este tutorial, definirá un espacio de nombres de nivel superior mediante la palabra clave namespace en el archivo de código.

  4. Reemplace el código de la ventana de código para Class1.cs o Class1.vb por el código siguiente y guarde el archivo. Si no se muestra el idioma que desea usar, cambie el selector de idioma en la parte superior de la página.

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    
    Imports System.Runtime.CompilerServices
    
    Namespace UtilityLibraries
        Public Module StringLibrary
            <Extension>
            Public Function StartsWithUpper(str As String) As Boolean
                If String.IsNullOrWhiteSpace(str) Then
                    Return False
                End If
    
                Dim ch As Char = str(0)
                Return Char.IsUpper(ch)
            End Function
        End Module
    End Namespace
    

    La biblioteca de clases, UtilityLibraries.StringLibrary, contiene un método denominado StartsWithUpper. Este método devuelve un valor de Boolean que indica si la instancia de cadena actual comienza con un carácter en mayúsculas. 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.

    StartsWithUpper se implementa como un método de extensión para que pueda llamarlo como si fuera miembro de la clase String. El signo de interrogación (?) después de string en el código de C# indica que la cadena puede ser null.

  5. En la barra de menús, seleccione Compilar>Compilar solución, o bien pulse Ctrl+Mayús+B, para comprobar que el proyecto se compila sin errores.

Adición de una aplicación de consola a la solución

Agregue una aplicación de consola que use la biblioteca de clases. La aplicación pide al usuario que escriba una cadena e informe si la cadena comienza con un carácter en mayúsculas.

  1. Agregue una nueva aplicación de consola de .NET denominada ShowCase a la solución.

    1. Haga clic con el botón derecho en la solución en Explorador de Soluciones y seleccione Agregar>Nuevo proyecto.

    2. En el cuadro de búsqueda de la página Agregar un nuevo proyecto, escriba consola. Elija C# o Visual Basic de la lista de Lenguajes, y a continuación, elija Todas las plataformas de la lista de Plataformas.

    3. Elija la plantilla de aplicación de consola y, a continuación, elija Siguiente.

    4. En la página Configure el nuevo proyecto, escriba ShowCase en el cuadro Nombre del proyecto. A continuación, elija Siguiente.

    5. En la página Información adicional , seleccione .NET 10 en el cuadro Marco . A continuación, elija Crear.

  2. En la ventana de código del archivo Program.cs o Program.vb, reemplace todo el código por el código siguiente.

    using System;
    using UtilityLibraries;
    
    class Program
    {
        static void Main(string[] args)
        {
            int row = 0;
    
            do
            {
                if (row == 0 || row >= 25)
                    ResetConsole();
    
                string? input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) break;
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}");
                row += 3;
            } while (true);
            return;
    
            // Declare a ResetConsole local method
            void ResetConsole()
            {
                if (row > 0)
                {
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
                Console.Clear();
                Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
                row = 3;
            }
        }
    }
    
    Imports UtilityLibraries
    
    Module Program
        Dim row As Integer = 0
    
        Sub Main()
            Do
                If row = 0 OrElse row >= 25 Then ResetConsole()
    
                Dim input As String = Console.ReadLine()
                If String.IsNullOrEmpty(input) Then Return
    
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{If(input.StartsWithUpper(), "Yes", "No")} {Environment.NewLine}")
                row += 3
            Loop While True
        End Sub
    
        Private Sub ResetConsole()
            If row > 0 Then
                Console.WriteLine("Press any key to continue...")
                Console.ReadKey()
            End If   
            Console.Clear()
            Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}")
            row = 3  
        End Sub
    End Module
    

    El código usa la variable row para mantener un recuento del número de filas de datos escritos en la ventana de la consola. Siempre que sea mayor o igual que 25, el código borra la ventana de la consola y muestra un mensaje al usuario.

    El programa solicita al usuario que escriba una cadena. Indica si la cadena comienza con un carácter en mayúsculas. Si el usuario presiona la tecla Enter sin introducir una cadena, la aplicación termina y se cierra la ventana de la consola.

Agregar una referencia de proyecto

Inicialmente, el nuevo proyecto de aplicación de consola no tiene acceso a la biblioteca de clases. Para permitir que llame a métodos en la biblioteca de clases, cree una referencia de proyecto al proyecto de biblioteca de clases.

  1. En el Explorador de soluciones, haga clic con el botón derecho en el nodo ShowCase del proyecto y seleccione Agregar referencia de proyecto.

    Agregar referencia al menú contextual en Visual Studio

  2. En el cuadro de diálogo Administrador de referencias, seleccione el proyecto StringLibrary y después Aceptar.

    Cuadro de diálogo Administrador de referencias con StringLibrary seleccionado

Ejecución de la aplicación

  1. 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.

    menú contextual del proyecto de Visual Studio para configurar el proyecto de inicio

  2. Presione Ctrl+F5 para compilar y ejecutar el programa sin depurar.

  3. Pruebe el programa escribiendo cadenas y presionando Enter, luego presione Enter para salir.

    ventana consola de Ventana de la consola con ShowCase en ejecución

Recursos adicionales

Pasos siguientes

En este tutorial, ha creado una biblioteca de clases. En el siguiente tutorial, aprenderás a realizar pruebas unitarias de la biblioteca de clases.

O bien, puede omitir las pruebas unitarias automatizadas y aprender a compartir la biblioteca mediante la creación de un paquete NuGet:

O bien, aprenda a publicar una aplicación de consola. Si publica la aplicación de consola desde la solución que creó en este tutorial, la biblioteca de clases la incluye como un archivo .dll.