O NuGet é um gerenciador de pacotes .Net e é utilizado para compartilhar bibliotecas. Neste contexto, pode-se 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:

Classe para validar CPF

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 objec).

Criação do pacote

No projeto GeneralValidation, clica-se com o botão direito e seleciona-se 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, altera-se o projeto para Release, clica-se com o botão direito no projeto e seleciona-se 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. Logo após, clica-se no username e seleciona-se 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 me 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. Acessa a url: https://marketplace.visualstudio.com/items?itemName=ms.feed e clica-se em Obter.

Instalação de plugin no VSTS

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

Após a instalação, acessa-se o projeto no VSTS, direciona-se para a seção Build and Release e seleciona-se a opção Packages.

Clica-se na opção New Feed.

Preencha as informações solicitadas e seleciona-se o botão criar.

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 isto, extraia os arquivos do arquivo compactado, abra o prompt de comando e navegue até a pasta onde está localizado 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 isto, é 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, segue-se os seguintes passos:

  • Seleciona-se 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 arquigo .nupkg ou a url no VSTS referente ao pacote.

Informando-se o caminho local, ficará da seguinte maneira:

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

Será exibido 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á-se todos estes pacotes disponíveis ao acessar o Manage NuGet Packages:

Onde, ao selecionar algum, irá ser exibido 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í-la de maneira abstrata e fácil. Um exemplo disto 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

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.