Dilemas de um Desenvolvedor .NET na Terra do PowerShell

321 visualizações

Publicada em

PowerShell é obviamente um assunto cada vez mais importante. Mas será que ele realmente interessa apenas a IT Pros? Quais os desafios que aguardam um desenvolvedor que se aventura por esse novo território quase inexplorado? Venha ouvir os "causos" de um desenvolvedor que se meteu a aprender PowerShell enquanto criava um projeto OSS (http://github.com/igoravl/tfscmdlets) baseado em - surpresa! - PowerShell.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
321
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Dilemas de um Desenvolvedor .NET na Terra do PowerShell

  1. 1. MVP Open Days 2015 13 e 14 de Março – São Paulo #MVPBR Dilemas de um desenvolvedor .NET na Terra do PowerShell Igor Abade V. Leite - @igorabade Microsoft MVP, Visual Studio ALM
  2. 2. Agenda • PowerShell • Visual Studio • ... E mais algumas coisas entre os dois  • Mas não é só isso! • Espero atender a Devs e ITPros
  3. 3. Motivação
  4. 4. MVP Open Days 2015 Por que PowerShell? •Consultoria ALM – TFS e afins •Um monte de coisas repetitivas •Hora de criar scripts! •CMD? •.NET? •PowerShell!
  5. 5. MVP Open Days 2015 Por que PowerShell? •O que tem de pronto? •TFS Power Tools •PsTFS: pstfs.codeplex.com •TfDash: bitbucket.org/Sumo/tfdash •Nada muito abrangente. Alternativa? •API TFS
  6. 6. .NET ou PowerShell?
  7. 7. MVP Open Days 2015 .NET ou PowerShell?
  8. 8. MVP Open Days 2015 Cmdlet? Function? Elemento .NET PowerShell Comando (unidade básica) Cmdlet Function Contêiner de distribuição Snap-in Module
  9. 9. Repositório OSS?
  10. 10. MVP Open Days 2015 Onde hospedar?
  11. 11. MVP Open Days 2015 GitHub! github.com/igoravl/tfscmdlets
  12. 12. Editor de Código
  13. 13. MVP Open Days 2015 Qual GUI usar? • Fácil: nenhum! • O que eu quero é um IDE
  14. 14. MVP Open Days 2015 PoshTools: PowerShell Tools for Visual Studio
  15. 15. Estilo
  16. 16. MVP Open Days 2015 Como escrever código em PowerShell? • Indentação
  17. 17. MVP Open Days 2015 Como escrever código em PowerShell? • Begin/Process/End
  18. 18. MVP Open Days 2015 Como escrever código em PowerShell? • Padrões de Nomenclatura • Verb-Noun: • Set-Bar • Remove-Baz • Default Module Prefix • Verb-PrefixNoun • Get-TfsFoo • Set-TfsBar
  19. 19. MVP Open Days 2015 Como escrever código em PowerShell? • Parameters
  20. 20. MVP Open Days 2015 Como escrever código em PowerShell? • Comment Docs
  21. 21. Pipeline
  22. 22. MVP Open Days 2015 O que é o pipeline do PowerShell?
  23. 23. MVP Open Days 2015 Recebendo dados via pipeline
  24. 24. MVP Open Days 2015 Retornando dados no pipeline • “Prints” • Write-Output • Comando “return” • Expressões
  25. 25. MVP Open Days 2015 Lidando com retornos indesejados
  26. 26. Tratamento de Erros
  27. 27. MVP Open Days 2015 Validação de parâmetros? • Baseada em atributos • AllowNull • AllowEmptyString • AllowEmptyCollection • ValidateCount • ValidateLength • ValidatePattern • ValidateRange • ValidateScript • ValidateSet • ValidateNotNull • ValidateNotNullOrEmpty
  28. 28. MVP Open Days 2015 Tratamento de Exceções • Try / Catch / Throw
  29. 29. MVP Open Days 2015 Confirmação de Operações Destrutivas? • SupportsShouldProcess • ConfirmImpact
  30. 30. Integração Contínua e Testes
  31. 31. MVP Open Days 2015 Testes de Unidade? Pester • github.com/pester/Pester Nuget • www.nuget.org/packages/Pester/
  32. 32. MVP Open Days 2015 Integração Contínua? AppVeyor appveyor.com
  33. 33. MVP Open Days 2015 Análise Estática de Código? • PowerShell Static Code Analyzer • PSScriptAnalyzer • “FxCop para PS” • Novo no WMF 5.0
  34. 34. Distribuição
  35. 35. MVP Open Days 2015 Como preparar meu módulo? • Arquivo de Definição • Módulo.PSD1 • Agrupa módulos • Adiciona metadados • Descreve sub-módulos
  36. 36. MVP Open Days 2015 Onde instalar meu módulo? • Global: $PSHomeModules (%Windir%System32WindowsPowerShellv1.0Modules) • Usuário: $HomeDocumentsWindowsPowerShellModules (%UserProfile%DocumentsWindowsPowerShellModules) • Vendor-specific: C:Program Files (x86) T-Shooter TfsCmdlets TfsCmdlets.psd1 TfsCmdlets.psm1 (Company Name) (Module Name) (Module files)
  37. 37. MVP Open Days 2015 Como distribuir • Online • PsGet (psget.net) • Projeto da Comunidade • Disponível imediatamente • PowerShell Gallery (www.powershellgallery.com) • Projeto da Microsoft • “Nuget” oficial para PowerShell • Limited Preview • Nativo no WMF 5.0
  38. 38. MVP Open Days 2015 Como distribuir? • Offiline • WIX • Visual Studio Gallery
  39. 39. Q&A

×