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 los tipos y métodos que una aplicación llama. Si la biblioteca tiene como destino .NET Standard 2.0, se puede llamar a ella mediante cualquier implementación de .NET (incluido .NET Framework) que admita .NET Standard 2.0. Si la biblioteca tiene como destino .NET 8, cualquier aplicación que tenga como destino .NET 8 puede llamarla. En este tutorial se muestra cómo tener como destino .NET 8.

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 colocar el proyecto de biblioteca de clases. Una solución de Visual Studio actúa como contenedor para uno o varios proyectos. Agregará otros 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 8 y después 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. En el cuadro de texto Plataforma de destino se muestra que el proyecto tiene como destino .NET 8.0.

  3. Si usa Visual Basic, borre el texto del cuadro de texto Espacio de nombres raíz.

    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.

    using System;
    
    namespace UtilityLibraries
    {
        public static class StringLibrary
        {
            public static bool StartsWithUpper(this string str)
            {
                if (string.IsNullOrWhiteSpace(str))
                    return false;
    
                char ch = str[0];
                return char.IsUpper(ch);
            }
        }
    }
    
    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 pedirá 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 en la lista de idiomas; a continuación, elija Todas las plataformas en 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 8 en el cuadro Marco de trabajo. 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 Dependencias del proyecto ShowCase 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.

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

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