Versão experimental Blazor 0.8.0 já está disponível

Blazor 0.8.0 já está disponível! Esta versão atualiza o Blazor para usar o Razor Components no .NET Core 3.0 e adiciona algumas correções críticas.


Obter Blazor 0.8.0


Para começar com o Blazor 0.8.0, instale o seguinte:


  1. SDK do .NET Core 3.0 Preview 2 (3.0.100-preview-010184)
  2. Visual Studio 2019 (Visualização 2 ou posterior) com a carga de trabalho de desenvolvimento da Web e ASP.NET selecionada.
  3. A mais recente extensão Blazor do Visual Studio Marketplace.
  4. Os modelos do Blazor na linha de comando:


    dotnet new -i Microsoft.AspNetCore.Blazor.Templates::0.8.0-preview-19104-04 

Você pode encontrar instruções de introdução, documentos e tutoriais para o Blazor em https://blazor.net .


Atualize para o Blazor 0.8.0


Para atualizar seus aplicativos Blazor existentes para o Blazor 0.8.0, verifique primeiro se você instalou os pré-requisitos listados acima.


Para atualizar um projeto independente do Blazor 0.7.0 para 0.8.0:


  • Atualize os pacotes Blazor e as referências da ferramenta CLI do .NET para 0.8.0-preview-19104-04.
  • Substitua qualquer referência de pacote para Microsoft.AspNetCore.Blazor.
  • Substitua BlazorComponent por ComponentBase .
  • Atualize as substituições de SetParameters nos componentes para substituir SetParametersAsync .
  • Substitua BlazorLayoutComponent por LayoutComponentBase
  • Substitua IBlazorApplicationBuilder por IComponentsApplicationBuilder .
  • Substitua quaisquer instruções de uso para Microsoft.AspNetCore.Blazor.* Com Microsoft.AspNetCore.Components.* , Exceto deixe Microsoft.AspNetCore.Blazor.Hosting em Program.cs
  • Em index.html, atualize a referência do script para reference components.webassembly.js em vez de blazor.webassembly.js

Para atualizar um aplicativo Blazor hospedado no ASP.NET Core para 0.8.0:


  • Atualize o projeto Blazor do lado do cliente, conforme descrito anteriormente.
  • Atualize o aplicativo ASP.NET Core que hospeda o aplicativo Blazor no .NET Core 3.0, seguindo as etapas de migração nos documentos do ASP.NET Core .
    • Atualize a estrutura de destino para ser netcoreapp3.0
    • Remova qualquer referência de pacote para Microsoft.AspNetCore.App ou Microsoft.AspNetCore.All
    • Atualize qualquer Microsoft.AspNetCore que não seja o Blazor. * Referências de pacote para a versão 3.0.0-preview-19075-0444
    • Remova qualquer referência de pacote para Microsoft.AspNetCore.Razor.Design
    • Para habilitar o suporte a JSON, adicione uma referência de pacote ao Microsoft.AspNetCore.Mvc.NewtonsoftJson e atualize Startup.ConfigureServices para chamar services.AddMvc().AddNewtonsoftJson()
  • Atualize a referência do pacote Microsoft.AspNetCore.Blazor.Server para 0.8.0-preview-19104-04
  • Adicione uma referência de pacote ao Microsoft.AspNetCore.Components.Server
  • No Startup.ConfigureServices simplifique qualquer chamada para app.AddResponseCompression para chamar a sobrecarga padrão sem especificar WebAssembly ou dados binários como tipos MIME adicionais para compactar.
  • Em Startup.Configure adicione uma chamada a app.UseBlazorDebugging() após a chamada existente a app.UseBlazor<App.Startup>()
  • Remova qualquer uso desnecessário do espaço para nome Microsoft.AspNetCore.Blazor.Server .

Para atualizar uma biblioteca de classes Blazor para 0.8.0:


  • Substitua as referências de pacote para Microsoft.AspNetCore.Components.Browser e atualize as versões para 3.0.0-preview-19075 -0444.
  • No arquivo de projeto da biblioteca, altere o SDK do projeto de "Microsoft.NET.Sdk.Web" para "Microsoft.NET.Sdk.Razor".

O Blazor do lado do servidor agora é o ASP.NET Core Razor Components no .NET Core 3.0


Como foi anunciado recentemente, o Blazor do lado do servidor agora está sendo enviado como ASP.NET Core Razor Components no .NET Core 3.0. Integramos o modelo de componente Blazor no ASP.NET Core 3.0 e o renomeamos para Razor Components. O Blazor 0.8.0 agora foi desenvolvido com o Razor Components e permite hospedar o Razor Components no navegador no WebAssembly.


Atualizar um projeto Blazor do lado do servidor para o ASP.NET Core Razor Components no .NET Core 3.0


Se você trabalha com o Blazor do lado do servidor, recomendamos a atualização para usar o ASP.NET Core Razor Components no .NET Core 3.0.


