SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
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
Agenda
• PowerShell
• Visual Studio
• ... E mais algumas coisas entre os dois 
• Mas não é só isso!
• Espero atender a Devs e ITPros
Motivação
MVP Open Days 2015
Por que PowerShell?
•Consultoria ALM – TFS e afins
•Um monte de coisas repetitivas
•Hora de criar scripts!
•CMD?
•.NET?
•PowerShell!
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
Dilemas de um Desenvolvedor .NET na Terra do PowerShell
Dilemas de um Desenvolvedor .NET na Terra do PowerShell
.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
distribuição
Snap-in Module
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
• Default Module Prefix
• Verb-PrefixNoun
• Get-TfsFoo
• Set-TfsBar
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
• ValidateCount
• ValidateLength
• ValidatePattern
• ValidateRange
• ValidateScript
• ValidateSet
• ValidateNotNull
• ValidateNotNullOrEmpty
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”
• Novo no WMF 5.0
Distribuição
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
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)
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
MVP Open Days 2015
Como distribuir?
• Offiline
• WIX
• Visual Studio Gallery
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

Integração continua sem traumas
Integração continua sem traumasIntegração continua sem traumas
Integração continua sem traumassabrinajn
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsJaqueline Ramos
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Jaqueline Ramos
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupPamela Canchanya
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpstdc-globalcode
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoElias Nogueira
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas PráticasCDS
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisElias Nogueira
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JSNàtali Cabral
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreRodrigo Kono
 
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEVTDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEVtdc-globalcode
 
Testes em uma startup do mundo financeiro
Testes em uma startup do mundo financeiroTestes em uma startup do mundo financeiro
Testes em uma startup do mundo financeiroLuiz Alberto Hespanha
 
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...tdc-globalcode
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareSandy Maciel
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
Deu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super PoderesDeu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super PoderesEdson Marques Teixeira
 

Was ist angesagt? (20)

Android apps ci
Android apps ciAndroid apps ci
Android apps ci
 
Integração continua sem traumas
Integração continua sem traumasIntegração continua sem traumas
Integração continua sem traumas
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps Projects
 
O Testador Técnico
O Testador TécnicoO Testador Técnico
O Testador Técnico
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA Meetup
 
QAOps - Agile Trends 2021
QAOps - Agile Trends 2021QAOps - Agile Trends 2021
QAOps - Agile Trends 2021
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas Práticas
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEVTDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
 
Testes em uma startup do mundo financeiro
Testes em uma startup do mundo financeiroTestes em uma startup do mundo financeiro
Testes em uma startup do mundo financeiro
 
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
Migracao gae-openshift
Migracao gae-openshiftMigracao gae-openshift
Migracao gae-openshift
 
Deu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super PoderesDeu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super Poderes
 

Ähnlich wie Dilemas de um Desenvolvedor .NET na Terra do PowerShell

Gestão de demandas e workflow utilizando Project Server ou Project Online
Gestão de demandas e workflow utilizando Project Server ou Project OnlineGestão de demandas e workflow utilizando Project Server ou Project Online
Gestão de demandas e workflow utilizando Project Server ou Project OnlineAndre Xavier
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Alvaro Brognoli
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareElvis Lima
 
Sonarqube
SonarqubeSonarqube
SonarqubeCDS
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
 
Azure DevOps - Um case de sucesso
Azure DevOps - Um case de sucessoAzure DevOps - Um case de sucesso
Azure DevOps - Um case de sucessoArmando Junior
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsLeonardo Comelli
 
Automação de testes com a ferramenta Fitnesse - Eliane Somavilla
Automação de testes com a ferramenta Fitnesse - Eliane SomavillaAutomação de testes com a ferramenta Fitnesse - Eliane Somavilla
Automação de testes com a ferramenta Fitnesse - Eliane Somavillagutssc
 
Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...
Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...
Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...Bruno Oliveira
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...Renato Groff
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsRenato Groff
 

Ähnlich wie Dilemas de um Desenvolvedor .NET na Terra do PowerShell (20)

Gestão de demandas e workflow utilizando Project Server ou Project Online
Gestão de demandas e workflow utilizando Project Server ou Project OnlineGestão de demandas e workflow utilizando Project Server ou Project Online
Gestão de demandas e workflow utilizando Project Server ou Project Online
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de software
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Azure DevOps - Um case de sucesso
Azure DevOps - Um case de sucessoAzure DevOps - Um case de sucesso
Azure DevOps - Um case de sucesso
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
Automação de testes com a ferramenta Fitnesse - Eliane Somavilla
Automação de testes com a ferramenta Fitnesse - Eliane SomavillaAutomação de testes com a ferramenta Fitnesse - Eliane Somavilla
Automação de testes com a ferramenta Fitnesse - Eliane Somavilla
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...
Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...
Quer ser um Full-Stack Developer? Essas são algumas "coisinhas" que você prec...
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
SonarQube
SonarQubeSonarQube
SonarQube
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 

