News

Razor Components (Server-Side Blazor) Refined in ASP.NET Core Preview

ASP.NET Core's Razor Components -- aka server-side Blazor -- received a lot of attention in the just-released NET Core 3.0 Preview 3 as Microsoft continues to mature its initiative to run C# code in the browser instead of just JavaScript.

Or, as Microsoft said in an announcement yesterday, Razor Components, introduced in an earlier preview, provide "a new way to build interactive client-side Web UI with ASP.NET Core."

While the experimental Blazor project started off as more of a full-stack approach with client-side and server-side components, the client-side effort ran into problems in getting C# to play nice on the Web with WebAssembly, yet another experimental project that facilitates the development of Web apps with C# and other higher-level languages.

As the client-side team continues to work on those problems, the server-side effort was dubbed Razor Components and moved to be an integral part of ASP.NET Core.

In the new Preview 3, Razor Components received many improvements, described by Microsoft as:

  • 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.

Regarding the ability to add Razor Components to Razor Class Libraries and reference them from ASP.NET Core projects using Razor Components, Microsoft added one caveat: "Note that Razor Class Libraries are not compatible with Blazor apps in this release. Also, Razor Class Libraries do not yet support static assets. To create components in a library that can be shared with Blazor and Razor Components apps you still need to use a Blazor Class Library. This is something we expect to address in a future update."

Features other than Razor Components also received their share of improvements, including:

  • Runtime compilation
  • Worker Service template
  • gRPC template
  • Angular template updated to Angular 7
  • Authentication for Single Page Applications
  • SignalR integration with endpoint routing
  • SignalR Java client support for long polling

All of the above are explained in detail in the release notes.

In announcing .NET Core 3.0 Preview 3, Microsoft announced that .NET Core 3.0 would not be shipping with Visual Studio 2019 when it's released on April 2. Rather, it will ship in the second half of the year, with the exact date to announced during Microsoft's Build conference in early May.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube