NuGet - Gerenciando dependências em .NET
-
Upload
vinicius-quaiato -
Category
Technology
-
view
1.703 -
download
4
Transcript of NuGet - Gerenciando dependências em .NET
![Page 1: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/1.jpg)
NuGetGerenciando dependências
![Page 3: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/3.jpg)
![Page 4: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/4.jpg)
Esta palestra não é sobre isso.
Não vou te ensinar engraxar sapato!
![Page 5: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/5.jpg)
![Page 6: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/6.jpg)
Eu sou vegetariano. Não vou falar sobre chickens!
![Page 7: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/7.jpg)
Chega de papo furado
![Page 8: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/8.jpg)
Fazer software não é algo simples
![Page 9: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/9.jpg)
Cada vez que um projeto começa precisamos aprender algo novo
![Page 10: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/10.jpg)
Precisamos nos tornar especialistas em um determinado negócio/ramo/atividade
![Page 11: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/11.jpg)
Os detalhes de negócio geram complexidades ao software
E isso é algo bom!
![Page 12: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/12.jpg)
Algumas vezes precisamos conhecer a equipe
![Page 13: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/13.jpg)
E isso também gera complexidades ao desenvolvimento do software
![Page 14: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/14.jpg)
E como se não bastasse precisamos escolher entre dezenas de ferramentas
![Page 15: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/15.jpg)
Escolher significa, no mínimo, testar
![Page 16: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/16.jpg)
E aí começam a surgir mais complexidades
![Page 17: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/17.jpg)
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
![Page 18: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/18.jpg)
Aí você lembra que esqueceu de algo...
![Page 19: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/19.jpg)
Depois de alguns minutos/horas você consegue “dominar” a coisa
![Page 20: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/20.jpg)
Você só queria experimentar
![Page 21: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/21.jpg)
Multiplique seu trabalho pelo número de membros do seu time
![Page 22: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/22.jpg)
Trabalhoso!
![Page 23: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/23.jpg)
Multiplique pelo número de ferramentas que vai experimentar
![Page 24: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/24.jpg)
Novamente pelo número de membros do time
![Page 25: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/25.jpg)
Muito trabalhoso!
![Page 26: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/26.jpg)
Agora pense que aquela tão esperada feature foi adiciona em uma nova versão
![Page 27: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/27.jpg)
Tudo se repete:
Saber que existe
Obter
Saber o que usar/o que mudou
Multiplica pelo time
![Page 28: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/28.jpg)
Mais que muito trabalhoso!
![Page 29: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/29.jpg)
Na melhor das hipóteses você terá 3 ou 4 ferramentas externas para lidar
![Page 30: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/30.jpg)
Cada uma com 2 ou mais DLL
![Page 31: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/31.jpg)
3 meses depois vocês descobrem que não precisam de uma delas
![Page 32: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/32.jpg)
E agora? Qual DLL eu removo?
![Page 33: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/33.jpg)
Na maioria das vezes remove a metade delas, e deixa o lixo lá
![Page 34: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/34.jpg)
Ad infinitum
![Page 35: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/35.jpg)
“Não sei...”
“O que é isso?”
“...mas deixa aí!”
![Page 36: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/36.jpg)
O bem mais precioso de um projeto de software, em última análise, é o software!
![Page 37: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/37.jpg)
Precisamos cuidar bem dele!
![Page 38: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/38.jpg)
O processo de lidar com as dependências, que era muito trabalhoso não é mais!
![Page 39: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/39.jpg)
![Page 40: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/40.jpg)
Gerenciador de pacotes para plataforma .NET
![Page 41: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/41.jpg)
Free e open Source
![Page 42: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/42.jpg)
E o principal objetivo é facilitar o processo de incorporar bibliotecas terceiras
![Page 43: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/43.jpg)
Tá Vinicius, chega de blá blá blá
![Page 44: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/44.jpg)
Como esse tal de NuGet resolve todos os problemas anteriores?
![Page 45: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/45.jpg)
![Page 46: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/46.jpg)
![Page 47: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/47.jpg)
![Page 48: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/48.jpg)
![Page 49: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/49.jpg)
![Page 50: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/50.jpg)
![Page 51: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/51.jpg)
Apenas 1 comando!
Localiza, baixa, instala e configura
![Page 52: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/52.jpg)
![Page 53: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/53.jpg)
\o/
Consigo saber quais dependências estão instaladas no projeto
E descubro para que servem!
![Page 54: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/54.jpg)
![Page 55: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/55.jpg)
Apenas um comando para ver todas atualizações disponíveis
![Page 56: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/56.jpg)
![Page 57: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/57.jpg)
Cuidado!
Atualizações podem ser desastrosas!
![Page 58: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/58.jpg)
Para “atualizar” para uma versão anterior, só removendo a mais nova
![Page 59: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/59.jpg)
Por falar nisso...
![Page 60: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/60.jpg)
![Page 61: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/61.jpg)
Criar um um pacote é simples!
![Page 62: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/62.jpg)
Por que criar um pacote?
![Page 63: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/63.jpg)
Aquela “libzinha” que você criou e usa em N projetos, faça dela um pacote!
![Page 64: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/64.jpg)
É mais fácil do que pegar de uma pasta compartilhada ou do Source Control.
![Page 65: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/65.jpg)
Por sinal, seu build automatizado por ter uma task para gerar um package do NuGet!
![Page 66: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/66.jpg)
1. Criar um XML descritivo
![Page 67: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/67.jpg)
2. Executar a ferramenta NuGet.exe
> NuGet.exe pack pacote.nuspec
![Page 68: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/68.jpg)
Pronto!
![Page 69: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/69.jpg)
Um arquivo .nupkg foi gerado
![Page 70: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/70.jpg)
Um folder com arquivos .nupkg pode ser um source para o NuGet
![Page 71: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/71.jpg)
O repositório local da sua equipe, por exemplo
![Page 72: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/72.jpg)
O NuGet é animal!
![Page 73: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/73.jpg)
Um projeto que ainda não é RTM e já está bastante interessante
![Page 74: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/74.jpg)
Projeto totalmente OSS, os fontes não estão internos na MS!
![Page 75: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/75.jpg)
Há muito para evoluir, mas já é animal!
![Page 76: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/76.jpg)
Em resumo
![Page 77: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/77.jpg)
Gerenciar as dependências é importante!
O NuGet vai te ajudar (e MUITO) com isso!
![Page 78: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/78.jpg)
Valeu!
![Page 79: NuGet - Gerenciando dependências em .NET](https://reader036.fdocument.pub/reader036/viewer/2022081508/5564b02ad8b42a3e618b4807/html5/thumbnails/79.jpg)
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