Microsoft Build 2018 – ZettaBytes e hypes!

A Build 2018 já passou e já deixou saudades… Mas também deixou muitos ZettaBytes de conteúdo para a comunidade de desenvolvedores em todo o mundo! Então pretendo resumir algumas coisas e me aprofundar naquelas que tem maior relação a minha expertise… Vamos lá?!

Overview

Muitas coisas bacanas foram anunciadas e demonstradas na Build 2018, e também “fora” dela. A Microsoft, mais uma vez, deixa claro (pelo menos para mim) seu empenho em consolidar-se como a maior empresa de produtos e serviços para nuvem do mundo. Todas as apresentações transmitidas ao vivo no site do evento, relacionavam-se com computação em nuvem de alguma forma.

Machine Learning e Inteligência Artificial também foram tópicos constantes, principalmente nos anúncios de novas ferramentas e iniciativas, das quais destaco a seguir.

“AI for Accessibility”, apresentada por Satya Nadella, que tem como objetivo oferecer mecanismos para inclusão e ampliação do acesso a recursos de IA para pessoas com deficiências diversas. Em uma demonstração do “Teams”, uma pessoa com limitações de dicção teve sua fala transcrita para todos os participantes de uma conferência e traduzida para outros idiomas instantaneamente, foi impressionante!

“Cortana + Alexa”, também estiveram presentes em uma demo onde as assistentes se interagiram e “compartilharam” funcionalidades e gentilezas (rs).

A demo da Microsoft em parceria com a “DJI drones” também surpreendeu, apresentou oportunidades comerciais interessantes para o “Azure IoT Edge”.

Um portfólio incrível de parceiros, fabricantes de “Cloud Ready Devices”, capazes de levar o poder da nuvem (Machine Learning, IA, etc) para uma infinidade de dispositivos foi apresentada, tudo para aguçar a criatividade dos desenvolvedores.

O projeto “Kinect on Azure” também foi anunciado, aproveitando os recursos dos “AI-enabled edge devices”, demonstrando algumas oportunidades para educação, saúde, games, etc…

Interessante mencionar que tudo isso foi apresentado só no primeiro dia da Build (rs), que também contou com a apresentação das novidades e planos para .NET, o “Go Live” do .NET Core (2.1) + anúncio do .NET Core 3.0 (preview), lançado o Visual Studio 15.7.x e é anunciado o VS 15.8 (preview), lançado o Visual Studio for Mac 7.5…

A Microsoft também anunciou um CDN próprio, o “Azure CDN”, que é muito interessante, com preços mais interessantes ainda e conta com pontos de presença em vários lugares ao redor do globo.

O Live Share, agora está em “public preview” e pode ser testado através da instalação de uma extensão no Visual Studio, esse recurso é muito interessante pois possibilita que vários desenvolvedores trabalhem no mesmo ambiente simultaneamente diretamente pelo Visual Studio, particularmente, como professor eu achei essa novidade fantástica, fora outras aplicações possíveis para home-office, etc…

DevOps também ganhou destaque, integração do GitHub com o Microsoft AppCenter e também com pacote Office, onde foi demonstrada a possibilidade de responder uma “Issue” diretamente do Outlook!

AKS que agora é Azure Kubernetes Service e continua AKS (rs) é oficialmente parte do Kubernetes Conformance Program, e traz muita consistência e e portabilidade do Kubernetes em diferentes ambientes.

Mais impressionante foi a demonstração do “Dev Spaces for AKS” que permite ao desenvolvedor trabalhar isoladamente em suas demandas em uma réplica do ambiente produção, porém sem interferir na aplicação atual, isso é fantástico! Seria o fim do “Works on my machine”? (rs)

Foi anunciado também a “ML.NET”, a SDK de Machine Learning para .NET, também muito legal!

