I know this was discussed already, but I can't see clear picture with browser versions support, which makes using (or starting using) Blazor kinda risky.
How would we know that Blazor server would work for example if some people use like kinda outdated version of Firefix/Chrome due to them sitting in Windows 7 and not knowing how to update their browser? (happened several time (not with Blazor but overall in some projects), some people don't event understand that they should update their browser, and sometimes their corporate laptops are just the way they are)
I mean it would be very helpful info like "Blazor Server: Firefox 67+ (previous need polyfills, add them when needed)"
Maybe even basic info about blazor server, like "core blazor is transpiled/not transpiled so your browsers should have at least es6 support" or something like this.
Reference to pull request with discussion.
https://github.com/aspnet/AspNetCore.Docs/pull/14842
⚠Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
Hello @idchlife ... Management usually triages these on Fridays, so stand-by for them to take a followup look at this subject, either this Friday or the next.
To recap the prior decision (October, 2019) on this subject:
AN remarked ...
... I think we did want to stick with Current. ...
We're not necessarily going to tell people to go away if they have bugs and are using older browsers but we do want to strongly encourage users that they need to keep current on browsers, even when they are staying on the same .NET Core version, in order to be properly supported.
DR remarked ...
Correct, our official support statement is we support only the current versions of the specified browsers.
This will require some discussions on our end to come up with a more specific browser compatibility version list.
Let's close this as not workable.
One of the issues is that SignalR only supports the latest browser. Since Blazor Server is based on SignalR, Blazor Server can't have a minimum version.
Blazor WASM fares better WRT SignalR, but it's hard to say what version of any particular browser would be the minimum, and my understanding from prior discussions is that the team can't really support multiple years worth of prior browser versions. They may fix something that breaks in a given non-current browser version, but that's at their discretion. Therefore, no firm minimum can be stated.
It happens right now teams choosing blazor/not blazor are left to use blazor only if their potential users (usually with 1-2 years outdated browsers) use all current up to date browsers? Which makes blazor kinda unstable choice since it is not known which users can catch incompatibility errors...
What can be done with this? I mean are there at least list of typical incompatibilities, workaround/fixes?
@idchlife Management has made the call on this one. They won't state minimum versions. That seems like their final decision on this after several devs have asked and discussion.
You can have an app use one of the browser detection APIs out there ... there are many ... and then stop an app from running on an ancient browser (or just warn the user) in your apps.
@guardrex thanks for the reply! The problem is that it's not clear which browser is "ancient".
Based on "supported version: current" - everything with previous versions is ancient (e.g.: current version 99; version 98 - blazor may or may not work).
Uncertainty is what makes it impossible to consider using or not using blazor in production for new projects.
Using libraries to detect older browsers is too doesn't seem to solve anything - we don't know which browsers are older where blazor can work with errors
I wasn't in on the internal discussions, just the public ones. My impression is that it would be very costly 💰 to track. A testing regime that checks all of the framework API on a variety of browsers and browser versions each release would be possible, but it would be expensive. That's my guess. That's not an official statement. What they have said is that users should keep their browsers updated ... "strongly encourage" is the language used.
Using libraries to detect older browsers is too doesn't seem to solve anything - we don't know which browsers are older where blazor can work with errors
That's up to you to test with your own apps. Test against multiple versions of multiple browsers and confirm that all aspects of your app works on a certain set of browsers+versions going back whatever period of time that you decide. Then, you can set the minimums to what you're comfortable with (and what works with your app) based on that.
I wish I could deliver better news, but that's the current situation.
@guardrex thank you for the response!
Not every company would be able to create functional tests for every aspect of their frontend blazor application, but your advice is good and viable for checking which browsers are supported. In a sense that's the way it's supposed to be for every frontend application. But we know how few companies actually adopt frontend tests :( Trusting frameworks and documentation is now a usual approach in development.
I have hope that situation will change in future at least for breaking changes news, when for example SignalR and blazor.js would adopt some technology which would support ONLY 2 last versions of browsers, making people with several month old browsers see broken frontend app :D
Most helpful comment
This will require some discussions on our end to come up with a more specific browser compatibility version list.