Desenvolvimento

21 ago, 2018

Criando pacotes NuGet

Publicidade

O NuGet é um gerenciador de pacotes .Net e é utilizado para compartilhar bibliotecas. Neste contexto, podem surgir necessidades de criar novas bibliotecas, disponibilizadas de maneira privada ou não, de acordo com o cenário de cada desenvolvedor. Com isso, é proposto demonstrar como cria-se os pacotes NuGet e as formas de disponibilização do mesmo.

Criação do projeto

Primeiramente, deve-se abrir o Visual Studio, selecionar a opção ‘Arquivo’, ‘Novo’ e ‘Projeto’.

Criar novo projeto

Será apresentado uma tela com todas as tecnologias oferecidas pelo Visual Studio. Deve-se selecionar a opção .NET Standard e escolher o projeto Class Library.

Selecionar tipo de projeto a ser criado

Com o projeto já criado, tem-se a seguinte estrutura:

Estrutura do projeto

Desenvolvimento da biblioteca

Transforma-se a classe Class1.cs em estática e cria-se um novo método para validar; basicamente, uma string, passada como parâmetro, que será o CPF. A classe ficará da seguinte forma:

namespace GeneralValidation
{
    public static class Class1
    {
        public static bool CpfValidate(string cpf)
        {
            if (string.IsNullOrEmpty(cpf))
                return false;

            cpf = cpf.Replace("-", string.Empty)
                     .Replace(".", string.Empty);

            if (cpf.Length != 11)
                return false;

            return true;
        }
    }
}

Nota-se que é muito simples, pois é como programar uma classe em um projeto .Net qualquer. Uma observação que deve ser ressaltada, é que neste tipo de contexto/cenário, o tipo dynamic torna-se instável, podendo apresentar erros durante a compilação. Com isso, deve ser utilizado DTOs (data transfer object).

Criação do pacote

No projeto GeneralValidation, clique com o botão direito e selecione a opção “Propriedades“.

Acessar propriedades do projeto

Deve-se ir na seção Pacote e preencher as seguintes informações destacadas:

Configurando propriedades do pacote

Após configurar todo o projeto, altere o projeto para Release, clique com o botão direito no projeto e selecione a opção “Pacote“.

Criação do pacote

Com isso, o Visual Studio irá construir o projeto e será criado um arquivo na pasta \bin\Release do projeto, com extensão .nupkg.

Build do projeto
Pacote criado

Publicação em nuget.org

Primeiramente deve-se acessar a url https://www.nuget.org/, criar ou acessar uma conta, e em seguida clicar no username e selecionar a opção API Keys.

Cria-se uma nova chave, expandindo a opção Create e onde preenche-se os campos Key Name e Glob Pattern. Por fim, clica-se em Create.

Criação da chave

Com o processo de criação da chave já realizado, copia-se a mesma, como é exibido na imagem:

Copiar a chave gerada

Após copiar a chave, deve-se salvá-la em algum local seguro para que possa ser utilizada em operações futuras.

Abra o prompt de comando do windows e digite o seguinte comando:

dotnet nuget push [NOME DO PACOTE] -k [CHAVE] -s https://api.nuget.org/v3/index.json
Enviando pacote

Para poder ver o pacote, acesse o username e vá até a opção “Manage Packages“.

Com isso, poderá ser visto como na seguinte imagem:

Pacote já presente em nuget.org

Publicação local na máquina

Quando é gerado o pacote do projeto e o mesmo se encontra na pasta \bin\release, o mesmo já pode ser utilizado em qualquer outro projeto, bastando realizar a importação.

Publicação privada no VSTS

Antes de tudo, deve-se instalar um plugin no VSTS. Acesse a url: https://marketplace.visualstudio.com/items?itemName=ms.feed e clique em “Obter“.

Instalação de plugin no VSTS

Esse plugin é gratuito para uma conta que contém até cinco assinaturas. Acima disso deve-se comprar uma assinatura.

Após a instalação, acesse o projeto no VSTS, direcione para a seção Build and Release e selecione a opção Packages.

Clique na opção “New Feed“.

Preencha as informações solicitadas e clique no botão “Create“.

Após criar um feed, inicia-se o processo de publicação, clicando na opção como a imagem:

Primeiramente, baixa-se um arquivo compactado disponibilizado na janela aberta:

Após isso, extraia os arquivos do arquivo compactado, abra o prompt de comando e navegue até a pasta onde estão localizados os arquivos já descompactados. Com isso, executa-se o seguinte comando, lembrando que este comando é gerado automaticamente pelo VSTS, bastando copiar e colar no cmd:

nuget.exe sources Add -Name “NugetTeste” -Source “https://arptecnologia.pkgs.visualstudio.com/_packaging/NugetTeste/nuget/v3/index.json"

Após isso, é necessário copiar o pacote gerado e colar na pasta onde está os arquivos descompactados.

E, por fim, executa-se mais um comando, lembrando que é de acordo com o pacote criado. Após executar o comando, provavelmente deverá pedir as credenciais referente ao VSTS.

nuget.exe push -Source “NugetTeste” -ApiKey VSTS GeneralValidation.1.0.0.nupkg

Com isso, pode-se ver o pacote já no VSTS, como exibido na imagem:

Importando pacotes NuGet de terceiros no Visual Studio

Diante dos pacotes privados e/ou de terceiros existentes, surge a necessidade de utilizá-los em algum projeto pessoal. Para isso, siga os seguintes passos:

Selecione Ferramentas, NuGet Package Manager e Package Manager Settings.

  • Selecione a opção Package Sources e clique na opção de adicionar um novo pacote.

  • Dê um nome a este novo pacote e informe o caminho onde estará este pacote. No caso demonstrado, pode-se informar o caminho da pasta que está o arquivo .nupkg ou a url no VSTS referente ao pacote.

Ao informar o caminho local, ficará da seguinte maneira:

Informe a url do VSTS. Primeiramente deve acessar o pacote que está no VSTS e selecionar a opção Connect to feed.

Será exibida uma janela contendo as informações para conexão com o pacote. Copie a url do pacote, como demonstrado:

Com isso, basta informar esta url ao importar o pacote, ficando da seguinte maneira:

Enfim, terá todos estes pacotes disponíveis ao acessar o Manage NuGet Packages:

Onde, ao selecionar algum, serão exibidos os plugins referentes ao pacote:

Conclusão

Nota-se que isso pode se tornar útil para uma equipe de desenvolvimento, pois é possível encapsular funcionalidades, utilizadas em comum, e distribuí-las de maneira abstrata e fácil. Um exemplo disso seria uma criptografia personalizada de utilização de uma determinada empresa, onde, ao invés de todos os desenvolvedores terem que conhecer o código e copiar e colar o mesmo, basta adicionar uma referência do plugin no projeto via nuget.

Contribuições

Referências