Se você acha o IntelliSense incrível, vai vibrar com o IntelliCode… Trata-se de poder contar com uma Inteligência Artificial para ajudar você no desenvolvimento de suas aplicações… Ele não vai escrever o código por você (pelo menos não ainda… rs…) mas vai revisá-lo, vai organizar o IntelliSense para destacar alguns recursos que você mais usa… Enfim, uma série de coisas bacanas…

Mas ainda não terminamos… Lembra do DNA?!

.NET Anywhere
.NET Anywhere

Pois é… Dot Net Anywhere!!! Foi anunciado o projeto experimental Blazor!

Blazor é um “framework web full stack” (e não um framework SPA) que utiliza WebAssembly para rodar o .NET DIRETAMENTE NO NAVEGADOR, ISSO MESMO, DIRETO DO NAVEGADOR!

Não pretendo me alongar muito sobre Blazor e WebAssembly aqui, pois estou estudando ele um pouco mais a fundo e irei publicar alguns conteúdos a respeito em breve… Trata-se de uma ferramenta experimental mas absurdamente promissora, que inclusive foi destaque em MUITAS apresentações durante a Build!

É desenvolvedor Desktop?! Essa vai te interessar… O .NET Core 3.0 vai oferecer interoperabilidade entre UWP + WPF + WinForms! Exatamente, WinForms! Isso vai ajudar bastante a portabilidade e migração entre as plataformas.

E olha que praticamente tudo que falei até o momento rolou no primeiro dia da Build! Então pensa… rs… Foi alucinante…

Os demais dias, foram focados em demonstrar o que foi apresentado e citado no primeiro dia, demo do Teams com todas as integrações com traduções, acessibilidades, HoloLens, a nova versão da Windows SDK e outras coisas mais…

As apresentações foram vibrantes e surpreendentes, tanto no dia 2 como no 3…

No 2, para “minha” demanda, o “Futuro do C#” apresentou os novos recursos da linguagem e o C# 8… Falarei deles em outra oportunidade, mas, IHMO apresentar o C# para iniciantes usando os recursos apresentados pode ser assustador (rs), tudo muito “resumido e auto-mágico” que pode causar um pouco de confusão aos iniciados…

No dia 3, foi focado em mostrar o “poder de fogo” da nuvem Microsoft, novos hardwares, novos projetos e uma capacidade de “Storage” inimaginável… Para se ter noção, hoje toda informação da internet está estimada em 1 Zettabyte de dados… 20 servidores em um só rack no datacenter do Azure é capaz de armazenar TODA A INFORMAÇÃO DA INTERNET!!! E o Azure conta com DEZENAS, CENTENAS desses RACKS de servidores… (rs)…

Impressionante
Impressionante

Antes de falar de Xamarin, uma apresentação densa para anunciar o “public preview” do “Azure Blockchain Workbench”, com um conjunto de ferramentas para desenvolvimento de aplicações voltadas para Blockchain.

E então falaremos de Xamarin…

IMHO a apresentação de Xamarin foi um tanto quanto fria e nada empolgante, destoando completamente do restante do evento… Foram apresentados os “novos” recursos do Xamarin.Forms 3.0, nos quais destaco o “FlexLayout”, “Visual State Manager” e “Right-To-Left Localization” recursos que já estavam disponíveis na versão “preview” e simplesmente entraram em “release”…

Dos 45 minutos de apresentação do Xamarin, ~10 foram consumidos pela Telerik em uma demo de sua suíte de componentes… Outros ~10 foram para mostrar o Ooui (que torna o Xamarin.Forms disponível para WebAssembly), o resto foram demonstrações das features acima citadas e também de uma feature citada nos dias anteriores que é o “Live Reload”, cuja proposta é permitir ao desenvolvedor editar um código de interface XAML, salvar e ver como ficou imediatamente enquanto o aplicativo está em modo debug…

Falando do que afeta o meu cotidiano

Xamarin

IMHO, mais um ano passou e a palavra que define a participação da Xamarin na Build é: HYPE!

