Tutorial: criar uma biblioteca de classes do .NET usando Visual Studio

Neste tutorial, você cria uma biblioteca de classes simples que contém um único método de manipulação de cadeia de caracteres.

Uma biblioteca de classes define tipos e métodos que são chamados por um aplicativo. se a biblioteca tiver como destino .NET Standard 2,0, ela poderá ser chamada por qualquer implementação do .net (incluindo .NET Framework) que ofereça suporte a .NET Standard 2,0. Se a biblioteca tiver como destino o .NET 6, ela poderá ser chamada por qualquer aplicativo direcionado ao .NET 6. Este tutorial mostra como direcionar o .NET 6.

ao criar uma biblioteca de classes, você pode distribuí-la como um pacote NuGet ou como um componente agrupado com o aplicativo que a utiliza.

Pré-requisitos

Criar uma solução

Comece criando uma solução em branco para colocar o projeto de biblioteca de classes no. uma solução Visual Studio serve como um contêiner para um ou mais projetos. Você adicionará mais projetos relacionados à mesma solução.

Para criar a solução em branco:

  1. Inicie o Visual Studio.

  2. Na janela iniciar, escolha criar um novo projeto.

  3. Na página criar um novo projeto , digite solução na caixa de pesquisa. Escolha o modelo de solução em branco e, em seguida, escolha Avançar.

    Modelo de solução em branco no Visual Studio

  4. Na página configurar seu novo projeto , digite ClassLibraryProjects na caixa nome da solução . Em seguida, escolha Criar.

Criar um projeto de biblioteca de classes

  1. Adicione um novo projeto de biblioteca de classes .NET chamado "StringLibrary" à solução.

    1. clique com o botão direito do mouse na solução em Gerenciador de Soluções e selecione adicionar > novo Project.

    2. Na página Adicionar um novo projeto , insira biblioteca na caixa de pesquisa. escolha C# ou Visual Basic na lista idioma e, em seguida, escolha todas as plataformas na lista plataforma. Escolha o modelo biblioteca de classes e, em seguida, escolha Avançar.

    3. na página configurar seu novo projeto , digite StringLibrary na caixa nome do Project e escolha avançar.

    4. Na página informações adicionais , selecione .net 6 (suporte a longo prazo) e, em seguida, escolha criar.

  2. Verifique se a biblioteca tem como destino a versão correta do .NET. Clique com o botão direito do mouse no projeto de biblioteca em Gerenciador de soluções e selecione Propriedades. A caixa de texto Framework de destino mostra que o projeto tem como alvo o .net 6,0.

  3. se você estiver usando Visual Basic, desmarque o texto na caixa de texto namespace raiz .

    Propriedades do projeto da biblioteca de classes

    para cada projeto, Visual Basic cria automaticamente um namespace que corresponde ao nome do projeto. Neste tutorial, você define um namespace de nível superior usando a namespace palavra-chave no arquivo de código.

  4. Substitua o código na janela de código por Class1. cs ou Class1. vb pelo código a seguir e salve o arquivo. Se o idioma que você deseja usar não for mostrado, altere o seletor de idioma na parte superior da página.

    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
    

    A biblioteca de classes, UtilityLibraries.StringLibrary , contém um método chamado StartsWithUpper . Esse método retorna um Boolean valor que indica se a instância atual da cadeia de caracteres começa com um caractere maiúsculo. O padrão Unicode distingue caracteres maiúsculos de caracteres minúsculos. O método Char.IsUpper(Char) retornará true se um caractere for maiúsculo.

    StartsWithUpper é implementado como um método de extensão para que você possa chamá-lo como se fosse um membro da String classe. O ponto de interrogação ( ? ) depois string indica que a cadeia de caracteres pode ser nula.

  5. Na barra de menus, selecione criar > solução de compilação ou pressione Ctrl + Shift + B para verificar se o projeto é compilado sem erros.

Adicionar um aplicativo de console à solução

Adicione um aplicativo de console que usa a biblioteca de classes. O aplicativo solicitará que o usuário insira uma cadeia de caracteres e relate se a cadeia de caracteres começa com um caractere maiúsculo.

  1. Adicione um novo aplicativo de console .NET chamado "ShowCase" à solução.

    1. Clique com o botão direito do mouse na solução em Gerenciador de soluções e selecione Adicionar > novo projeto.

    2. Na página Adicionar um novo projeto , insira console na caixa de pesquisa. escolha C# ou Visual Basic na lista idioma e, em seguida, escolha todas as plataformas na lista plataforma.

    3. Escolha o modelo de aplicativo de console e, em seguida, escolha Avançar.

    4. na página configurar seu novo projeto , insira ShowCase na caixa nome do Project . Em seguida, escolha Avançar.

    5. Na página informações adicionais , selecione .net 6 (suporte a longo prazo) na caixa estrutura . Em seguida, escolha Criar.

  2. Na janela de código do arquivo Program. cs ou Program. vb , substitua todo o código pelo código a seguir.

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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
    

    O código usa a variável row ​​para manter uma contagem do número de linhas de dados gravadas na janela do console. Sempre que for maior ou igual a 25, o código limpará a janela do console e exibirá uma mensagem para o usuário.

    O programa solicita que o usuário insira uma cadeia de caracteres. Ele indica se a cadeia de caracteres começa com um caractere maiúsculo. Se o usuário pressionar a tecla Enter sem inserir uma cadeia de caracteres, o aplicativo será encerrado e a janela do console será fechada.

