Suporte a macros na sua aplicação com PowerShell
-
Upload
igor-abade -
Category
Technology
-
view
362 -
download
1
Transcript of 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
Globalcode – Open4education
Agenda
MotivaçãoTecnologias de MacroSolução com PowerShellDemo
Globalcode – Open4education
Motivação
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
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
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
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
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 ;-)
Globalcode – Open4education
PowerShell self-hosting
NugetSystem.Automation.Management
Classe PowerShellPowerShell.Create() cria runtimeMétodo AddScript() para passar scriptsMétodo Invoke() para executar os scripts
Globalcode – Open4education
Demo
Globalcode – Open4education
GitHub!
https://github.com/igoravl/TDC2016_DotNet
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