Mehr von Igor Abade

Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Igor Abade
 
DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?Igor Abade
 
Serverless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureServerless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureIgor Abade
 
Chega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoChega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoIgor Abade
 
Microsserviços .NET no Azure
Microsserviços .NET no AzureMicrosserviços .NET no Azure
Microsserviços .NET no AzureIgor Abade
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao HabitatIgor Abade
 
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeAcelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeIgor Abade
 
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSProvisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSIgor Abade
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Igor Abade
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Igor Abade
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreIgor Abade
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosIgor Abade
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Igor Abade
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellIgor Abade
 
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Igor Abade
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Igor Abade
 
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Igor Abade
 
Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Igor Abade
 
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Igor Abade
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Igor Abade
 

Mehr von Igor Abade (20)

Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
 
DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?
 
Serverless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureServerless Computing no Microsoft Azure
Serverless Computing no Microsoft Azure
 
Chega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoChega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como código
 
Microsserviços .NET no Azure
Microsserviços .NET no AzureMicrosserviços .NET no Azure
Microsserviços .NET no Azure
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao Habitat
 
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeAcelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
 
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSProvisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShell
 
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
 
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
 
Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...
 
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
 

Dilemas de um Desenvolvedor .NET na Terra do PowerShell

  • 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. Agenda • PowerShell • Visual Studio • ... E mais algumas coisas entre os dois  • Mas não é só isso! • Espero atender a Devs e ITPros
  • 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. 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
  • 9. MVP Open Days 2015 .NET ou PowerShell?
  • 10. MVP Open Days 2015 Cmdlet? Function? Elemento .NET PowerShell Comando (unidade básica) Cmdlet Function Contêiner de distribuição Snap-in Module
  • 12. MVP Open Days 2015 Onde hospedar?
  • 13. MVP Open Days 2015 GitHub! github.com/igoravl/tfscmdlets
  • 15. MVP Open Days 2015 Qual GUI usar? • Fácil: nenhum! • O que eu quero é um IDE
  • 16. MVP Open Days 2015 PoshTools: PowerShell Tools for Visual Studio
  • 18. MVP Open Days 2015 Como escrever código em PowerShell? • Indentação
  • 19. MVP Open Days 2015 Como escrever código em PowerShell? • Begin/Process/End
  • 20. 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
  • 21. MVP Open Days 2015 Como escrever código em PowerShell? • Parameters
  • 22. MVP Open Days 2015 Como escrever código em PowerShell? • Comment Docs
  • 24. MVP Open Days 2015 O que é o pipeline do PowerShell?
  • 25. MVP Open Days 2015 Recebendo dados via pipeline
  • 26. MVP Open Days 2015 Retornando dados no pipeline • “Prints” • Write-Output • Comando “return” • Expressões
  • 27. MVP Open Days 2015 Lidando com retornos indesejados
  • 29. MVP Open Days 2015 Validação de parâmetros? • Baseada em atributos • AllowNull • AllowEmptyString • AllowEmptyCollection • ValidateCount • ValidateLength • ValidatePattern • ValidateRange • ValidateScript • ValidateSet • ValidateNotNull • ValidateNotNullOrEmpty
  • 30. MVP Open Days 2015 Tratamento de Exceções • Try / Catch / Throw
  • 31. MVP Open Days 2015 Confirmação de Operações Destrutivas? • SupportsShouldProcess • ConfirmImpact
  • 33. MVP Open Days 2015 Testes de Unidade? Pester • github.com/pester/Pester Nuget • www.nuget.org/packages/Pester/
  • 34. MVP Open Days 2015 Integração Contínua? AppVeyor appveyor.com
  • 35. MVP Open Days 2015 Análise Estática de Código? • PowerShell Static Code Analyzer • PSScriptAnalyzer • “FxCop para PS” • Novo no WMF 5.0
  • 37. 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
  • 38. 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)
  • 39. 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
  • 40. MVP Open Days 2015 Como distribuir? • Offiline • WIX • Visual Studio Gallery
  • 41. Q&A