Review: MVP Conf LATAM 2019 no Mundo Real

Seja bem vindo ao meu Review do MVP Conf LATAM 2019, um evento de experts Microsoft para apaixonados em tecnologia… Microsoft.

Review: Minha Trilha no MVP Conf LATAM 2019

Não pôde ir ao evento? Não conseguiu um voucher do Angelo Belchior? Senta aí e relaxa que eu te conto como foi e qual a minha opinião como um visitante no Mundo Real.

Também destaco as melhores partes dos assuntos tratados na trilha que escolhi para os dois dias do evento, 12 e 13 de abril.

As análises e opiniões expostas aqui, são de um bom e velho desenvolvedor de software, qualquer relação pessoal ou profissional com os palestrantes é mera coincidência.

Vamos lá!

eBook grátis de Design Patterns


#Preview MVP Conf LATAM 2019

Antes de falar do Review das palestras e minha trilha no MVP Conf LATAM 2019, quero dizer que não… não recebi voucher de desconto, paguei do próprio bolso. Até esperava um jabá do Baltieri mas não rolou.

Um ponto positivo que me fez participar do MVP Conf LATAM 2019, foi a grande quantidade de palestrantes e a diversidade de assuntos nas palestras.

Ponto forte: Nomes muito conhecidos da comunidade, destacam-se alguns logo de cara como Angelo Belchior, André Baltieri, Renato Groffe, André Secco, Eduardo Pires e até o Milton Camara, recente premiado com Microsoft MVP. Mas cadê o Elemar Jr?

Ponto fraco: Os e-mails de comunicação dos organizadores do evento para os inscritos caiam como SPAM e houveram diversos relatos sobre isso. O APP desenvolvido na plataforma Power Apps para agendamento das palestras não estava legal, tentei por diversas vezes e não conseguia fazer o agendamento.

Devido esse problema não consegui agendar as palestras de C# 8 da Thamirys e Docker na prática de André Dias/Júlio Arruda.

O credenciamento para o evento foi muito demorado com filas gigantescas, também cerca de dois mil visitantes, com certeza ia dar problema.

Será que esse problema não vai acabar? Todo evento é a mesma coisa.

Depois disso era complicado saber onde estavam as salas das palestras e depois de um tempo percebemos que essas salas estavam espalhadas em três diferentes prédios da universidade Anhembi Morumbi.

Bora pra primeira palestra!


#Palestra 1.1 – Testes de unidades eficazes

André Baltieri

Preview: Unit Testing é muito foda. Já vi tantas palestras de Angular do Baltieri que decidi me inscrever nessa aí. Senta o aço André!

Review: Se não fosse o domínio do Baltieri, não sei não viu. A sala estava péssima, sem ar condicionado, sem microfone e projetor horrível.

Para o MVP Conf LATAM 2019, André trouxe pra gente a questão dos testes unitários e apresentou um código zuado inteiro desenvolvido dentro de um Controller, com múltiplos acessos a banco de dados e serviços externos.

A palestra focou no refactor deste código para que ele pudesse ser testável. Então, André usou conceitos de Design Patterns como Repository, Factory, DI e DDD para melhorá-lo.

André Baltieri demonstrou diversos conceitos para melhorar o código fonte de forma que fosse possível testá-lo e futuramente possibilitar uma fácil manutenção.

Falou também sobre o Flunt, lib criada por ele para envio de notificações. Está disponível no NuGet e vale a pena conferir.

Baltieri tem uma plataforma com diversos cursos, o balta.io.

Sopa de letrinhas: Repository Pattern, DDD, Dapper Predicates, Polly, Flunt, Design by Contracts, Fail Fast Validation, Handlers, CQRS, OOP e OCP.

Material da palestra:
medium.com/balta-io


#Palestra 2.1 – Programação funcional em C#

Antonio Maniero

Preview: Da última vez que teve uma palestra de programação funcional eu perdi, então, não quero nem saber, agendei e vamos ver o que dá!

Review: O Maniero começou a palestra um pouco apreensivo, mas depois se soltou bem. O motivo foi que ele pegou uma palestra que não era dele.

O que me deixou triste foi o fato da palestra não ser totalmente de programação funcional.

Acho que não foi nesse MVP Conf LATAM 2019 que vi uma palestra 100% de programação funcional.

Antônio Maniero focou a palestra demonstrando formas de tratamento de NULL e exceções.

A solução dele trazia o conceito de encapsular qualquer resultado em classes de container, para não precisar acessar o resultado diretamente com possibilidade de tomar um NullReferenceException.

Se você precisar retornar uma instância de Pessoa, então você retornava Option, e dentro de Option existem propriedade que dizem se o dado real de Pessoa está OK ou não.

Esse conceito eu já usava em minhas aplicações e também foi apresentado pelo Elemar Jr em outro evento.