Adicionar uma referência ao projeto

Inicialmente, o novo projeto de aplicativo de console não tem acesso à biblioteca de classes. Para permitir que ele chame métodos na biblioteca de classes, crie uma referência de projeto para o projeto de biblioteca de classes.

  1. em Gerenciador de Soluções, clique com o botão direito do mouse no ShowCasedependências do projeto e selecione adicionar referência de Project.

    Adicionar menu de contexto de referência no Visual Studio

  2. Na caixa de diálogo Gerenciador de referências , selecione o projeto StringLibrary e selecione OK.

    Caixa de diálogo Gerenciador de referências com StringLibrary selecionado

Executar o aplicativo

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto ShowCase e selecione Definir como Projeto de Inicialização no menu de contexto.

    Visual Studio menu de contexto do projeto para definir o projeto de inicialização

  2. Pressione Ctrl + F5 para compilar e executar o programa sem depuração.

    barra de ferramentas do projeto Visual Studio mostrando o botão de depuração

  3. Experimente o programa digitando cadeias de caracteres e pressionando Entere pressione Enter para sair.

    Janela do console com o ShowCase em execução

Recursos adicionais

Próximas etapas

Neste tutorial, você criou uma biblioteca de classes. No próximo tutorial, você aprenderá a testar unidade a biblioteca de classes.

ou você pode ignorar o teste de unidade automatizado e aprender a compartilhar a biblioteca criando um pacote de NuGet:

Ou saiba como publicar um aplicativo de console. Se você publicar o aplicativo de console da solução criada neste tutorial, a biblioteca de classes o acompanhará como um arquivo de .dll .

Neste tutorial, você cria uma biblioteca de classes simples que contém um único método de manipulação de cadeia de caracteres.

Uma biblioteca de classes define tipos e métodos que são chamados por um aplicativo. se a biblioteca tiver como destino .NET Standard 2,0, ela poderá ser chamada por qualquer implementação do .net (incluindo .NET Framework) que ofereça suporte a .NET Standard 2,0. Se a biblioteca tiver como destino o .NET 5, ela poderá ser chamada por qualquer aplicativo que tenha como destino o .NET 5. Este tutorial mostra como direcionar o .NET 5.

ao criar uma biblioteca de classes, você pode distribuí-la como um pacote NuGet ou como um componente agrupado com o aplicativo que a utiliza.

Pré-requisitos

Criar uma solução

Comece criando uma solução em branco para colocar o projeto de biblioteca de classes no. uma solução Visual Studio serve como um contêiner para um ou mais projetos. Você adicionará mais projetos relacionados à mesma solução.

Para criar a solução em branco:

  1. Inicie o Visual Studio.

  2. Na janela iniciar, escolha criar um novo projeto.

  3. Na página criar um novo projeto , digite solução na caixa de pesquisa. Escolha o modelo de solução em branco e, em seguida, escolha Avançar.

    Modelo de solução em branco no Visual Studio

  4. na página configurar seu novo projeto , digite ClassLibraryProjects na caixa nome do Project . Em seguida, escolha Criar.