Ano passado foi o XAML Previewer, que gerou maior frenesi e, pelo menos para mim, nunca funcionou direito. E o mesmo ocorreu com o Live Reload, dá mais trabalho fazer funcionar do que fazer o que é preciso e recompilar a aplicação e ver como ficou… Rodou somente no emulador, e parou no 4º~5º build, assim como no celular que custou a funcionar e quando funcionou parou do nada e não voltou mais… Enfim, hype!

O roadmap do Xamarin apresentado na Build também não foi nada inovador (pelo menos no que foi anunciado publicamente), não desanimou o suficiente para “abandonarmos o navio” mas eu, particularmente, esperava mais… E o time Xamarin na Microsoft tem muita gente boa para voltar a empolgar!

Só tá faltando um pouco mais de prioridade…

Blazor

Esse é um assunto que ainda está dando o que falar e é um projeto muito promissor.

Poder contar com .NET full stack rodando no browser realmente empolga demais, principalmente o desenvolvedor back-end que não precisará mais de frameworks JavaScript (e até do próprio JavaScript) para manipular os elementos de sua aplicação web… E ainda escrever seu código C# e rodar direto do navegador, simples assim… Realmente promete… Tomara que saia do experimental… rs…

Quanto ao Blazor eu não pretendo me alongar aqui, tenho feito alguns testes e logo publicarei novos materiais a respeito…

.NET Core (ASP.NET Core, Entity Framework Core, etc…)

A performance (do runtime e do tooling) do .NET Core é indiscutível e pretendo migrar/implementar meus projetos para ele… Mas o Entity Framework Core não conseguiu me convencer… Com uma demo cheia de bugs e fiascos, com momentos que pensei que os apresentadores iriam desistir e deixar pra lá, o EF Core ainda é uma âncora para o stack ASP.NET Core… Tanto que, o EF 6.3 ganhou destaque na apresentação do EF Core (rs), com comparativo de funcionalidades de interoperabilidade do EF 6 com o .NET Core 3 foi anunciada…

Todo o resto, excelente… Mas no caso do EF Core, eu “prefiro melão”… rs…

E enquanto isso…

Uno

A Build veio com um “eco” gigantesco de uma plataforma cuja promessa permitir que seja utilizado todo o stack e tooling UWP e isso seja convertido para Android, iOS, UWP e WebAssembly AUTO-MAGICAMENTE! E GRÁTIS!

Confesso que fiquei muito empolgado com isso, tão empolgado quanto fiquei com o Xamarin em meados de 2007 quando descobri o potencial dessa plataforma…

Nos testes preliminares que realizei em meus estudos, é mais uma ferramenta promissora que tem tudo para bombar nos próximos capítulos…

Se você é desenvolvedor Xamarin, recomendo que dê uma espiada nesse cara: http://platform.uno/

E não se preocupe, sabendo Xamarin, você já está com 80% do caminho andado para usar Uno!

Conclusão…

Enfim, vou ficando por aqui sem muito mais a acrescentar neste artigo, até porque já fiz minhas considerações durante todo o texto…

Uma coisa é fato, NUNCA HOUVE MELHOR MOMENTO para trabalhar com Xamarin, ASP.NET, .NET, etc!

Grande abraço a todos e até a próxima conexão!

Links:

Project Kinect for Azure: https://azure.microsoft.com/en-us/campaigns/kinect/

Azure CDN: https://docs.microsoft.com/en-us/azure/cdn/cdn-overview

Azure Kubernetes Service: https://azure.microsoft.com/en-us/blog/kubernetes-on-azure/

Dev Spaces for AKS: http://landinghub.visualstudio.com/devspaces

ML.NET: https://github.com/dotnet/machinelearning

IntelliCode: https://www.visualstudio.com/services/intellicode/

Blazor: https://blazor.net/

Azure Blockchain Workbench: https://azure.microsoft.com/en-us/blog/simplifying-blockchain-app-development-with-azure-blockchain-workbench-2/