Upload
vinicius-quaiato
View
1.703
Download
4
Embed Size (px)
Citation preview
NuGetGerenciando dependências
Esta palestra não é sobre isso.
Não vou te ensinar engraxar sapato!
Eu sou vegetariano. Não vou falar sobre chickens!
Chega de papo furado
Fazer software não é algo simples
Cada vez que um projeto começa precisamos aprender algo novo
Precisamos nos tornar especialistas em um determinado negócio/ramo/atividade
Os detalhes de negócio geram complexidades ao software
E isso é algo bom!
Algumas vezes precisamos conhecer a equipe
E isso também gera complexidades ao desenvolvimento do software
E como se não bastasse precisamos escolher entre dezenas de ferramentas
Escolher significa, no mínimo, testar
E aí começam a surgir mais complexidades
1. Você precisa saber que algo existe
2. Você precisa saber onde conseguir
3. Você precisa obter
4. Você precisa saber o que realmente usar
5. Precisa adicionar ao seu projeto
Aí você lembra que esqueceu de algo...
Depois de alguns minutos/horas você consegue “dominar” a coisa
Você só queria experimentar
Multiplique seu trabalho pelo número de membros do seu time
Trabalhoso!
Multiplique pelo número de ferramentas que vai experimentar
Novamente pelo número de membros do time
Muito trabalhoso!
Agora pense que aquela tão esperada feature foi adiciona em uma nova versão
Tudo se repete:
Saber que existe
Obter
Saber o que usar/o que mudou
Multiplica pelo time
Mais que muito trabalhoso!
Na melhor das hipóteses você terá 3 ou 4 ferramentas externas para lidar
Cada uma com 2 ou mais DLL
3 meses depois vocês descobrem que não precisam de uma delas
E agora? Qual DLL eu removo?
Na maioria das vezes remove a metade delas, e deixa o lixo lá
Ad infinitum
“Não sei...”
“O que é isso?”
“...mas deixa aí!”
O bem mais precioso de um projeto de software, em última análise, é o software!
Precisamos cuidar bem dele!
O processo de lidar com as dependências, que era muito trabalhoso não é mais!
Gerenciador de pacotes para plataforma .NET
Free e open Source
E o principal objetivo é facilitar o processo de incorporar bibliotecas terceiras
Tá Vinicius, chega de blá blá blá
Como esse tal de NuGet resolve todos os problemas anteriores?
Apenas 1 comando!
Localiza, baixa, instala e configura
\o/
Consigo saber quais dependências estão instaladas no projeto
E descubro para que servem!
Apenas um comando para ver todas atualizações disponíveis
Cuidado!
Atualizações podem ser desastrosas!
Para “atualizar” para uma versão anterior, só removendo a mais nova
Por falar nisso...
Criar um um pacote é simples!
Por que criar um pacote?
Aquela “libzinha” que você criou e usa em N projetos, faça dela um pacote!
É mais fácil do que pegar de uma pasta compartilhada ou do Source Control.
Por sinal, seu build automatizado por ter uma task para gerar um package do NuGet!
1. Criar um XML descritivo
2. Executar a ferramenta NuGet.exe
> NuGet.exe pack pacote.nuspec
Pronto!
Um arquivo .nupkg foi gerado
Um folder com arquivos .nupkg pode ser um source para o NuGet
O repositório local da sua equipe, por exemplo
O NuGet é animal!
Um projeto que ainda não é RTM e já está bastante interessante
Projeto totalmente OSS, os fontes não estão internos na MS!
Há muito para evoluir, mas já é animal!
Em resumo
Gerenciar as dependências é importante!
O NuGet vai te ajudar (e MUITO) com isso!
Valeu!
Infoshttp://nuget.codeplex.com/
http://nuget.codeplex.com/documentation
http://haacked.com/archive/2010/10/06/introducing-nupack-package-manager.aspx
http://viniciusquaiato.com/blog/tag/nuget/
http://www.hanselman.com/blog/IntroducingNuPackPackageManagementForNETAnotherPieceOfTheWebStack.aspx