Globalcode – Open4education
Trilha – DevOps .Net
TFS Extensions
Novas possibilidades para integrar suas iniciativas de DevOps ao TFS
Igor Rosa Macedo
Globalcode – Open4education
Agenda
DevOps: Porque ferramentas flexíveis são importantes
para DevOps?
Conceito: Customização/Configuração, Integração e
Extensão
TFS/VSTS: possibilidades antes das extensões
TFS/VSTS: novas possibilidades
Marketplace
Extensões e integrações
Cenários de aplicação:
Gestão de Demandas: Custom Hub
Build VS2003: Build Task
Passo a passo: criando uma extensão:
Globalcode – Open4education
DevOps
Globalcode – Open4education
DevOps
Globalcode – Open4education
DevOps
Globalcode – Open4education
DevOps
• Colaboração
• Automação
• Feedback
Valor para o negócio
Globalcode – Open4education
DevOps não é:
• Processo
• Metodologia
• Framework
• Cargo
• Ferramenta
Globalcode – Open4education
DevOps
• Pessoas
• Processos
• Ferramentas
Globalcode – Open4education
Ferramentas Flexíveis
• Configuração/
Customização
• Extensão
• Integração
Globalcode – Open4education
Customização
Globalcode – Open4education
Customização (TFS/VSTS)
• Process Template
• Workitem Types;
• Fields;
• Workflow;
Globalcode – Open4education
Customização (TFS/VSTS)
• Backlog
• Board
Globalcode – Open4education
• Queries
• Relatórios
Customização (TFS/VSTS)
Globalcode – Open4education
• Alertas
Customização (TFS/VSTS)
Globalcode – Open4education
• Permissões e Grupos de Permissões
Customização (TFS/VSTS)
Globalcode – Open4education
• Dashboards
Customização (TFS/VSTS)
Globalcode – Open4education
Extensão
• Server Plugins*
• Scheduled Jobs*
• Build
• Release
*Somente no TFS (on-premises)
Globalcode – Open4education
Integração
• Service Hooks
• Server Plugins*
• Scheduled Jobs*
• Alertas
• Build
• Release
*Somente no TFS (on-premises)
Globalcode – Open4education
Marketplace
Globalcode – Open4education
VSTS/TFS Extensions
An extension uses Microsoft-provided APIs to
install/plug into a Microsoft product.
Globalcode – Open4education
VSTS/TFS Extensions
An integration is a product, tool, or service that
integrations with a Microsoft product in some way,
but does not install into that Microsoft product
directly.
Globalcode – Open4education
Cenário1
Gestão de Demandas
Demandas Aprovadas
Regulatory
Operation
Business
BuildFontes QA ProduçãoReleaseWorkitems
Globalcode – Open4education
Cenário1
Globalcode – Open4education
Hub Extension
Globalcode – Open4education
Cenario2
Build
MSBuild
Legado
Globalcode – Open4education
Build Task
Globalcode – Open4education
Pontos de Extensão
Hubs e Hubs Group
Globalcode – Open4education
Pontos de Extensão
Add backlog tabs
Globalcode – Open4education
Pontos de Extensão
Menus e toolbars
Globalcode – Open4education
Pontos de Extensão
Workitem form
• Add a group to the main page
• Add a page (tab)
• Add an action to the context menu
• Listen for events on the form
Globalcode – Open4education
Pontos de Extensão
Dashboard Widgets
Globalcode – Open4education
Pontos de Extensão
Build e Deploy Tasks
Globalcode – Open4education
Passo a passo
1.Criar a extensão:
• SDK;
• Icone;
• Manifest;
• Conteúdo (scripts, html, css,
images);
2.Empacotar (vsix);
3.Publicar:
• Criar Publisher;
• Realizar upload;
4.Compartilhar;
5.Disponibilizar para todos;
Globalcode – Open4education
Visual Studio Services
Web Extension SDK
https://github.com/Microsoft/vss-web-extension-sdk
Globalcode – Open4education
Visual Studio Services
Web Extension SDK
https://github.com/Microsoft/vss-web-extension-sdk
Globalcode – Open4education
Visual Studio Services
Web Extension SDK
Globalcode – Open4education
Manifest
Core properties
Globalcode – Open4education
Manifest
Discovery properties
Globalcode – Open4education
Manifest
Runtime properties
Globalcode – Open4education
Hospedagem do conteúdo
• Interno (VSTS/TFS);
• Externo;
Globalcode – Open4education
Armazenamento de dados
Settings: simple key-value
settings (like user
preferences)
Documents: collections of
similar complex objects
(documents)
Globalcode – Open4education
Empacotamento
TFX-CLI
Globalcode – Open4education
Publicando
• Criar Publisher;
• Upload vsix (portal ou Tfx-cli);
http://aka.ms/vsmarketplace-manage
Globalcode – Open4education
Compartilhando
Globalcode – Open4education
Tornando Público
“Send an email to vsmarketplace@microsoft.com
•Use the subject Publisher verification request
•Include your publisher ID in the e-mail
•Send from your organization/company e-mail address
•Share details of your association with a business/company and other
information such as
•Link to your site
•Link to your LinkedIn account
•Link to your GitHub account
•Link to your blog
•Share details about your extension/integration
•Microsoft will respond within 2 business days”
• Verificação do publisher
Globalcode – Open4education
Tornando Público
• True na flag public do Manifest;
• Empacotar e republicar;
Globalcode – Open4education
Referências
https://www.visualstudio.com/en-us/docs/integrate/extensions/overview
Documentação sobre extensões
https://github.com/Microsoft/vss-web-extension-sdk
Documentação da SDK
https://github.com/Microsoft/vsts-extension-samples
Exemplos
https://visualstudiogallery.msdn.microsoft.com/a00f6cfc-4dbb-4b9a-a1b8-
4d24bf46770b
Visual Studio Project Template
Globalcode – Open4education
Obrigado!
@igorguga
br.linkedin.com/in/igormacedo
http://igormacedo.com.br
igor.macedo@esx.com.br

TFS Extensions: Novas possibilidades para integrar suas iniciativas de DevOps ao TFS