English
Français

Blog of Denis VOITURON

for a better .NET world

What's next, the Fluent UI Blazor library v5

Posted on 2024-12-19

The FluentUI Blazor library is undergoing significant updates with the development of Fluent UI Web Components v3, which will be integrated into our upcoming v5 release.

This new version promises to bring substantial improvements in performance, usability, and modern implementations, leveraging the experience and feedback gathered over the past years. While the transition from v4 to v5 will involve breaking changes and won’t be a simple drop-in replacement, the team is committed to providing comprehensive documentation and support to simplify the migration process. With a support model extending until at least November 2026, users can confidently adopt v5 for new projects while continuing to use v4 safely and securely.

Thanks to Vincent Baaij for his article.

🔹Fluent UI Web Components v3 Update

As you might know, our current Fluent UI Blazor library v4 uses and wraps the Fluent UI Web Components v2 release for many of the Blazor components. The team developing the Fluent UI Web Components is now hard at work on creating the v3 version. Beta versions of v3 are available, and a Release Candidate (RC) is expected soon. Consequently, there will be no further updates for v2.

Significant changes are being made to property and attribute names, enumeration values, and more to align the Fluent UI Web Components more closely with the Fluent UI React v9 and vNext components.

Feature Parity

The number of Web Components available with v3 will be fewer than what we currently have with v2. However, incremental releases adding new components are expected to become available after the first General Availability (GA) release of v3.

Recap

If you are new to all of this, here is a short recap of what the Fluent UI Web Components are:

Microsoft’s Fluent UI Web Components are designed to help you build web apps using Web Components styled with the Fluent design language. Each component adheres to the following standards:

What are Web Components?

“Web Components” is a term that encompasses a set of web standards aimed at enabling the creation of custom HTML elements. These standards include the ability to define new HTML tags, integrate with a standard component lifecycle, encapsulate HTML rendering and CSS, parameterize CSS, skin components, and more. Each of these platform features is defined by the W3C and has been implemented in all major browsers today.

How does Fluent UI Web Components leverage Web Components?

Fluent UI Web Components are built directly on the W3C Web Component standards and do not create their own component model. This allows the components to function the same as built-in, native HTML elements. You do not need a framework to use Fluent UI components, but you can use them in combination with any framework or library of your choice. Here, we are focusing on the Fluent UI Blazor library.

🔹Fluent UI Blazor Library v4

This is the version we currently have and support. Although it is not officially tied to the .NET 8 release and support policy, we aim to follow it. This means that v4 will remain supported until November 2026. However, this does not imply that new functionality will be added to this version until then.

Once our next major version (v5) reaches a level of maturity where we are confident it can replace v4, the latter will enter a ‘life support’ phase. New releases will be made available shortly after .NET 8 patches are released, but bug fixing will be minimal, and no new functionality will be added during this period. To reiterate the current situation:

The library is not an official part of ASP.NET Core

This project is entirely open-source and is not an official component of ASP.NET Core. As a result, the packages are not officially supported, and there is no commitment to include updates in any official .NET releases. The library is developed and maintained by Microsoft employees and external contributors. Support is provided on a best-effort basis through the GitHub repository, similar to other open-source projects. No support is available through Microsoft’s official support channels.

🔹Fluent UI Blazor Library v5

For our upcoming major version, v5, we are incorporating the new v3 Fluent UI Web Components. Work on this has already begun, and you can track the progress in the dev-v5 branch of our repository. We are also exploring the possibility of making preview packages available.

Due to the significant changes introduced in the v3 release of the Web Components, many adjustments are required on our end as well. This means there will be several breaking changes when transitioning your v4-based code to v5. Where feasible, we aim to provide helpers and utility methods to facilitate these changes in your codebase. Additionally, we are dedicating considerable effort to creating comprehensive upgrade documentation.

Not a simple drop-in replacement

We aim to present v5 not merely as a direct replacement or upgrade from v4, but as a new and enhanced version with more modern and improved implementations, both in terms of Web Components and pure code.

By implementing these significant changes, we are leveraging the experience and feedback gathered from users over the past 3.5 years. This allows us to substantially enhance the performance and usability of various components. For instance, the FluentDialog will be more straightforward, comprehensive, and will utilize the standard HTML <dialog> tag, providing greater customization options.

With our envisioned support model, you can continue using the library safely and securely until at least November 2026. We believe there is no immediate need to upgrade to v5 upon its release. However, for new projects, we recommend starting with v5.

We are not delaying the release of v5 until the Fluent UI Web Component v3 collection matches what is available in v2. It is quite possible that not all v2 components will transition to v3. In some cases, we will offer Blazor components for features that v3 Web Components do not provide. For example, we have modified the DataGrid to no longer rely on Web Components but instead use HTML table elements for rendering its UI components.

Due to the differences in the sets of Fluent UI Web Components and the changes within those components, upgrading a project currently using the Fluent UI Blazor library v4 will not be as simple as installing new packages. While we would have preferred to make it that straightforward, external factors have made it impossible. We do not want to make promises we cannot keep.

As mentioned, we believe v5 will be an excellent new version of the Fluent UI Blazor library. We look forward to collaborating with the community to ensure its success!

🔹Comments

Leave us your comments in our GitHub discussion channel.

Languages

EnglishEnglish
FrenchFrançais

Follow me

Recent posts