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 ...
Agenda
• PowerShell
• Visual Studio
• ... E mais algumas coisas entre os dois 
• Mas não é só isso!
• Espero atender a De...
Motivação
MVP Open Days 2015
Por que PowerShell?
•Consultoria ALM – TFS e afins
•Um monte de coisas repetitivas
•Hora de criar scrip...
MVP Open Days 2015
Por que PowerShell?
•O que tem de pronto?
•TFS Power Tools
•PsTFS: pstfs.codeplex.com
•TfDash: bitbucke...
.NET ou PowerShell?
MVP Open Days 2015
.NET ou PowerShell?
MVP Open Days 2015
Cmdlet? Function?
Elemento .NET PowerShell
Comando
(unidade básica)
Cmdlet Function
Contêiner de
distri...
Repositório OSS?
MVP Open Days 2015
Onde hospedar?
MVP Open Days 2015
GitHub! github.com/igoravl/tfscmdlets
Editor de Código
MVP Open Days 2015
Qual GUI usar?
• Fácil: nenhum!
• O que eu quero é um IDE
MVP Open Days 2015
PoshTools: PowerShell Tools for Visual Studio
Estilo
MVP Open Days 2015
Como escrever código em PowerShell?
• Indentação
MVP Open Days 2015
Como escrever código em PowerShell?
• Begin/Process/End
MVP Open Days 2015
Como escrever código em PowerShell?
• Padrões de Nomenclatura
• Verb-Noun:
• Set-Bar
• Remove-Baz
• Def...
MVP Open Days 2015
Como escrever código em PowerShell?
• Parameters
MVP Open Days 2015
Como escrever código em PowerShell?
• Comment Docs
Pipeline
MVP Open Days 2015
O que é o pipeline do PowerShell?
MVP Open Days 2015
Recebendo dados via pipeline
MVP Open Days 2015
Retornando dados no pipeline
• “Prints”
• Write-Output
• Comando “return”
• Expressões
MVP Open Days 2015
Lidando com retornos indesejados
Tratamento de Erros
MVP Open Days 2015
Validação de parâmetros?
• Baseada em atributos
• AllowNull
• AllowEmptyString
• AllowEmptyCollection
•...
MVP Open Days 2015
Tratamento de Exceções
• Try / Catch / Throw
MVP Open Days 2015
Confirmação de Operações Destrutivas?
• SupportsShouldProcess
• ConfirmImpact
Integração Contínua e Testes
MVP Open Days 2015
Testes de Unidade?
Pester
• github.com/pester/Pester
Nuget
• www.nuget.org/packages/Pester/
MVP Open Days 2015
Integração Contínua?
AppVeyor
appveyor.com
MVP Open Days 2015
Análise Estática de Código?
• PowerShell Static
Code Analyzer
• PSScriptAnalyzer
• “FxCop para PS”
• No...
Distribuição
MVP Open Days 2015
Como preparar meu módulo?
• Arquivo de Definição
• Módulo.PSD1
• Agrupa módulos
• Adiciona metadados
• ...
MVP Open Days 2015
Onde instalar meu módulo?
• Global: $PSHomeModules
(%Windir%System32WindowsPowerShellv1.0Modules)
• Usu...
MVP Open Days 2015
Como distribuir
• Online
• PsGet (psget.net)
• Projeto da Comunidade
• Disponível imediatamente
• Power...
MVP Open Days 2015
Como distribuir?
• Offiline
• WIX
• Visual Studio Gallery
Q&A
Dilemas de um Desenvolvedor .NET na Terra do PowerShell
Dilemas de um Desenvolvedor .NET na Terra do PowerShell
Próximos SlideShares
Carregando em…5
×

Dilemas de um Desenvolvedor .NET na Terra do PowerShell

311 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
311
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

×