Compartir a través de


Tutorial: Creación de una biblioteca de clases de .NET

En este tutorial, creará una biblioteca de utilidades 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 invocar desde cualquier implementación de .NET (incluido .NET Framework) que admita .NET Standard 2.0. Si la biblioteca tiene como destino .NET 10, puede ser llamada por cualquier aplicación que tenga como destino .NET 10. En este tutorial se muestra cómo dirigirse a .NET 10.

Al crear una biblioteca de clases, puede distribuirla como un componente de terceros o como un componente agrupado con una o varias aplicaciones.

Prerrequisitos

Instrucciones de instalación

En Windows, este archivo de configuración WinGet se utiliza para instalar todos los requisitos previos. Si ya tiene algo instalado, WinGet omitirá ese paso.

  1. Descargue el archivo y haga doble clic para ejecutarlo.
  2. Lea el contrato de licencia, escriba yy seleccione Escriba cuando se le pida que acepte.
  3. Si recibe un mensaje de control de cuentas de usuario (UAC) parpadeante en la barra de tareas, permita que la instalación continúe.

En otras plataformas, debe instalar cada uno de estos componentes por separado.

  1. Descargue el instalador recomendado en la página de descarga del SDK .NET y haga doble clic para ejecutarlo. La página de descarga detecta la plataforma y recomienda el instalador más reciente para la plataforma.
  2. Descargue el instalador más reciente de la página principal Visual Studio Code y haga doble clic para ejecutarlo. Esa página también detecta tu plataforma y el vínculo debe ser correcto para tu sistema operativo.
  3. Haga clic en el botón "Instalar" de la página de extensión C# DevKit. Esto abre Visual Studio código y le pregunta si desea instalar o habilitar la extensión. Seleccione "instalar".

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 Visual Studio sirve 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 Vacía 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.

Empiece por crear un proyecto de biblioteca de clases .NET denominado "StringLibrary" y una solución asociada. Una solución actúa como contenedor para uno o varios proyectos. Agregará otros proyectos relacionados a la misma solución.

  1. Inicie Visual Studio Code.

  2. Vaya a la vista Explorador y seleccione Crear .NET Proyecto. Como alternativa, puede abrir la paleta de comandos mediante Ctrl+Mayús+P (Comando+Mayús+P en MacOS) y, a continuación, escribir ".NET" y buscar y seleccionar el comando .NET: Nuevo proyecto.

  3. Elija la biblioteca de clases de la plantilla de proyecto.

  4. A continuación, seleccione la ubicación donde desea que se cree el nuevo proyecto: cree una carpeta denominada y selecciónela.

  5. Asigne al proyecto el nombre StringLibrary.

  6. Seleccione .sln como formato de archivo de solución.

  7. Seleccione Mostrar todas las opciones de plantilla.

  8. A continuación, seleccione .NET 10. A continuación, seleccione Crear proyecto.

  9. En el cuadro de diálogo ¿Confía en los autores de los archivos de esta carpeta? , seleccione Sí, confío en los autores. Puede confiar en los autores porque esta carpeta solo tiene archivos generados por .NET y agregados o modificados por usted.

Empiece por crear un GitHub Codespace con el entorno del tutorial y, a continuación, cree un proyecto de biblioteca de clases de .NET.

  1. Abra una ventana del explorador y vaya al repositorio codespace del tutorial.

  2. Seleccione el botón Code y, a continuación, la pestaña Codespaces.

  3. Seleccione el signo o el botón verde Crear espacio de código en main para crear un nuevo codespace con este entorno.

    Creación de un nuevo codespace desde el repositorio del tutorial

  4. Cuando se cargue el espacio de código, abra el terminal y vaya a la carpeta tutorials:

    cd tutorials
    
  5. Cree un nuevo proyecto de biblioteca de clases:

    dotnet new classlib -n StringLibrary
    

