I hope MS really get behind this and see it through to a production ready version.
I hope MS really get behind this and see it through to a production ready version.
When I worked with .net guys (which happened quite often) 9 out of 10 had been like wow, I don't have to touch frontend, because MS will solve that for me "somehow", plus the frontend is messy and crap and javascript is a terrible language and C# rocks (but F# even rocks more) and I'm not going to learn all this sillyness (because I want to reuse my skills).
At least with new-angular they feel a bit better and they can praise typescript, because typescript is "just like C#". Let's just hope noone pulls an angular-one-to-two style rewrite/clusterfuck...
I will take any server side rendering framework, with some sprinkle of JavaScript, over any SPA framework.
A node_modules directory with several thousand packages just for a basic CRUD app, really?
However, I agree that server-side rendering is much simpler in all of the cases where desktop app-like experience isn't required.
Coding is fun, but providing a productive experience also requires doing lots of stuff that FOSS coders don't invest any resources into it.
WebForms/UpdatePanel was a half-baked solution to pick-up and drop-in .NET developers from WinForms to the web, while Blazor seems to do the same thing for server-side and client-side developers.
Microsoft eventually created MVC, which embraced the nature of the web (HTTP verbs, no viewstate, etc). I would urge developers to just dump into the deep end and use tech native to the browser. I know wasm is now native, but Blazor is running a VM in it that wasn't designed for it.
C# developers might find some comfort in TypeScript. Maybe Angular?
Wasm (Web Assembly) is still early in development. It's looking like it will create a high performance & excellent VM to compile code to for the browser. This is great for any language. A lot of proposed features could give it all the same features you have in JavaScript. But those features are only proposed. Lin Clark gives a great intro on this podcast - https://pca.st/5rjS
Blazor is an experiment at utilizing Wasm to do JavaScript like things with C# in the browser. I've never heard anyone say use it for production yet. The YouTube video here is 1 of the best talks you'll see on it if you watch it. I was lucky enough to attend in person.
You can use Blazor without a server to create static sites & host them on servers like Netlify.
Performance & file size isn't something they've put much effort into at all yet on Blazor. Way to early & easier problems.
There are other experiments going on with .NET, Mono & Wasm . See Uno & Ooui.
Steve Sanderson did an experiment a few years ago to see if this was even possible based on some interesting research he found. It grew from that. They have put a really awesome team behind it. It's gained a great following & has a very active Gitter channel that the MS team (notably PM Dan Roth) talks in. They're also quick to respond on GitHub.
F# is also supported, and potentially any .NET language.
I mean, where is the graphql and Apollo like functionality in .net?
How do you make a pretty reactive frontend easier and faster with .net compared to vue/react/angular?
How big does the browserbased app get when it has to load .net libraries?
Maybe I’m just not seeing it, but I honestly think what laravel is doing with PHP on the backend and vue on the front end is the brilliant way of approaching web apps and I think what Microsoft is doing with web assembly is going to be a needlessly complicated mess that’s really, really unproductive in terms of time to market. And I think they are mainly doing it because Microsoft never made their own JS front end.
I’ve been following it for a while too, and I see a lot of the xamarin disaster in it.
https://github.com/octokit/octokit.graphql.net/
It only supports the GitHub GraphQL API right now, but everything is generated from the schema so it should be possible to make it support other APIs.
Then the assemblies will be cached and I understand they are working on getting them small. Silverlight wasn't that bad in term of load time.
If the website really deserves a SPA (creating a blog in a SPA is ridiculous), people expects the website to take a little time to load even with javascript, and it does. My online broker trading platform does, webmails do, etc.
For reactivity, I am not sure I get your point. With async/await it is going to be trivial, and .net on wasm will likely be faster than javascript.
I honestly don't see any benefit over plain Web APIs.
You don’t have to take my word for it though, try it yourself: https://graphql.org/swapi-graphql/
I have used them and I dont agree with this at all.
I suppose next you're going to say I haven't used them enough?
I work in the public sector, we integrate with more than 600 different IT systems. I’d say around 10% of them have the documentation they ought to.
With graphql, the API is the documentation.
On our own end, it’s improvee production and quality because it’s faster to build an API with it, that lives up to our standards for APIs. It’s also harder to fuck it up without realizing because it’s typed and forces schemes.
The last advantage is that it allows for an easy way to get the data you need from a general query, that might not be important in a lot of places, but when you build apps for workers who use them in a rural setting, it’s kind of nice to minimize the data they need to transmit to the bare essentials. You could do that with a rest api, but it would take a lot more time to implement.
The superiority of GraphQL is not as self-evident as you believe it is.
There are a ton of performance wins they can do later. Those have little value right now.
Now we must distinguish blazor and mono on wasm. Mono on wasm allows the .net runtime to run in webassembly. Blazor uses the mono runtime and creates a UI framework. I think the game changer is the .net runtime in wasm. Once it is production ready, I am sure we will see competing UI frameworks, some possibly even based on xaml.