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:
- Entrega - Garantia de entrega ou rapidez (TCP, UPD)?
- 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
- ASP.NET Core 3 - gRPC
- Beating JSON performance with Protobuf
- HTTP/2
- Supporting the community with WF and WCF OSS projects
- .NET Core is the Future of .NET
Comments