Depois, ele demonstrou os conceitos de Pattern Matching e Continuation, código declarativo que possibilita chamar métodos em cascata com opções quando sucesso e quando erro.

Esses conceitos são difíceis de explicar rapidamente aqui, então, vale a pena conferir o material da palestra.

Maniero conseguiu conduzir a palestra (que não era dele) e salvar o dia.

Sopa de letrinhas: Lazy Evaluation, Recursão, Função Pura, Delegates, Pattern Matching, inferência de tipos, programação declarativa, LINQ, implicit operator, Option e Continuation.

Material da palestra:
Ainda não enviado


#Palestra 3.1 – Blazor: o futuro da Web já chegou

Alexandre Malavasi

Preview: Essa parada de Blazor é show demais. Não tem como ficar fora dessa. Espero terem evoluído essa tecnologia e que o Alexandre faça uma demo no Mundo Real.

Review: Foi a sala no MVP Conf LATAM 2019 mais TOP de todas. Grande, com ar condicionado, três projetores, bem iluminada… muito boa. Com uma sala dessas até eu conseguia palestrar… brincadeira.

Depois de 15 minutos de atraso, Alexandre Malavasi iniciou sua explanação comparando o Blazor com tecnologias SPA como Angular, Vue e React.

Ele concentrou sua palestra no código Razor, criando Components/Pages que acessavam assincronamente API REST, tudo diretamente na View.

A demonstração de performance foi espetacular, pois o Blazor roda em Web Assembly diretamente no browser. Basicamente o browser baixa as DLLs da aplicação e a partir daí, somente realiza requisições à API no servidor.

A comunidade .NET tem a responsabilidade de levar o Blazor à frente, já que a programação é inteiramente em C#, não há javascript, nem jQuery ou outra lib de frontend.

Sopa de letrinhas: SPA como Angular, Vue e React, Tag Helpers, Razor Pages e Razor Components.

Material da palestra:
medium.com/@alexandre.malavasi


#Palestra 4.1 – Aplicando Testes Automatizado com Selenium e Azure DevOps

Renato Jose Groffe

Preview: Renato Jose Groffe, ou uma de suas instâncias, palestrando sobre Azure DevOps é TOP demais. Esse tal de Selenium é muito interessante. Bom também para dar um abraço no Milton Câmara.

Review: A palestra foi no auditório do prédio principal, aquela com o logotipo gigante do MVP Conf LATAM 2019.

Renato Jose Groffe e Milton Câmara dividiram essa palestra sobre testes de frontend com Selenium dentro do Azure DevOps.

Quem não estava acostumado com Unit Testing ficou um pouco boiando, não devido a explanação em si, mas pela dificuldade mesmo que é de se testar um frontend.

Além das bibliotecas do Selenium, era necessário baixar os drivers de cada browser e configurar o caminho de cada um deles para o Unit Testing.

O teste basicamente era preencher um campo texto com valor em Km, clicar em um botão e o sistema calculava o valor em Milhas, e por fim exibia o valor em um Label.

Após os testes realizados no Visual Studio, foi hora de demonstrar a configuração do Unit Testing dentro do Azure DevOps.

O pulo do gato é configurar o Build no Azure DevOps, rodar os unit testing (exceto frontend), chamar o Release e aí sim, no Release configurar o unit testing de frontend após publicação no ambiente de homologação.

Sopa de letrinhas: headless, Continuous Integration, Web Driver, XUnit, Test Category e Docker Hubs.

Material da palestra:
Youtube Milton Câmara
slideshare.net/miltomcamara


#Palestra 5.1 – Pipelines automatizados para aplicações híbridas

Igor Abade

Preview: Aplicações híbridas… mmmm parece interessante, principalmente vindo do Emmanuel, de quem me ensinou a mexer com GIT.

Review: A sala era uma daquelas salas meia boca do MVP Conf LATAM 2019, mas o Igor Abade dominou e se saiu muito bem.

O objetivo da palestra era demonstrar a configuração de pipelines no Azure DevOps (para aplicações on-premises) e Azure (Nuvem).

Mas a maior parte da palestra foi sobre aplicações on-premises no Azure DevOps, mais especificamente sobre pipeline para instalar uma aplicação Windows Service.

A explicação sobre o Deployment Groups foi fantástica. Anteriormente criava-se um Agent no Azure DevOps para empurrar o Artifact (build) para o servidor on-premises.

Mas agora não, através do Deployment agent group, é o agent no servidor on-premises que vai buscar o artifacts (build) no Azure DevOps, eliminando todo o problema de segurança.

Bom essa foi a parte do Igor, a partir daí o Emmanuel Brandão assumiu e tentou demonstrar a mesma questão usando YAML, configuração do pipeline em modo texto.

YAML é praticamente um arquivo texto de configuração que substitui todos os campos que são preenchidos nas telas do Azure Devops para o Build e Release.

