Suporte a macros na sua aplicação com PowerShell

12
Globalcode – Open4education Suporte a macros na sua aplicação com PowerShell Trilha .NET Igor Abade V. Leite Lambda3 Microsoft MVP – Visual Studio ALM Professional Scrum Trainer – Scrum.org

Transcript of Suporte a macros na sua aplicação com PowerShell

Page 1: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Suporte a macros na sua aplicação com PowerShell

Trilha .NET

Igor Abade V. LeiteLambda3

Microsoft MVP – Visual Studio ALMProfessional Scrum Trainer – Scrum.org

Page 2: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Agenda

MotivaçãoTecnologias de MacroSolução com PowerShellDemo

Page 3: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Motivação

Page 4: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Motivação

Suporte a macros é legal útilDiversos tipos de aplicações podem usar

ERP é exemplo mais óbvioMas vale para qualquer aplicação desktop

Permite customizar sem recompilarFácil de estender os recursos

Page 5: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Tecnologias de Macro

Visual Basic for Applications (VBA)Maduro, estável, mas caro e obsoletoMicrosoft permitia que empresas licenciassem

Exemplo: CorelDRAW! vinha com VBAMas não é mais comercializado

Visual Studio Tools for Applications (VSTA)“Evolução” do VBA – substitui VB por C# e VB.NETUsa .NET ao invés do runtime VB do VBAUsado desde 2008 como ambiente de macros do VSMicrosoft permite que empresas licenciem

Caro. Nunca obteve tração

Page 6: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Tecnologias de Macro

PowerShellNão é exatamente uma tecnologia de macro, mas...

Versátil como VBA.NET puro, com acesso a todos os seus recursosSuporta self-hosting

Page 7: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Solução com PowerShell

Requisitos da solução:Embutir numa aplicação WPFOferecer console PowerShell para REPL

Similar à janela Immediate do VBA

IDE para edição de scriptsComo o IDE do VBA

Interação de mão-dupla entre aplicação e PowerShellCódigo PS pode acessar objetos da aplicaçãoAplicação pode passar e receber estado para PowerShellCódigo (delegates, scriptblocks) devem ser executáveis por qualquer um dos dois lados

Page 8: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Aplicação de Exemplo

WAF WriterAplicação de exemplo do WAFFeita em WPF com MVVM

Excelente ponto de partidaMVVM facilita integraçãoSó falta integrar com PowerShell ;-)

Page 9: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

PowerShell self-hosting

NugetSystem.Automation.Management

Classe PowerShellPowerShell.Create() cria runtimeMétodo AddScript() para passar scriptsMétodo Invoke() para executar os scripts

Page 10: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Demo

Page 11: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

GitHub!

https://github.com/igoravl/TDC2016_DotNet

Page 12: Suporte a macros na sua aplicação com PowerShell

Globalcode – Open4education

Obrigado!Suporte a macros na sua aplicação com PowerShell

Trilha .NET

Igor Abade V. LeiteLambda3

Microsoft MVP – Visual Studio ALMProfessional Scrum Trainer – Scrum.org