Integração Contínua em projetos .NET Luthiano Vasconcelos [email_address]
 
Realização
Patrocinadores
Apoio
Objetivos <ul><li>Apresentar os conceitos fundamentais relacionados as práticas de Integração Contínua. </li></ul><ul><li>...
Material de Referência Integrating Agile Development in the Real World Expert .NET Delivery Using NAnt and CruiseControl.NET
Agenda <ul><li>Integração contínua </li></ul><ul><ul><li>O que é? </li></ul></ul><ul><ul><li>Benefícios </li></ul></ul><ul...
O que é isso? http://www.worldslargestpuzzle.com
Desenvolver um software é como... ...montar um quebra-cabeças!
Se o projeto for muito grande... …  trabalhar sozinho é um caminho possível… mas demorado!
Se o projeto for muito grande... …  o trabalho em equipe é fundamental: reduz o estresse.
Se a equipe estiver integrada... …  o trabalho pode até se tornar DIVERTIDO!
O problema é garantir a integração...
Como garantir que a junção das partes...
... resultam no todo? Integrar só no final do projeto é muito, muito arricado!
Como garantir que não está faltando nada? Classe Web Services Configuração Script Componente Biblioteca Documentação Rotin...
Problemas no cotidiano das equipes <ul><li>Desenvolvedores e designers (com graus de conhecimentos diferentes) trabalhando...
O que é Integração Contínua? Compila código-fonte Prepara banco de dados Executa testes Realiza inspeções Notifica os inte...
Benefícios <ul><li>Elimina as longas sessões de integração. </li></ul><ul><li>O problemas de integração são detectados tão...
Fatores de sucesso <ul><li>Repositório unificado de código-fonte </li></ul><ul><li>Builds  automatizados </li></ul><ul><li...
O que é CruiseControl.NET? <ul><li>É um gerenciador de builds de código-aberto e gratuito </li></ul><ul><li>Consiste de do...
O que é CruiseControl.NET? <ul><li>Pode ser usado em projetos C#, VB.NET, etc… </li></ul><ul><li>Facilmente extensível:  <...
Diagrama de Arquitetura
 
CruiseControl
Como funciona? <ul><li>Desenvolvedor publica seu trabalho no controle de código-fonte (VSS, CVS, SVN, etc…) </li></ul><ul>...
Integração contínua para quem tem recur$o$
Integração contínua para quem tem recur$o$
Integração contínua para quem tem recur$o$
Integração contínua para quem tem recur$o$ http://www.hamang.net/index.php?option=com_content&task=view&id=16&Itemid=9
O que você ganha?
O que você precisa? <ul><li>Servidor de Builds </li></ul><ul><li>Servidor de Controle de Código (VSS, CVS, SVN, etc…) </li...
Resumo <ul><li>Builds Noturnos (ou Diários)  é um boa prática, mas  Integração Contínua  é melhor! </li></ul><ul><li>Integ...
Dúvidas?
Links <ul><li>Conceitos de Integração Contínua: </li></ul><ul><ul><li>http://unibrain.com.br/recursos/artigos/integracao-c...
Upcoming SlideShare
Loading in...5
×

Integracao Continua em projetos .NET

3,056

Published on

