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.
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).
2 – Escolha Empty e desmarque todas as opções caso estejam ativas e, clique em OK.
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.
4 – Clique Start Debugging e abrirá a seguinte tela no seu navegador.
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.
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>
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.
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!
Os comentários estão fechados, mas trackbacks E pingbacks estão abertos.