Creación de un proyecto de biblioteca de clases

  1. Agregue un nuevo proyecto de biblioteca de clases .NET denominado StringLibrary 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 biblioteca. Elija C# o Visual Basic en la lista Idioma y, a continuación, elija Todas las plataformas en la lista Plataforma. 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 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 Explorador de soluciones y seleccione Properties. El cuadro de texto Target Framework muestra que el proyecto tiene como destino .NET 10.0.

  3. Si usa Visual Basic, borre el texto del cuadro de texto Default.

    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 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, , contiene un método denominado . Este método devuelve un valor de 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 devuelve si un carácter está en mayúsculas.

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

  5. En la barra de menús, seleccione CompilarCompilar solución, o bien pulse CtrlMayúsB, para comprobar que el proyecto se compila sin errores.

  1. Se crea el proyecto y se abre Class1.cs .

  2. Reemplace el contenido de Class1.cs por el código siguiente:

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    

    La biblioteca de clases, , contiene un método denominado . Este método devuelve un valor de 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 devuelve si un carácter está en mayúsculas.

    se implementa como un método de extensión para que pueda llamarlo como si fuera miembro de la clase .

  3. Guarde el archivo.

  4. Expanda Explorador de soluciones en la parte inferior de la vista Explorer.

  5. Haga clic con el botón derecho en la solución en Explorador de soluciones y seleccione Build o abra la paleta de comandos y seleccione .NET: Compilar para compilar la solución y comprobar que el proyecto se compila sin errores.

    La salida del terminal es similar al ejemplo siguiente:

      Determining projects to restore...
      All projects are up-to-date for restore.
      StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net10.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    
  1. Vaya a la carpeta StringLibrary:

    cd StringLibrary
    
  2. Abra Class1.cs y reemplace su contenido por el código siguiente:

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    

    La biblioteca de clases, , contiene un método denominado . Este método devuelve un valor de 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 devuelve si un carácter está en mayúsculas.

    se implementa como un método de extensión para que pueda llamarlo como si fuera miembro de la clase .

  3. Guarde el archivo y compile el proyecto:

    dotnet build
    

    La compilación debe realizarse correctamente 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 Idioma y, a continuación, elija Todas las plataformas en la lista Plataforma.

    3. Elija la plantilla Aplicación de consola y elija Siguiente.

    4. En la página Configure el nuevo proyecto, escriba ShowCase en el cuadro Nombre del proyecto. Después, haga clic en Siguiente.

    5. En la página Información adicional, seleccione .NET 10 en el cuadro Framework. 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;
    
    int row = 0;
    
    do
    {
        if (row == 0 || row >= 25)
            ResetConsole();
    
        string? input = Console.ReadLine();
        if (string.IsNullOrWhiteSpace(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 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 Entrar sin especificar una cadena, la aplicación finaliza y la ventana de la consola se cierra.

  1. Haga clic con el botón derecho en la solución en Explorador de soluciones y seleccione Nuevo proyecto o en la paleta de comandos seleccione .NET: Nuevo proyecto.

  2. Seleccione Aplicación de consola.

  3. Asígnele el nombre ShowCase, seleccione el directorio predeterminado y seleccione Crear proyecto.

  4. Abra ShowCase/Program.cs y reemplace todo el código por el código siguiente.

    using System;
    using UtilityLibraries;
    
    int row = 0;
    
    do
    {
        if (row == 0 || row >= 25)
            ResetConsole();
    
        string? input = Console.ReadLine();
        if (string.IsNullOrWhiteSpace(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;
    }
    

    El código usa la variable 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 Entrar sin especificar una cadena, la aplicación finaliza y la ventana de la consola se cierra.

  5. Guarde los cambios.

  1. Vuelva a la carpeta tutoriales y cree una nueva aplicación de consola:

    cd ..
    dotnet new console -n ShowCase
    
  2. Abra ShowCase/Program.cs y reemplace todo el código por el código siguiente:

    using System;
    using UtilityLibraries;
    
    int row = 0;
    
    do
    {
        if (row == 0 || row >= 25)
            ResetConsole();
    
        string? input = Console.ReadLine();
        if (string.IsNullOrWhiteSpace(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;
    }
    

    El código usa la variable 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 Entrar sin especificar una cadena, la aplicación finaliza y la ventana de la consola se cierra.

  3. Guarde los cambios.

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 Explorador de soluciones, haga clic con el botón derecho en el nodo ShowCase del proyecto Dependencies y seleccione Agregar referencia del proyecto.

    Agregar menú contextual de referencia 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

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

  2. Seleccione "StringLibrary".

Sugerencia

Como alternativa, agregue lo siguiente a ShowCase.csproj:

<ItemGroup>
  <ProjectReference Include="..\StringLibrary\StringLibrary.csproj" />
</ItemGroup>

Agregue una referencia al proyecto StringLibrary desde el proyecto ShowCase:

cd ShowCase
dotnet add reference ../StringLibrary/StringLibrary.csproj

Ejecuta la aplicación

  1. En Explorador de soluciones, haga clic con el botón derecho en el proyecto ShowCase y seleccione Set como Proyecto de inicio en el menú contextual.

    Menú contextual de proyecto de Visual Studio para establecer el proyecto de arranque

  2. Presione CtrlF5 para compilar y ejecutar el programa sin depurar.

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

    Ventana de consola con ShowCase en ejecución

  1. Use la barra de menús superior para seleccionar EjecutarEjecutar sin depurar.

  2. seleccione C#.

  3. Seleccione C#: ShowCase.

    Si recibe un error que indica que no se carga ningún programa de C#, cierre la carpeta que tiene abierta y abra la carpeta . A continuación, vuelva a intentar ejecutar la aplicación.

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

    La salida del terminal es similar al ejemplo siguiente:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    a string that starts with a lowercase letter
    Input: a string that starts with a lowercase letter
    Begins with uppercase? : No
    
  1. Ejecute la aplicación ShowCase:

    dotnet run
    
  2. Pruebe el programa escribiendo cadenas y presionando Enter, luego presione Enter para salir.

    La salida del terminal es similar al ejemplo siguiente:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    a string that starts with a lowercase letter
    Input: a string that starts with a lowercase letter
    Begins with uppercase? : No
    

Recursos adicionales

Limpieza de recursos

GitHub elimina automáticamente codespace después de 30 días de inactividad. Si tiene previsto explorar más tutoriales en esta serie, puede dejar su Codespace disponible. Si está listo para ir al sitio .NET para descargar el .NET SDK, puede eliminar Codespace. Para eliminar Codespace, abra una ventana del explorador y vaya a Codespaces. Ves una lista de tus espacios de código en la ventana. Seleccione los tres puntos () de la entrada del espacio de código del tutorial de aprendizaje. A continuación, seleccione "Eliminar".

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.