Futuro do .NET Core

Muita coisa vem mudando no .NET. Após a conferencia em Maio de 2019 a Microsoft anunciou o .NET Core 3 e também apresentou o futuro do .NET. Confira aqui as mudanças mais impactantes e como migrar teu legado.

Em setembro será lançado o .NET Core 3. E a Microsoft também anunciou o novo .NET 5. Na conferência Build 2019. O .NET 5 será uma plataforma unificada para a criação de aplicativos. Multiplataforma (Windows, Linux) e também para diversos dispositivos (IoT, Mobile).

Se você é um desenvolvedor .NET, estas noticias podem confundir. Muita coisa nova surgindo. Muitas mudanças. E você precisa saber como o .NET afetará sua empresa a longo prazo.

Há especulações que tecnologias como Web Forms deixarão de existir nos novos releases. O WCF é uma incognita, Scott Hunter disse em um Podcast que a migração dele para .NET Core levaria 3 anos. O .NET 5 é baseado nos mesmos conceitos do .NET Standard. Fortalecendo a idéia que certas plataformas disponiveis hoje podem não estar disponiveis no futuro.

Neste ambiente de constante evolução, como evoluir o seu aplicativo? este artigo pretende ajudar aqueles que buscam alternativas. O que utilizar ao migrar um WebForms? O que usar no lugar de WCF?

WCF

A Microsoft não se pronunciava oficialmente sobre o WCF. Passou anos sem dizer o rumo dele. E o WCF não terá continuidade. Scott Hunter em seu blog diz que haverá o .NET WCF Client. É a habilidade do .NET Core como client fazer chamadas aos WCF's legados.

É o fim do WCF ?

Não. Há milhares de projetos ainda em WCF. Oficialmente não haverá continuidade. Não será possivel iniciar novos projetos em WCF.

A noticia deixou parte da comunidade infeliz. E resolveram portar o WCF para .NET Core. Há um repositório no Github chamado CoreWCF.

Alternativas

Quando há troca de mensagens entre serviços dois pontos merecem atenção:

  1. Entrega - Garantia de entrega ou rapidez (TCP, UPD)?
  2. Formato da mensagem (Json, Xml, Soap, Protubuf)

Para atender essas duas questões há algumas alternativas ao WCF. E claro, depende do cenário da tua aplicação.

  • Sistema reativo. Dependem da passagem assíncrona de mensagens. Esse tipo de cenário é comum em ambientes de Microsserviços. Onde há um MSMQ e a comunicação se dá pelo uso de eventos. Esse artigo aborda este cenário.
  • Uma WebApi, HTTP ou HTTPS, trafegando JSON.
  • E no futuro, finalmente teremos o gRPC Services com ASP.NET Core! (Atualmente disponível na versão preview)
    • O gRPC é um framework criado pelo Google. Suporta comunicação através de conexões HTTP/2 e utiliza o Protobuf para serializar as mensagens. O Protobuf chega a ser até 6 vezes mais rápido se comparado com JSON.

Web Forms

O Web Forms nunca foi unanimidade, teve seu propósito de ajudar a migrar os desenvolvedores Windows Forms para a Web. Já não vive seu dias de glórias. Se é que já teve algum.

Se esse é teu legado e a empresa decidiu que esta na hora de migrar. Há muitas alternativas.

Talvez a melhor alternativa, atualmente, ao Web Forms seria o ASP.NET Core MVC. Obviamente que cabem ressalvas. Mas se você está precisando migrar seu Website desenvolvido com WebForms e não sabe qual tecnologia utilizar, ASP.NET Core MVC é uma boa resposta.

Apesar de haver outras opções. Os outros cenários tendem a separar o Frontend do Backend. E dentro desse cenário frameworks SPA são uma alternativa para o Frontend. Por exemplo Angular, React e Vue. Com backend desenvolvido em ASP.NET Core.

A Microsoft também está trabalhando no Blazor. Era um projeto experimental, mas foi promovido a oficial. Particularmente para o Blazor ainda agiria com cautela. Toda nova tecnologia é bom esperar amadurecer, afinal se der erro é você quem vai ter que criar a Thread no StackOverflow.

ASP.NET MVC 5 / 4 / 3

Se estiver usando ASP.NET MVC a indicação natural é o ASP.NET Core MVC. Tenha em mente que a Framework foi reescrita. Por isso prepare-se. Diversas coisas mudaram e terá que lidar com esses break changes.

Sugiro a leitura deste artigo da Stackify 15 Lessons Learned while Converting from ASP.NET to .NET Core

No entanto, se você estiver buscando modernizar a aplicação para sua empresa, é melhor considerar um aplicativo SPA.

O Blazor deixou de ser experimental, porém ainda é um produto novo e que ainda não é unanimidade. Você pode enfrentar problemas únicos e ser o primeiro a perguntar no Stack Overflow.

Referências