๐ Blazor WebAssembly 3.2.0 Preview 4 release now available
๐ก Newskategorie: Programmierung
๐ Quelle: devblogs.microsoft.com
A new preview update of Blazor WebAssembly is now available! Hereโs whatโs new in this release:
- Access host environment during startup
- Logging improvements
- Brotli precompression
- Load assemblies and runtime in parallel
- Simplify IL linker config for apps
- Localization support
- API docs in IntelliSense
Get started
To get started with Blazor WebAssembly 3.2.0 Preview 4 install the latest .NET Core 3.1 SDK.
NOTE: Version 3.1.201 or later of the .NET Core SDK is required to use this Blazor WebAssembly release! Make sure you have the correct .NET Core SDK version by running
dotnet --version
from a command prompt.
Once you have the appropriate .NET Core SDK installed, run the following command to install the updated Blazor WebAssembly template:
dotnet new -i Microsoft.AspNetCore.Components.WebAssembly.Templates::3.2.0-preview4.20210.8
If youโre on Windows using Visual Studio, we recommend installing the latest preview of Visual Studio 2019 16.6. For this preview you should still install the template from the command-line as described above to ensure that the Blazor WebAssembly template shows up correctly in Visual Studio and on the command-line.
Thatโs it! You can find additional docs and samples on https://blazor.net.
Upgrade an existing project
To upgrade an existing Blazor WebAssembly app from 3.2.0 Preview 3 to 3.2.0 Preview 4:
- Update all Microsoft.AspNetCore.Components.WebAssembly.* package references to version 3.2.0-preview4.20210.8.
- Update any Microsoft.AspNetCore.Components.WebAssembly.Runtime package references to version 3.2.0-preview5.20210.1
- Replace package references to Microsoft.AspNetCore.Blazor.HttpClient with System.Net.Http.Json and update all existing System.Net.Http.Json package references to 3.2.0-preview5.20210.3.
-
Add
@using System.Net.Http.Json
to your _Imports.razor file and update your code as follows:Microsoft.AspNetCore.Blazor.HttpClient System.Net.Http.Json GetJsonAsync
GetFromJsonAsync
PostJsonAsync
PostAsJsonAsync
PutJsonAsync
PutAsJsonAsync
Calls to
PostAsJsonAsync
andPutAsJsonAsync
return anHttpResponseMessage
instead of the deserialized response content. To deserialize the JSON content from the response message, use theReadFromJsonAsync<T>
extension method:response.content.ReadFromJsonAsync<WeatherForecast>()
. -
Replace calls to
AddBaseAddressHttpClient
in Program.cs withbuilder.Services.AddSingleton(new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
.
Youโre all set!
Access host environment during startup
The WebAssemblyHostBuilder
now exposes IWebAssemblyHostEnvironment
through the HostEnvironment
property, which surfaces details about the app environment (Development, Staging, Production, etc.) during startup. If the app is hosted in an ASP.NET Core app, the environment reflects the ASP.NET Core environment. If the app is a standalone Blazor WebAssembly app, the environment is specified using the blazor-environment
HTTP header, which is set to Development when served by the Blazor dev server. Otherwise, the default environment is Production.
New convenience extension methods on IWebAssemblyHostEnvironment
make it easy to check the current environment: IsProduction()
, IsDevelopment()
, IsStaging()
. Weโve also added a BaseAddress
property to IWebAssemblyHostEnvironment
for getting the app base address during startup when the NavigationManager
service isnโt yet readily available.
Logging improvements
The WebAssemblyHostBuilder
now exposes a Logging
property of type ILoggingBuilder
that can be used to configure logging for the app, similar to how you would configure Logging in an ASP.NET Core app on the server. You can use the ILoggingBuilder
to set the minimum logging level and configure custom logging providers using extension methods in the Microsoft.Extensions.Logging
namespace.
Brotli precompression
When you publish a Blazor WebAssembly app, the published and linked output is now precompressed using Brotli at the highest level to further reduce the app size and remove the need for runtime compression. ASP.NET Core hosted apps seamlessly take advantage of these precompressed files. For standalone apps, you can configure the host server to redirect requests to the precompressed files. Using the precompressed files, a published Blazor WebAssembly is now 1.8MB, down from 2MB in the previous preview. A minimal app without Bootstrap CSS reduces to 1.6MB.
Load assemblies and runtime in parallel
Blazor WebAssembly apps now load the assemblies and runtime in parallel saving some precious milliseconds off the app load time.
Simplify .NET IL linker config for apps
You can optionally provide a .NET IL linker config file for a Blazor WebAssembly app to customize the behavior of the linker. Previously, specifying a linker config file for your app would override the customizations built into Blazor that are necessary for apps to function property. App specific linker configuration is now treated as additive to the linker configuration provided by Blazor.
Localization support
Blazor WebAssembly apps now support localization using .NET resource files (.resx) and satellite assemblies. Blazor WebAssembly apps set the current culture using the userโs language preference. The appropriate satellite assemblies are then loaded from the server. Components can then be localized using the ASP.NET Core localization APIs, like IStringLocalizer<TResource>
and friends. For more details on localizing Blazor WebAssembly apps, see Globalization and localization.
API docs in IntelliSense
The API docs for the various Blazor WebAssembly APIs are now available through IntelliSense:
Known issues
Debugging limitations
Thank you everyone who has been trying out the new Blazor WebAssembly debugging support and sending us your feedback! Weโve made some progress in this release, but there are still a number of limitations with the current debugging experience in Visual Studio and Visual Studio Code. The following debugging features are still not yet fully implemented:
- Inspecting arrays
- Hovering to inspect members
- Step debugging into or out of managed code
- Full support for inspecting value types
- Breaking on unhandled exceptions
- Hitting breakpoints during app startup
We expect to continue to improve the debugging experience in future releases.
Help improve the Blazor docs!
Weโve received a some feedback from the in-product Blazor survey that the Blazor docs could use some improvement. Thank you for this feedback! We know that docs are a critical part of any software development framework, and we are committed to making the Blazor docs as helpful as we can.
We need your help to understand how to best improve the Blazor docs! If youโd like to help make the Blazor docs better, please do the following:
-
As you read the Blazor docs, let us know where we should focus our efforts by telling us if you find a topic helpful or not using the helpfulness widget at the top of each doc page:
-
Use the Feedback section at the bottom of each doc page to let us know when a particular topic is unclear, inaccurate, or incomplete.
-
Comment on our Improve the Blazor docs GitHub issue with your suggestions for new content and ways to improve the existing content.
Feedback
We hope you enjoy the new features in this preview release of Blazor WebAssembly! Please let us know what you think by filing issues on GitHub.
Thanks for trying out Blazor!
The post Blazor WebAssembly 3.2.0 Preview 4 release now available appeared first on ASP.NET Blog.
...