Palestra realizada no COMTEC 2008 em 31/05/2008.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,056
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Videos http://www.youtube.com/watch?v=2U9qPP4OC_M http://www.youtube.com/watch?v=tk8BXhA0BCA
  • Integracao Continua em projetos .NET

    1. 1. Integração Contínua em projetos .NET Luthiano Vasconcelos [email_address]
    2. 3. Realização
    3. 4. Patrocinadores
    4. 5. Apoio
    5. 6. Objetivos <ul><li>Apresentar os conceitos fundamentais relacionados as práticas de Integração Contínua. </li></ul><ul><li>Demonstrar como o CruiseControl.NET pode ser usado para implementar as práticas de Integração Contínua em projetos .NET. </li></ul>
    6. 7. Material de Referência Integrating Agile Development in the Real World Expert .NET Delivery Using NAnt and CruiseControl.NET
    7. 8. Agenda <ul><li>Integração contínua </li></ul><ul><ul><li>O que é? </li></ul></ul><ul><ul><li>Benefícios </li></ul></ul><ul><ul><li>Fatores de sucesso </li></ul></ul><ul><li>CruiseControl.NET </li></ul><ul><ul><li>O que é? </li></ul></ul><ul><ul><li>Como funciona? </li></ul></ul><ul><li>Dúvidas </li></ul>Agenda
    8. 9. O que é isso? http://www.worldslargestpuzzle.com
    9. 10. Desenvolver um software é como... ...montar um quebra-cabeças!
    10. 11. Se o projeto for muito grande... … trabalhar sozinho é um caminho possível… mas demorado!
    11. 12. Se o projeto for muito grande... … o trabalho em equipe é fundamental: reduz o estresse.
    12. 13. Se a equipe estiver integrada... … o trabalho pode até se tornar DIVERTIDO!
    13. 14. O problema é garantir a integração...
    14. 15. Como garantir que a junção das partes...
    15. 16. ... resultam no todo? Integrar só no final do projeto é muito, muito arricado!
    16. 17. Como garantir que não está faltando nada? Classe Web Services Configuração Script Componente Biblioteca Documentação Rotinas de Teste
    17. 18. Problemas no cotidiano das equipes <ul><li>Desenvolvedores e designers (com graus de conhecimentos diferentes) trabalhando no mesmo código-fonte. Qualquer um pode “quebrá-lo”! </li></ul><ul><li>Um cenário típico: </li></ul>A complexidade do build é diretamente proporcional ao tamanho do projeto!
    18. 19. O que é Integração Contínua? Compila código-fonte Prepara banco de dados Executa testes Realiza inspeções Notifica os interessados
    19. 20. Benefícios <ul><li>Elimina as longas sessões de integração. </li></ul><ul><li>O problemas de integração são detectados tão breve quanto possível (reduz o risco). </li></ul><ul><li>Melhora o trabalho em equipe: as pessoas criam um forte sentimento de interdependência. </li></ul><ul><li>Fornece frequentemente informações importantes para o acompanhamento da qualidade do produto. </li></ul>Qualidade Produtividade
    20. 21. Fatores de sucesso <ul><li>Repositório unificado de código-fonte </li></ul><ul><li>Builds automatizados </li></ul><ul><li>Testes automatizados </li></ul><ul><li>Disciplina dos desenvolvedores </li></ul><ul><ul><li>Sincronizar freqüentemente </li></ul></ul><ul><ul><li>Não quebrar o build, ele é sagrado </li></ul></ul><ul><ul><li>Se você quebrou, conserte! </li></ul></ul>
    21. 22. O que é CruiseControl.NET? <ul><li>É um gerenciador de builds de código-aberto e gratuito </li></ul><ul><li>Consiste de dois componentes: </li></ul><ul><ul><li>Build loop (executa como um serviço) </li></ul></ul><ul><ul><li>Status Dashboard (aplicação web) </li></ul></ul><ul><li>Integra-se a vários sistemas de gerenciamento de configuração (VSS, CVS, PVCS, Subversion, ClearCase, ...) </li></ul><ul><li>Funciona com qualquer ferramenta de build que produza um resultado tratável (NAnt, MSBuild, FinalBuilder, ...) </li></ul>
    22. 23. O que é CruiseControl.NET? <ul><li>Pode ser usado em projetos C#, VB.NET, etc… </li></ul><ul><li>Facilmente extensível: </li></ul><ul><ul><li>Arquitetura baseada em plugins </li></ul></ul><ul><ul><li>Interfaces bem definidas com sistemas de controle de código-fonte e ferramentas de build </li></ul></ul><ul><li>Bem documentado: </li></ul><ul><ul><li>Material de referência abrangente </li></ul></ul><ul><ul><li>Lista de discussão bastante ativa </li></ul></ul><ul><ul><li>Muitos tutoriais </li></ul></ul><ul><ul><li>Vários livros </li></ul></ul>
    23. 24. Diagrama de Arquitetura
    24. 26. CruiseControl
    25. 27. Como funciona? <ul><li>Desenvolvedor publica seu trabalho no controle de código-fonte (VSS, CVS, SVN, etc…) </li></ul><ul><li>CruiseControl.NET verifica periodicamente e controle de código-fonte </li></ul><ul><li>Se CruiseControl.NET detecta alguma mudança: </li></ul><ul><ul><li>Dispara um build </li></ul></ul><ul><ul><li>Captura logs e artefatos do build </li></ul></ul><ul><ul><ul><li>Exemplos: dll, msi, relatórios de testes unitários (NUnit), de cobertura de código e métricas de qualidade </li></ul></ul></ul><ul><ul><li>Publica os resultados </li></ul></ul><ul><ul><ul><li>Exemplos: envia e-mail, acende uma luz! </li></ul></ul></ul>
    26. 28. Integração contínua para quem tem recur$o$
    27. 29. Integração contínua para quem tem recur$o$
    28. 30. Integração contínua para quem tem recur$o$
    29. 31. Integração contínua para quem tem recur$o$ http://www.hamang.net/index.php?option=com_content&task=view&id=16&Itemid=9
    30. 32. O que você ganha?
    31. 33. O que você precisa? <ul><li>Servidor de Builds </li></ul><ul><li>Servidor de Controle de Código (VSS, CVS, SVN, etc…) </li></ul><ul><li>Processo bem definido </li></ul><ul><li>Ferramentas (CruiseControl.NET, NAnt, NAntContrib, etc...) </li></ul><ul><li>Responsabilidades do desenvolvedor </li></ul><ul><ul><li>Atualizar o repositório frequentemente. </li></ul></ul><ul><ul><li>O código deve ser compilável </li></ul></ul><ul><ul><li>O código deve ter testes unitários </li></ul></ul>Quebrar o build é feio! Muito feio!
    32. 34. Resumo <ul><li>Builds Noturnos (ou Diários) é um boa prática, mas Integração Contínua é melhor! </li></ul><ul><li>Integração Contínua não elimina os bugs , porém torna a tarefa de localizá-los mais fácil e rápida. </li></ul><ul><li>CruiseControl viabiliza a Integração Contínua, porém a disciplina da equipe de desenvolvimento é a chave . </li></ul><ul><li>Automatização reduz custos, melhora a visibilidade e deixa menos espaço para erros humanos . </li></ul>
    33. 35. Dúvidas?
    34. 36. Links <ul><li>Conceitos de Integração Contínua: </li></ul><ul><ul><li>http://unibrain.com.br/recursos/artigos/integracao-continua/ </li></ul></ul><ul><li>CruiseControl.NET: </li></ul><ul><ul><li>http://ccnet.thoughtworks.com/ </li></ul></ul><ul><li>Plugin para Firefox: </li></ul><ul><ul><li>http://www.md.pp.ru/mozilla/cc/ </li></ul></ul><ul><li>Esses modestos slides: </li></ul><ul><ul><li>http://www.luthiano.com </li></ul></ul>

    ×