Para atualizar um aplicativo Blazor do lado do servidor para o ASP.NET Core Razor Components:


  • Atualize o projeto Blazor do lado do cliente, conforme descrito anteriormente, exceto substitua a referência de script para blazor.server.js por components.server.js
  • Atualize o aplicativo ASP.NET Core que hospeda o Razor Components para o .NET Core 3.0, conforme descrito anteriormente.
  • No projeto do servidor:
    • Atualize a referência do pacote Microsoft.AspNetCore.Blazor.Server para 0.8.0-preview-19104-04
    • Adicione uma referência de pacote ao Microsoft.AspNetCore.Components.Server versão 3.0.0-preview-19075-0444
    • Substitua a instrução using para Microsoft.AspNetCore.Blazor.Server por Microsoft.AspNetCore.Components.Server
    • Substitua services.AddServerSideBlazor por services.AddRazorComponents e app.UseServerSideBlazor por app.UseRazorComponents .
    • No método Startup.Configure , adicione app.UseStaticFiles() antes de chamar app.UseRazorComponents .
    • Mova a pasta wwwroot do projeto do aplicativo Blazor para o projeto do servidor ASP.NET Core

Alternando entre o ASP.NET Core Razor Components e o Blazor do lado do cliente


Às vezes, é conveniente poder alternar entre a execução dos componentes do Razor no servidor (ASP.NET Core Razor Components) e no cliente (Blazor). Por exemplo, você pode executar no servidor durante o desenvolvimento para poder depurar facilmente, mas depois publicar seu aplicativo para executar no cliente.


Para atualizar um aplicativo Blazor hospedado pelo ASP.NET Core para que ele possa ser executado como um aplicativo ASP.NET Core Razor Components:


  • Mova a pasta wwwroot do projeto Blazor do lado do cliente para o projeto do servidor ASP.NET Core.
  • No projeto do servidor:
    • Atualize a tag de script em index.html para apontar para components.server.js em vez de components.webassembly.js .
    • Adicione uma chamada a services.AddRazorComponents<Client.Startup>() no método Startup.ConfigureServices .
    • Adicione uma chamada a app.UseStaticFiles() no método Startup.Configure antes da chamada para UseMvc .
    • Substitua a chamada para UseBlazor por app.UseRazorComponents<Client.Startup>()

  • Se você estiver usando injeção de dependência para injetar um HttpClient em seus componentes, será necessário adicionar um HttpClient como um serviço no método Startup.ConfigureServices do servidor.

As ferramentas para projetos Blazor agora estão incluídas no Visual Studio 2019


Anteriormente, para obter suporte de ferramentas para projetos Blazor, era necessário instalar a extensão Blazor para Visual Studio. A partir do Visual Studio 2019 Preview 2, o suporte de ferramentas para Razor Components (e, portanto, aplicativos Blazor) já está incluído sem a necessidade de instalar mais nada. A extensão Blazor agora é necessária apenas para instalar os modelos de projeto Blazor no Visual Studio.


Melhorias no tempo de execução


O Blazor 0.8.0 inclui algumas melhorias no tempo de execução do .NET, como desempenho aprimorado do tempo de execução no Chrome e um vinculador de IL aprimorado. Em nossos benchmarks de desempenho, o desempenho do Blazor 0.8.0 no Chrome agora é cerca de 25% mais rápido. Agora você também pode fazer referência a bibliotecas existentes como o Json.NET a partir de um aplicativo Blazor sem nenhuma configuração adicional de vinculador:


 @functions { WeatherForecast[] forecasts; protected override async Task OnInitAsync() { var json = await Http.GetStringAsync("api/SampleData/WeatherForecasts"); forecasts = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherForecast[]>(json); } } 

Problemas conhecidos


Existem alguns problemas conhecidos com esta versão que você pode encontrar:


  • "Não foi possível encontrar nenhuma versão compatível do framework. A estrutura especificada 'Microsoft.NETCore.App', versão '2.0.0' não foi encontrada. ” : Você pode ver esse erro ao criar um aplicativo Blazor porque o vinculador de IL atualmente exige que o .NET Core 2.x seja executado. Para contornar esse problema, instale o .NET Core 2.2 ou desative o vínculo de IL configurando a propriedade <BlazorLinkOnBuild>false</BlazorLinkOnBuild> no arquivo do projeto.
  • "Não foi possível gerar o deps.json, ele pode já ter sido gerado." : Você pode ver esse erro ao executar um aplicativo Blazor independente e ainda não restaurou pacotes de aplicativos .NET Core. Para solucionar esse problema, crie qualquer aplicativo .NET Core (ex- dotnet new console ) e execute novamente o aplicativo Blazor.

Esses problemas serão abordados em uma atualização futura do Blazor.


Futuras atualizações


Esta versão do Blazor foi focada principalmente na primeira integração dos componentes do Razor no ASP.NET Core 3.0 e, em seguida, na reconstrução do Blazor. No futuro, planejamos enviar atualizações do Blazor a cada atualização do .NET Core 3.0.


O Blazor e o suporte para executar o Razor Components no WebAssembly no navegador não serão enviados com o .NET Core 3.0, mas continuamos trabalhando para enviar o Blazor em data posterior.


Dar feedback


Esperamos que você goste desta versão mais recente do Blazor. Como nas versões anteriores, seu feedback é importante para nós. Se você tiver problemas ou tiver dúvidas ao experimentar o Blazor, arquive problemas no GitHub . Você também pode conversar conosco e com a comunidade Blazor no Gitter, se ficar emperrado ou para compartilhar como o Blazor está trabalhando para você. Depois de experimentar o Blazor por um tempo, informe-nos o que você pensa ao fazer nossa pesquisa de produto. Clique no link da pesquisa mostrado na página inicial do aplicativo ao executar um dos modelos de projeto Blazor:


Pesquisa Blazor


Obrigado por experimentar o Blazor!

Source: https://habr.com/ru/post/pt440544/


All Articles