O objetivo de se usar YAML e outras configurações em modo texto, é que podemos versioná-los junto com o código fonte, até mesmo aqueles scripts que criam as máquinas para a infra-estrutura no Azure.

Brandão não conseguiu concluir sua demonstração devido problema de internet.

Sopa de letrinhas: YAML, Azure, Artifacts, Deploy, Build, Deployment Groups e Fabrikan Fiber.

Material da palestra:
Ainda não enviado


#Palestra 6.1 – O que aprendi montando um arquitetura de micro serviços

Giovanni Bassi

Preview: Microsserviços é hard! Espero que o Giovanni mate a cobra e mostre o pau.

Review: O que o Giovanni Bassi aprendeu com Microsserviços é muita coisa e muito HARD rsss!

Nesse MVP Conf LATAM 2019, ele já começou dizendo “Você não precisa de microsserviços! Você pensa que precisa, mas não precisa”.

Giovanni conduziu a palestra com muito controle e conhecimento sobre as tecnologias.

É tão complexo e discutível a questão de microsserviços que a quantidade de detalhes que essa solução precisa contemplar desde a codificação, publicação e manutenção de suas versões, chega a ser desanimador.

Aposto que, quem viu essa palestra quer ficar longe de microsserviços por um tempo.

Pena que não teve nenhuma demo.

Sopa de letrinhas: FaaS, Docker, Helm, Vault, Kubernetes, TerraForm, SRE Google, Azure Functions, Circuit Breaker e Hadoop. Isso é o que eu lembro rss.

Material da palestra:
Ainda não enviado


#Palestra 7.1 – Comunicação Web em tempo real com o novo ASP.NET Core SignalR

Eduardo Pires

Preview: Tenho bastante contato com SignalR e muita curiosidade pra saber o que o Eduardo Pires vai trazer pra gente dessa vez.

Review: Chegamos a última palestra do primeiro dia e eu já estava muito cansado de ficar indo de um prédio a outro sempre na correria.

Um dos patrocinadores do evento era o Eduardo Pires, ou melhor, sua nova plataforma de cursos, a desenvolvedor.io.

Neste MVP Conf LATAM 2019, Eduardo Pires mostrou duas demos utilizando SignalR no .NET Core.

O primeiro deles foi espetacular, totalmente focado em uma “venda”, ou seja, se ele fosse um vendedor, teria vendido o produto (SignalR) fácilmente com essa demo.

Ele fez uma aplicação web que mostrava um espelho sendo rotacionado a partir do seu celular. Conforme ele balançava o celular, a imagem no browser também mexia.

A segunda demo foi um CHAT bem simples, nada demais.

Além das demos, ele explicou como o SignalR se comporta e seus tipos de transporte.

Pelo que vi, nada mudou efetivamente para o desenvolvedor. Ainda temos aqueles accessors como Clients.All para enviar e receber as mensagens.

Sopa de letrinhas: SignalR, Long Pooling, Server Sent Events, WebSockets, Azure SignalR Services, Blazor e Razor Components.

Material da palestra:
Ainda não enviado


#Palestra 1.2 – AI para desenvolvedores .NET

Angelo Belchior

Preview: Angelo e seus os robôs cada vez mais inteligentes. Vamos ver se ele está afiado como sempre. Suas palestras são sempre bem descontraídas e aprendo muito.

Review: Para o MVP Conf LATAM 2019, Angelo mostrou mais uma vez as funcionalidades do serviço Microsoft Cognitive Services e fez diversas demos.

A primeira demo acredito ter sido a mais interessante, mas é gosto de cada um.

Ele mostrou o site videoindexer.ai, que a partir de um vídeo qualquer, o site mostrava todas as pessoas que apareciam no vídeo, o minuto que elas apareciam e todos os diálogos transcritos.

Outra demo foi o reconhecimento de imagem em tempo real através do serviço Seeing AI. Não teve muito sucesso, parece não ter funcionado muito bem.

E também mostrou o novo IntelliCode do Visual Studio, que aprende e sugere comandos a partir da maneira que o desenvolvedor trabalha.

Outra demo, Angelo Belchior demonstrou como treinar a “máquina” para reconhecer desenhos, como por exemplo uma estrela. Isso foi bem interessante, deu exemplo de um software para analisar uma peça de usinagem por exemplo e reconhecer o quanto ela está gasta/usada.

Sopa de letrinhas: AI, Microsoft Cognitive Services, Video Indexer, Seeing AI, IntelliCode, Text to Speech, Intelligent Kiosk, Real Driver Monitoring, Custom Vision e Machine Learning.

Material da palestra:
github.com/angelobelchior


#Palestra 2.2 – Machining Learning com Spark

Diego Nogare