Criar um projeto de biblioteca de classes

  1. Adicione um novo projeto de biblioteca de classes .NET chamado "StringLibrary" à solução.

    1. clique com o botão direito do mouse na solução em Gerenciador de Soluções e selecione adicionar > novo Project.

    2. Na página Adicionar um novo projeto , insira biblioteca na caixa de pesquisa. escolha C# ou Visual Basic na lista idioma e, em seguida, escolha todas as plataformas na lista plataforma. Escolha o modelo biblioteca de classes e, em seguida, escolha Avançar.

    3. na página configurar seu novo projeto , digite StringLibrary na caixa nome do Project e escolha avançar.

    4. Na página informações adicionais , selecione .NET 5,0 (atual) e, em seguida, escolha criar.

  2. Verifique se a biblioteca tem como destino a versão correta do .NET. Clique com o botão direito do mouse no projeto de biblioteca em Gerenciador de soluções e selecione Propriedades. A caixa de texto Framework de destino mostra que o projeto tem como alvo o .NET 5,0.

  3. se você estiver usando Visual Basic, desmarque o texto na caixa de texto namespace raiz .

    Propriedades do projeto da biblioteca de classes

    para cada projeto, Visual Basic cria automaticamente um namespace que corresponde ao nome do projeto. Neste tutorial, você define um namespace de nível superior usando a namespace palavra-chave no arquivo de código.

  4. Substitua o código na janela de código por Class1. cs ou Class1. vb pelo código a seguir e salve o arquivo. Se o idioma que você deseja usar não for mostrado, altere o seletor de idioma na parte superior da 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
    

    A biblioteca de classes, UtilityLibraries.StringLibrary , contém um método chamado StartsWithUpper . Esse método retorna um Boolean valor que indica se a instância atual da cadeia de caracteres começa com um caractere maiúsculo. O padrão Unicode distingue caracteres maiúsculos de caracteres minúsculos. O método Char.IsUpper(Char) retornará true se um caractere for maiúsculo.

    StartsWithUpper é implementado como um método de extensão para que você possa chamá-lo como se fosse um membro da String classe.

  5. Na barra de menus, selecione criar > solução de compilação ou pressione Ctrl + Shift + B para verificar se o projeto é compilado sem erros.

Adicionar um aplicativo de console à solução

Adicione um aplicativo de console que usa a biblioteca de classes. O aplicativo solicitará que o usuário insira uma cadeia de caracteres e relate se a cadeia de caracteres começa com um caractere maiúsculo.

  1. Adicione um novo aplicativo de console .NET chamado "ShowCase" à solução.

    1. Clique com o botão direito do mouse na solução em Gerenciador de soluções e selecione Adicionar > novo projeto.

    2. Na página Adicionar um novo projeto , insira console na caixa de pesquisa. escolha C# ou Visual Basic na lista idioma e, em seguida, escolha todas as plataformas na lista plataforma.

    3. Escolha o modelo de aplicativo de console e, em seguida, escolha Avançar.

    4. na página configurar seu novo projeto , insira ShowCase na caixa nome do Project . Em seguida, escolha Avançar.

    5. Na página informações adicionais , selecione .NET 5,0 (atual) na caixa estrutura de destino . Em seguida, escolha Criar.

  2. Na janela de código do arquivo Program. cs ou Program. vb , substitua todo o código pelo código a seguir.

    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
    

    O código usa a variável row ​​para manter uma contagem do número de linhas de dados gravadas na janela do console. Sempre que for maior ou igual a 25, o código limpará a janela do console e exibirá uma mensagem para o usuário.

    O programa solicita que o usuário insira uma cadeia de caracteres. Ele indica se a cadeia de caracteres começa com um caractere maiúsculo. Se o usuário pressionar a tecla Enter sem inserir uma cadeia de caracteres, o aplicativo será encerrado e a janela do console será fechada.

Adicionar uma referência ao projeto

Inicialmente, o novo projeto de aplicativo de console não tem acesso à biblioteca de classes. Para permitir que ele chame métodos na biblioteca de classes, crie uma referência de projeto para o projeto de biblioteca de classes.

  1. em Gerenciador de Soluções, clique com o botão direito do mouse no ShowCasedependências do projeto e selecione adicionar referência de Project.

    Adicionar menu de contexto de referência no Visual Studio

  2. Na caixa de diálogo Gerenciador de referências , selecione o projeto StringLibrary e selecione OK.

    Caixa de diálogo Gerenciador de referências com StringLibrary selecionado

Executar o aplicativo

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto ShowCase e selecione Definir como Projeto de Inicialização no menu de contexto.

    Visual Studio menu de contexto do projeto para definir o projeto de inicialização

  2. Pressione Ctrl + F5 para compilar e executar o programa sem depuração.

    barra de ferramentas do projeto Visual Studio mostrando o botão de depuração

  3. Experimente o programa digitando cadeias de caracteres e pressionando Entere pressione Enter para sair.

    Janela do console com o ShowCase em execução

Recursos adicionais

Próximas etapas

Neste tutorial, você criou uma biblioteca de classes. No próximo tutorial, você aprenderá a testar unidade a biblioteca de classes.

ou você pode ignorar o teste de unidade automatizado e aprender a compartilhar a biblioteca criando um pacote de NuGet:

Ou saiba como publicar um aplicativo de console. Se você publicar o aplicativo de console da solução criada neste tutorial, a biblioteca de classes o acompanhará como um arquivo de .dll .

Este tutorial só está disponível para o .NET 5 e o .NET 6. Selecione uma dessas opções na parte superior da página.