4ª Reunião Coimbra - 11/02/2012   http://netponto.org




                     no contexto empresarial
                                       Nuno Gomes
Patrocinadores “GOLD”
Nuno Gomes         http://nunogomes.net



•.NET desde 2003
•Desenvolvimento de Infra-
Estrutura para Aplicações
Web nos domínios da
Banca e Seguros
Agenda
• O que é?
• Como me pode ajudar?
• Como construir pacotes NuGet?
• Como distribuir pacotes NuGet?
O que é o NuGet?
• Catálogo de software
       Orientado ao desenvolvimento

    Distribuido em pacotes
    Sintaxe própria
    Integração com o VisualStudio
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
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
Como me pode ajudar?
   Informação centralizada
       Código
       Componentes           Solução
       Configuração          Concreta
       Automação
Como me pode ajudar?
   Montar um Repositório Global
      • Pasta partilhada
        • Aplicação Servidor
   Criar pacotes
        • Componentes partilhados + configuração
       • Melhores práticas
Como me pode ajudar?
   Integrado com Integração Continua
        • Pacotes criados no build
       • Versionamento dos pacotes
       • Publicação para o repositório de CI
Como construir pacotes NuGet?
• Adicionar referencias
• Adicionar Configuração
• Instalar assemblies no GAC
• Distribuir templates
• Distribuir comandos para realizar tarefas comuns
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
Como construir pacotes NuGet?
 >nuget spec
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
Como distribuir pacotes NuGet?
Como distribuir pacotes NuGet?
NuGet num cenário empresarial
           Criar
             &
         Partilhar
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
Questões?
Referências
Documentação NuGet
   – http://docs.nuget.org

Phil Haack
   – http://haacked.com/tags/NuGet/default.aspx

David Ebbo
   – http://blog.davidebbo.com/search/label/NuGet
Patrocinadores “GOLD”
Obrigado!
Nuno Gomes
mail@nunogomes.net
http://nunogomes.net
http://twitter.com/nmfgomes

NuGet no Contexto Empresarial

  • 1.
    4ª Reunião Coimbra- 11/02/2012 http://netponto.org no contexto empresarial Nuno Gomes
  • 2.
  • 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 podeajudar? 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 podeajudar? Informação centralizada Código Componentes Solução Configuração Concreta Automação
  • 9.
    Como me podeajudar? Montar um Repositório Global • Pasta partilhada • Aplicação Servidor Criar pacotes • Componentes partilhados + configuração • Melhores práticas
  • 10.
    Como me podeajudar? Integrado com Integração Continua • Pacotes criados no build • Versionamento dos pacotes • Publicação para o repositório de CI
  • 11.
    Como construir pacotesNuGet? • Adicionar referencias • Adicionar Configuração • Instalar assemblies no GAC • Distribuir templates • Distribuir comandos para realizar tarefas comuns
  • 12.
    Como construir pacotesNuGet? 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
  • 13.
    Como construir pacotesNuGet? >nuget spec
  • 14.
    Como construir pacotesNuGet? • 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
  • 15.
  • 16.
  • 17.
    NuGet num cenárioempresarial Criar & Partilhar
  • 18.
    Citações... “Any sufficiently advancedbug 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
  • 19.
  • 20.
    Referências Documentação NuGet – http://docs.nuget.org Phil Haack – http://haacked.com/tags/NuGet/default.aspx David Ebbo – http://blog.davidebbo.com/search/label/NuGet
  • 21.
  • 22.

Notas do Editor

  • #8 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
  • #9 Solução concreta em vez de Orientações, policies(?) ou Standards abstractos
  • #10 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
  • #11 Repositório CI != Repositório Geral
  • #12 Usar Package Manager ConsoleTudo isto pode ser feito em PowerShell
  • #13 Libs suportam multiplas frameworks:\\lib \\11 \\MyAssembly.dll \\20 \\MyAssembly.dll \\40 \\MyAssembly.dll \\sl4 \\MyAssembly.dll
  • #14 Libs suportam multiplas frameworks:\\lib \\11 \\MyAssembly.dll \\20 \\MyAssembly.dll \\40 \\MyAssembly.dll \\sl4 \\MyAssembly.dll