NuGet - Gerenciando dependências em .NET

Preview:

Citation preview

NuGetGerenciando dependências

@vquaiato

http://viniciusquaiato.com

vinicius.quaiato@gmail.com

Vinicius Quaiato

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

@vquaiato

http://viniciusquaiato.com

vinicius.quaiato@gmail.com

Vinicius Quaiato