Folks, I read all the Blazor documentation, browsed the APIs and wrote some
small test apps. As a result … I am filled with hope. If the development
continues and the "big names" continue to back it, then I think it will be
a winner.

The overall design looks sound and sensible. You can write and nest
components, there's basic binding, events, layouts/templates, DI with
services, and it's all relatively lightweight and easy to fully learn
quickly. You can use base classes to separate code from markup (which
worried me last week). I'm not a big fan of Razor syntax, but I can live
with it. I was afraid Blazor would be like Angular or full ASP.NET MVC,
which are man-made artificial mountains that baffle mortal minds.

After I my first code started to work, it suddenly dawned on me what was so
good about this … I'm writing .NET C# on the browser-side and it's working,
and there's no JavaScript in sight. It turns out that JS is booting the
process and gluing some stuff together, but mercifully it's out of sight
and you don't have to interop with JS for normal things.

So if Blazor continues to mature, we will have a familiar and productive
way of writing browser-hosted apps. Yay! As many pundits in videos and
articles have been saying, JavaScript won't die, but it should fade into
the background and we won't be beholden to it any more.

However, the weakest link in all of this is the browser. We must rely upon
the browser for rendering and we are limited to its controls, styling and
layout, which I consider primitive, unstable and completely unsuitable for
hosting production apps. It also means that for stupid historical reasons
we are stuck with JS in the mix to drive the browser. In some real Blazor
apps I hope to write is the need for drawing arbitrary lines and shapes in
a visual tree on a "canvas" (like in WPF and Silverlight), and I have no
idea yet if or how this is possible in Blazor. I could start writing some
real apps now, but I need the canvas drawing and a "tree" control. I hope
people will soon start to publish 3rd party components to fil the gaps and
boost productivity.

I'm pleased to see other languages and platforms are jumping on the Wasm
bandwagon, so I think it's looking hopeful overall for Blazor.

*Greg K*

P.S. I tried to use the Azure Storage package to read some blobs from an
app, but it failed due to a clash with a custom http handler in Blazor. The
Blazor team created an official issue for this, so they're responsive and
helpful.

Reply via email to