NuGet Server: maior eficiência no desenvolvimento

0 21

O NuGet Server como repositório interno proporciona um aumento na produtividade do time através do reuso de componentes e bibliotecas .NET.

A implantação de um NuGet Server é uma opção bastante atraente para times que mantém diversas aplicações e, que precisam compartilhar bibliotecas e componentes entre elas.

O fluxo de pacotes NuGet entre criadores, repositórios e consumidores

A imagem acima demonstra o fluxo básico desde a criação, passando pela publicação e a instalação de pacotes NuGet.

Por que um NuGet Server é importante?

Com o advento dos times distribuídos, buscar novas maneiras de entregar software com qualidade e rapidez é crucial.

Conforme as equipes crescem e, possivelmente, são dividas em grupos menores e focados em uma parte ou aplicação específica, a manutenção se torna um desafio crescente.

Pois é comum encontrarmos códigos, que fazem praticamente a mesma coisa, espalhados em diversas aplicações. Essa complexidade gera um custo para os projetos envolvidos.

Por isso, uma boa estratégia é extrair porções comuns em componentes e/ou bibliotecas que possam ser compartilhadas.

É nesse momento em que o NuGet brilha. Afinal, quem já desenvolve há algum tempo na plataforma .NET (ou quaisquer outras que contemplem o gerenciamento de pacotes), sabe o quão valoroso é poder utilizar pacotes de terceiros.

Então, por que não aproveitarmos disso para nossos próprios pacotes?

Como implantar o NuGet Server?

Para a implantação precisaremos criar um projeto Web no Visual Studio utilizando target o .NET Framework 4.6.2 (não encontrei versão em .NET Core).

1 – No menu File > New > Project, escolha na árvore lateral Installed > Visual C# > Web e em seguida o template ASP.NET Web Application (.NET Framework).

Criando novo projeto web do NuGet Server no Visual Studio
Criando novo projeto web do NuGet Server no Visual Studio

2 – Escolha Empty e desmarque todas as opções caso estejam ativas e, clique em OK.

Configuração inicial do novo projeto web do NuGet Server no Visual Studio
Configuração inicial do novo projeto web do NuGet Server no Visual Studio

3 – Em seguida, abra o Manage NuGet Packages e busque pelo pacote NuGet.Server e instale a versão mais atual. Caso seja solicitado a alteração do web.config, clique em Yes.

Instalando o pacote do NuGet Server no projeto
Instalando o pacote do NuGet Server no projeto

4 – Clique Start Debugging e abrirá a seguinte tela no seu navegador.

NuGet Server em funcionamento no servidor Web
NuGet Server em funcionamento no servidor Web

Essa aplicação pode ser publicada em qualquer servidor Windows com IIS. Entretanto, fique atento se o seu servidor for público.

Nesse caso, é recomendável estabelecer uma apiKey no web.config para proteção do seu repositório.

5 – Para utilizar o novo repositório, vá em Tools > NuGet Package Manager > Package Manager Settings > Package Sources e clique no ícone verde de adicionar. Após isso, dê um nome para o repositório e em Source coloque o endereço que aparece em Repository URLs no navegador.

Pronta, sua IDE está configurada para utilizar o servidor e obter seus pacotes.

Criar, publicar e instalar pacotes NuGet

Agora que nosso servidor está funcional, vamos criar uma biblioteca, empacotá-la, enviar para o repositório e, em seguida, instalá-la através do NuGet.

Criando o pacote

Inicialmente, criaremos um projeto de biblioteca .NET Standard, pois ele nos permite gerar pacotes automaticamente no build, bem como pode ser utilizado por qualquer plataforma .NET.

Como podemos ver na imagem abaixo, na opção Package deve-se marcar “Generate NuGet package on build”. Infelizmente, o Visual Studio não provê uma forma de definir os targets na sua IDE.

Projeto biblioteca NuGet em .NET Standard
Projeto biblioteca NuGet em .NET Standard

Para configurar os targets frameworks desejados, abra o csproj em algum editor de texto e adicione o seguinte (de acordo com a sua necessidade):

<TargetFrameworks>netstandard2.0;net462;net472</TargetFrameworks>
Targets Frameworks dos pacotes NuGet
Targets Frameworks dos pacotes NuGet

A imagem acima é como nosso projeto estará, indicando que ao “buildar” serão criadas versões para esses targets.

Publicando a biblioteca

Após realizar o build, podemos encontrar o arquivo .nupkg na bin, que no meu caso é o “EscolaDaProgramacao.NuGet.HelloWorld.1.0.0.nupkg”.

Nesse momento, instalaremos uma ferramenta muito útil para analisarmos pacotes NuGet, o NuGet Package Explorer.

NuGet Package Explorer
NuGet Package Explorer

Feita a instalação, clique duas vezes sobre o pacote e teremos a visão detalhada acima.

Para realizar a publicação, vá em File > Publish, preencha os dados do host e apiKey (caso necessário), em seguida, clique em Publish.

Em http://localhost:50959/nuget/Packages é possível verificar todos os pacotes disponíveis no repositório.

Instalando o pacote

Instalar o pacote é a parte mais simples, basta acessar o NuGet da sua solution e escolher o Package source que configuramos anteriormente.

Na imagem acima, temos o pacote instalado tanto num projeto .NET Core como em um projeto .NET Framework.


Você já utiliza o NuGet Server em sua equipe? Conta pra gente nos comentários o que achou. Até a próxima!

Deixe uma resposta

Seu endereço de email não será publicado.