Preview: Vamos ver se a Terra é plana ou redonda… rsss! O assunto de Machine Learning me interessa, e é uma boa oportunidade para conhecer o Nogare.

Review: Esta palestra do Diego Nogare foi na minha opinião, uma das que continham assuntos mais complexos do MVP Conf LATAM 2019.

Além de envolver Big Data e Machine Learning, Spark é uma tecnologia que está fora do meu dia a dia. Então, para entender completamente seria necessário mais tempo, não apenas 50 minutos de palestra.

Nogare explicou os 3V do Big Data (volume, variedade e velocidade) e mostrou um infográfico gigantesco de quase todas as ferramentas do mercado que trabalham com essa tecnologia.

Ele conduziu muito bem, sempre com bastante entusiasmo e firmeza nas demonstrações.

Essa palestra me fez explodir os miolos.

Sopa de letrinhas: Hadoop, Spark, Big Data, Machine Learning, Graph X, Apache Zeppelin, Markdown e Jupyter.

Material da palestra:
Ainda não enviado


#Palestra 3.2 – Escrevendo C# moderno em 2019

Antonio Maniero

Preview: C# é vida! Escrever C# moderno… como? Essa palestra deve ser intrigante, topo essa parada!

Review: Nesta palestra eu tive que sentar no chão, pois cheguei atrasado, porque estávamos em outro prédio acompanhando alguns sorteios, entre eles um sorteio de um Xbox.

Todo dinheiro arrecadado (cerca de R$ 120.000,00) esse ano no MVP Conf LATAM 2019 foi doado a instituições carentes.

Bom, voltando… mais uma palestra do Antonio Maniero, agora sobre C# moderno.

O começo da palestra foi similar ao da palestra anterior sobre “programação quase funcional”.

Maniero fez uma analogia entre as principais features do C#, dando sua opinião sobre como fazíamos e como faremos no futuro.

Uma das falas mais importantes foi, segundo ele, “o .NET Framework morreu”.

O .NET Core veio pra ficar, é muito melhor e a nova versão 3.0 é 10X mais rápida que o NodeJS.

Ele trouxe muito conteúdo e acabou não dando tempo para falar de tudo, teve que correr no final. Uma pena, pois era o assunto que mais me interessava.

Sopa de letrinhas: Tuples, Async, Option, Span, Decimal, Ref Struct, Nullable, .NET Core e IO.

Material da palestra:
Ainda não enviado


#Palestra 4.2 – Performance nas API do ASP.NET Core

Renato Jose Groffe

Preview: Mais uma das instâncias de Renato Jose Groffe em ação. Amo adaptar aplicações para performance. To curioso com essa palestra.

Review: A abordagem dessa palestra foi performance, o que fazer para deixar nossas API em .NET Core mais rápidas.

Utilizando de técnicas conhecidas, Renato Groffe configurou a aplicação para não retornar campos Nulos no resultado da API e, para determinadas Actions, configurou compactação GZip usando Providers e Actions Filters do .NET Core.

Com os conceitos acima, a API que retornava 11 kb, acabou retornando cerca de 700 bytes.

O próximo exemplo de performance foi no banco de dados SQL, onde usou o comando FOR JSON PATH para converter uma query automaticamente em JSON, reduzindo o tempo das conversões e serializações. Essa feature está disponível a partir do SQL Server 2016.

Groffe também sugeriu o uso do Azure Data Studio para queries e exportação de dados de banco de dados SQL, que apesar de Azure no nome, não tem nada a ver com a plataforma Azure em si.

Por fim, demonstrou o uso do Microsoft Application Insights, uma forma de monitorar o tempo de resposta de API e banco de dados.

Sopa de letrinhas: GZip, Provider, Middleware, Refit, HttpClient, Restsharp, FOR JSON PATH, Azure Data Studio, Microsoft Application Insights, Fire and Forget e RabbitMQ.

Material da palestra:
medium.com/@renato.groffe


Fim!

Review: MVP Conf LATAM 2019 no Mundo Real

Também não fiquei para o happy hour, muito cansado… fica para próxima.

Participou do evento? Assistiu outras palestras? Comente aqui! Vamos ajudar os palestrantes a melhorar cada vez mais.

Obrigado e até mais.

Eu apoio Fabio Silva Lima

Sobre o Autor:
Trabalha como arquiteto de soluções e desenvolvedor, tem mais de 18 anos de experiência em desenvolvimento de software em diversas plataformas sendo mais de 16 anos somente para o mercado de seguros.
Revisado por:
Apaixonado por tecnologia, atualmente trabalho com aplicações web e estou aprofundando meu conhecimento em mobile. Meu objetivo é contribuir com a comunidade ajudando os desenvolvedores que estão iniciando.


Paulistano, 21 anos apaixonado por tecnologia, trabalho com desenvolvimento de software atuando com .NET / Xamarin / AngularJS / ASP.NET CORE / MVC.