O documento discute o NuGet, uma ferramenta para gerenciar pacotes de software. Ele explica o que é o NuGet, como ele pode ajudar as empresas, como construir e distribuir pacotes NuGet e apresenta alguns exemplos de como implementá-lo em um ambiente corporativo.
3. Nuno Gomes http://nunogomes.net
•.NET desde 2003
•Desenvolvimento de Infra-
Estrutura para Aplicações
Web nos domínios da
Banca e Seguros
4. Agenda
• O que é?
• Como me pode ajudar?
• Como construir pacotes NuGet?
• Como distribuir pacotes NuGet?
5. O que é o NuGet?
• Catálogo de software
Orientado ao desenvolvimento
Distribuido em pacotes
Sintaxe própria
Integração com o VisualStudio
6. O que é o NuGet?
1993 • Linux APT – Advanced Packaging Tool
• Comunidade Ruby – RubyGems
• Nubular (Nu) Project
• Projecto MS – Code name: Npack
• Nu Project + Projecto MS - NuPack
Out/2010 • NuPack NuGet
7. Como me pode ajudar?
Aceitar que existe um problema
Partilha de componentes de negócio
Partilha de boas práticas
Uniformização e reutilização
Agilizar processos especificos
8. Como me pode ajudar?
Informação centralizada
Código
Componentes Solução
Configuração Concreta
Automação
9. Como me pode ajudar?
Montar um Repositório Global
• Pasta partilhada
• Aplicação Servidor
Criar pacotes
• Componentes partilhados + configuração
• Melhores práticas
10. Como me pode ajudar?
Integrado com Integração Continua
• Pacotes criados no build
• Versionamento dos pacotes
• Publicação para o repositório de CI
11. Como construir pacotes NuGet?
• Adicionar referencias
• Adicionar Configuração
• Instalar assemblies no GAC
• Distribuir templates
• Distribuir comandos para realizar tarefas comuns
12. Como construir pacotes NuGet?
Criar *.nupkg com uma determinada estrutura:
• Content – pasta com todos os
conteudos a copiar
• Lib – pasta com assemblies
• Tools – pasta com powershell scripts e
executaveis
• Manifesto - *.nuspec
14. Como construir pacotes NuGet?
• Integração Build
• Incremento de Versões
• Publicação para o Repositório de CI
• Definição de workflow de publicação
• Publicação para o Repositorio Global
18. Citações...
“Any sufficiently advanced bug is
indistinguishable from a feature.”
Bruce Brown
“Part of the inhumanity of the computer
is that, once it is competently
programmed and working smoothly, it is
completely honest.”
Isaac Asimov
23. Próximas reuniões presenciais
• 11/02/2012 – Fevereiro (Coimbra)
• 24/03/2012 – Março
• 21/04/2012 – Abril
• 12/05/2012 – Maio (Coimbra)
Reserva estes dias na agenda! :)
Pastas partilhadas cheias de assemblies ou installersConhecimento tribal (restrito a alguns grupo(s) ou equipa(s))Documentação espalhada (wikis, emails)Código extraido directamente das árvores de Source Control
Solução concreta em vez de Orientações, policies(?) ou Standards abstractos
Para componentes – pacotes manuaisPara Melhores Práticas – meta pacotes – pacotes que não têm assemblies nem código. São agregadores de pacotes:Ex: Instalar uma framework de testes + unit test + assertion
Repositório CI != Repositório Geral
Usar Package Manager ConsoleTudo isto pode ser feito em PowerShell