Olá Devs! 👨💻
Sim, eu desenvolvo aplicações para desktop. Existem necessidades específicas que um software desktop acaba sendo aderente.
Quando falamos sobre desktop hoje, boa parte dos Devs pensa imediatamente em: "Electron". Sei que temos muitas aplicações desenvolvidas assim, já desenvolvi assim, mas o resultado não me agrada muito. Quem sabe depois escrevo um post sobre isso. Para esse tipo de aplicação, minha opção acabou sendo um modelo híbrido, uma mistura de WindowsForms + CefSharp + Nancy. O resultado é bem satisfatório, mas acredito que pode melhorar bastante, e é ai que entra o Blazor WebView.
Estou sempre em busca de novas possibilidades e achei artigos interessantes que me fizeram pensar e querer colocar em prática. Vou aproveitar para conhecer o Blazor, já que estou devendo esse estudo faz um tempo.
Com as novas versões de SDK do .Net, sei que muita coisa vai mudar e/ou melhorar com relação ao Desenvolvimento Desktop, mas vou começar estudando essa alternativa. A ideia é entender o funcionamento e criar algo, simples e leve.
Esse desenvolvimento esta sendo feito com o SDK 6.0 preview e o VS2019. Após a instalação do SDK, você precisa configurar o VS2019 para que ele consiga trabalhar com a versão preview. Para fazer essa configuração é só acessar o menu "Tools -> Options" e ativar a opção conforme na figura.
Outro ponto importante é a instalação do WebView2 Runtime, o link esta no final do artigo.
Criando o projeto e a solução
dotnet new winforms -n BlazorDesktop -f net6.0
dotnet new sln
dotnet sln add BlazorDesktop/BlazorDesktop.csproj
Adicionando o pacote webview
dotnet add package Microsoft.AspNetCore.Components.WebView.WindowsForms --version 6.0.0-preview.3.21201.13
Criei um repositório que vou atualizar de acordo com as necessidades. Atualizo o post se pintar novidades.
Repositório
Prereqs
SDK 6.0.100-preview.3
Referências
Nancy - Lightweight Web Framework for .net
CefSharp - Fast web browser for WinForms and WPF Apps
ASP.NET Core updates in .NET 6 Preview 3
.NET 6 Gets Blazor WebView Controls for WPF, WinForms
Distribution of apps using WebView2
Getting Setup With .NET 6 Preview
Até a próxima! 👊
☕😊 Agora você pode apoiar comprando um café para mim