Blazor Graduates from Experiment to Preview
On the same day we reported "the end of the experiment is in sight" for Microsoft's Blazor project, it did indeed graduate from experimental status to a preview of a new way to do Web UI with .NET languages like C#.
"Blazor is no longer experimental and we are committing to ship it as a supported web UI framework including support for running client-side in the browser on WebAssembly," Blazor guru Daniel Roth said in post yesterday.
The open source Blazor project uses the experimental WebAssembly project to provide a low-level assembly-like language that higher-order languages can compile to for better performance. Or, as resident Blazor expert Chris Sainty explained: "The goal is to provide a single-page application (SPA)-style framework that allows developers to write C# and Razor code and have it run in the browser via WebAssembly."
As we reported yesterday, Microsoft is dropping the separate names for client-side Blazor and for server-side Blazor, the latter of which was dubbed ASP.NET Core Razor Components for a while. The Razor Components/server-side Blazor part of the project was baked into ASP.NET Core to be included in the upcoming .NET Core 3.0 releases, while the more problematic client-side effort (depending upon WebAssembly) was put on hold, not ready for the v3.0 update cycle.
The new scheme is a single client app model with multiple hosting models:
- Server-side Blazor runs on the server via SignalR; it will ship as part of .NET Core 3.0.
- Client-side Blazor runs client-side on WebAssembly; while it won't be ready for .NET Core 3.0, Roth said: "we are now announcing it is committed to ship as part of a future .NET Core release (and hence is no longer an 'experiment')."
New features in the first preview include:
- Templates updated to use the .razor file extension
- Scope components with @using
- New component item template
- New Blazor icons
- Blazor support in Visual Studio Code
More information on all of the new features and more is available in the release notes.
In other news, an update of the Blazor site sees the community page being retired in favor of the community-led Awesome Blazor site, featuring demos, sample projects, tutorials, extensions, libraries, videos, articles and more.
Roth also pointed out more Blazor resources from .NET tooling vendors such as Telerik, DevExpress and Syncfusion.
"A little over a year ago we started the Blazor experimental project with the goal of building a client Web UI framework based on .NET and WebAssembly," Roth said. "At the time Blazor was little more than a prototype and there were lots of open questions about the viability of running .NET in the browser. Since then we’ve shipped nine experimental Blazor releases addressing a variety of concerns including component model, data binding, event handling, routing, layouts, app size, hosting models, debugging, and tooling. We’re now at the point where we think Blazor is ready to take its next step."
As Roth explained in a YouTube video earlier in the week, upcoming work on the project includes: support for static assets in component class libraries; support for ahead-of-time compilation for WebAssembly (in conjunction with the Mono team); authentication and authorization; client-side debugging; and more.
David Ramel is the editor of Visual Studio Magazine.