Experimental support to create custom Blazor elements comes via the Microsoft.AspNetCore.Components.CustomElements NuGet package, though it shows zero downloads two days after the announcement. It uses standard HTML interfaces to implement custom HTML elements.
"This feature is experimental because we’re still working out some of the details for how best to support custom elements with Blazor," said Daniel Roth, principal program manager, ASP.NET, in the post. "We welcome your feedback on how well this particular approach meets your requirements."
Once created, these custom elements -- a custom counter, for example -- can also be used in other single-page application (SPA) web frameworks such as React and Angular. A sample project, aptly titled Blazor Custom Elements, shows how to do just that, providing examples about how to work with those frameworks and the client-side Blazor WebAssembly component as well as Blazor Server.
Other Blazor-related items in Roth's post include:
- Manipulate the query string from Blazor
- Blazor templates updated to set page title
- Disabled long-polling transport for Blazor Server
- Customize Blazor WebAssembly packaging
Note that several bugs were reported in comments to Roth's post, concerning Hot Reload other things, and he said on Sept. 15 that he expects a fix to address at least some of them in the next few days.
According to the ASP.NET Core Roadmap for .NET 6, the big-item Blazor work is pretty much done:
There was also some other stuff mentioned in the announcement, some of which doesn't pertain specifically to Blazor:
- PageX and PageY in MouseEventArgs
- Template improvements
- Minimal API updates
- Support for Latin1 encoded request headers in HttpSysServer
- Emit KestrelServerOptions via EventSource event
- Add timestamps and PID to ASP.NET Core Module logs
- New DiagnosticSource event for rejected HTTP requests
- Create a ConnectionContext from an Accept Socket
- Streamlined HTTP/3 setup
- Upgrade to Duende Identity Server
David Ramel is an editor and writer for Converge360.