News

Blazor (.NET for Web Experiment) Hits 0.9.0

Microsoft's experimental Blazor project for C#-based .NET Web development (as an alternative to JavaScript) has reached version 0.9.0 on its possible journey to becoming generally available for production use.

But for now, Microsoft's most recent FAQ documentation states:

Blazor is an experimental project because there are still lots of questions to answer about its viability and appeal. The purposes of this initial experimental phase is to work through the any outstanding technical issues, to gauge interest and to listen to feedback. While we are optimistic about Blazor's future, at this time Blazor is not a committed product and should be considered pre-alpha.

While the viability remains in question, the appeal is obvious: ditch the reliance on the troublesome, sprawling JavaScript ecosystem for browser-based Web development by using WebAssembly -- yet another experimental project -- to provide a low-level assembly-like language that higher-order languages can compile to for better performance.

In the Blazor scheme, the Mono .NET runtime gets compiled to WebAssembly, with the browser-based side of things working like this:

  • C# code files and Razor files are compiled into .NET assemblies.
  • The assemblies and the .NET runtime are downloaded to the browser.
  • Blazor bootstraps the .NET runtime and configures the runtime to load the assemblies for the app. Document Object Model (DOM) manipulation and browser API calls are handled by the Blazor runtime via JavaScript interop.

However, when the client-side effort of Blazor encountered problems, the server-side project was dubbed Razor Components and moved to ASP.NET Core.

That Razor Components project received many updates in the just-released .NET Core 3.0 Preview 3, which includes ASP.NET Core.

Thus, Microsoft did little more than point to the ASP.NET Core updates in announcing Blazor 0.9.0.

"This release updates Blazor with the Razor Components improvements in .NET," a March 7 post says.

Those improvements, listed a day earlier in a post announcing ASP.NET Core 3.0 Preview 3, include:

  • Single project template: The Razor Components project template is now a single project instead of two projects in the same solution.
  • New .razor extension: To clarify which Razor files should be compiled as Razor Components, Microsoft introduced a new file extension: .razor.
  • Endpoint routing integration: Razor Components are now integrated into ASP.NET Core's new Endpoint Routing system.
  • Prerendering: The Razor Components project template now does server-side prerendering by default, so when a user navigates to an application, the server will perform an initial render of Razor Components and deliver the result to their browser as plain static HTML. Then, the browser will reconnect to the server via SignalR and switch the Razor Components into a fully interactive mode.
  • Razor Components in Razor Class Libraries: Developers can now add Razor Components to Razor Class Libraries and reference them from ASP.NET Core projects using Razor Components.
  • Improved event handling: The new EventCallback and EventCallback<> types make defining component callbacks much more straightforward.
  • Forms and validation: This preview release adds built-in components and infrastructure for handling forms and validation.

Microsoft pointed to lists of new features and bug fixes for Blazor 0.9.0 on GitHub for more detailed information.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

  • VS Code Copilot Previews New GPT-4o AI Code Completion Model

    The 4o upgrade includes additional training on more than 275,000 high-quality public repositories in over 30 popular programming languages, said Microsoft-owned GitHub, which created the original "AI pair programmer" years ago.

  • Microsoft's Rust Embrace Continues with Azure SDK Beta

    "Rust's strong type system and ownership model help prevent common programming errors such as null pointer dereferencing and buffer overflows, leading to more secure and stable code."

  • Xcode IDE from Microsoft Archrival Apple Gets Copilot AI

    Just after expanding the reach of its Copilot AI coding assistant to the open-source Eclipse IDE, Microsoft showcased how it's going even further, providing details about a preview version for the Xcode IDE from archrival Apple.

Subscribe on YouTube

Upcoming Training Events