Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
I've become very skeptical of it. The team has been overpromising and underdelivering.
- Blazor is billed as a spa framework, but they won't certify it for browser-side production readiness because mono.wasm is too fat to be useful
- the current supported use case (SSR) is just MVC with extra steps, memory usage
- there's no intention or work being done to make either .net core or mono modular so that compact, shakeble applications can be deployed
- there's no way under it's update model to perform transition animations or consistently control area refresh like you would in a native browser experience because the rendering is just a dump to innerhtml with no event awareness
- it's quite easy to introduce serious memory leaks in browser that are hellaciously difficult to debug
- runtime restrictions in browser scenarios mean a lot of the advantages of .net framework are rendered moot since they depend on OS-level implementations (tasks with thread schedulers, file access, etc). Yew, a rust framework, doesn't suffer these issues.
- no ability to produce higher performance rpc apis with an easy JS bridge, stated resistance to enabling that paradigm
- stateful prerendering was removed because it "didn't fit the server side use case." The meat of the issue was that it was a denial of service vector as all the caching was done in memory, with an offload to redis (and only redis). The developer impact of removing it is there now exists no method for passing parametrized data to components, so the components have to break the 4th wall and scan request level data, or js tango around the Dom hunting and pecking for arguments that may or may not exist (race condition hell).
Outside of the technical defects surrounding Blazor, the whole tired "now you don't have to learn anything new to do the spas" triggers my deep sadness reflex as it reminds me of all the worst, lazy tendencies of Microsoft developers.
It honestly strikes me as a solution in search of a problem
It's sort-of-beta like a lot of tech right now (gmail was beta for 13 years). The server side story has been declared production ready.
I love c# as well, and fully support efforts to make c# wasm-able. This just isn't that; blazor cares more about razor than c#. Even conceptually decoupling the markup generation/update from an immediately adjacent runtime, rendering and eventing system is a little hubristic. If history has taught us anything, it's the answer to the question "how can my technology become jQuery?" The difference in this case is that at a certain point jquery elegantly solved a technical problem and has aged into irrelevance; Blazor is starting life as a me-too.
pleuph78561dI've played with it a couple of times, and I really like it. And seeing as Microsoft are really pushing it and investing in it, I think it has a bright future.
The server side version is pretty much ready to replace mvc, and although the client side version is not done yet I think it's going to be awesome. I really dig that they're not just releasing it before it's actually production ready.
When you look at their roadmap for the future of blazor you can see that this is probably going to be the new de facto stack for all of MS in a couple of years.
It won't immediately do everything js does, but it doesn't have to. It's a different market and a different developer audience.