Steve Sanderson’s blog

As seen on YouTube™

Latest articles

Using gRPC-Web with Blazor WebAssembly

If you already know all about gRPC and gRPC-Web, you can skip ahead to adding gRPC services to a Blazor WebAssembly application. And if you just want some sample Blazor WebAssembly + gRPC-Web apps, see this repo. The status quo In Blazor WebAssembly, like in all other browser-based single-page app (SPA) technologies, by far the most common way...

Meet WebWindow, a cross-platform webview library for .NET Core

My last post investigated ways to build a .NET Core desktop/console app with a web-rendered UI without bringing in the full weight of Electron. This seems to have interested a lot of people, so I decided to upgrade it to newer technologies and add cross-platform support. The result is a little NuGet package called WebWindow that you can add to any...

Exploring lighter alternatives to Electron for hosting a Blazor desktop app

Electron was first open-sourced in 2014, and gained immediate popularity as a way to build desktop apps using web technologies (HTML+CSS+JS). At the core of its design is the idea of bundling a predictable environment: It bundles its own copy of Chromium, so you know for sure how your HTML/CSS will be rendered and don’t have to worry about random...

Exploring lighter alternatives to Electron for hosting a Blazor desktop app

Electron was first open-sourced in 2014, and gained immediate popularity as a way to build desktop apps using web technologies (HTML+CSS+JS). At the core of its design is the idea of bundling a predictable environment: It bundles its own copy of Chromium, so you know for sure how your HTML/CSS will be rendered and don’t have to worry about random...

File uploads with Blazor

For a long time we’ve expected that we’d add a built-in “file input” feature to Blazor. This would let users pick local files and supply them to your application. Possible uses cases include: You want to upload and store those files on a server Or, you want to read and import some data from them Or, you want to present an editor UI for the...

Integrating FluentValidation with Blazor

FluentValidation is a popular validation library for .NET Core by Jeremy Skinner. It has some advantages over .NET Core’s built-in DataAnnotations validation system, such as a richer set of rules, easier configuration, and easier extensibility. Blazor ships with built-in support for forms and validation, but Blazor doesn’t know about FluentValidation,...

Unit testing Blazor components - a prototype

One of our design goals for Blazor is to offer an absolutely first-rate testing system. Writing tests for your components should be natural, produtive, and satisfying. Those tests should run fast and reliably. We’ve have a placeholder issue for this, but it’s out of scope for the initial (.NET Core 3.0) release. So, I think it’s time to start clarifying...

IndexedDB in Blazor

Almost all rich client-side web apps (SPAs) involve interacting with a data store. Normally, that data store is held on some server, and the browser-based app queries it by making HTTP calls to some API endpoint. Another option, though, is to store a database client-side in the browser. The great benefit of doing so is that it permits completely instant...

Blazor: a technical introduction

Today the ASP.NET team announced that Blazor has moved into the ASP.NET organization, and we’re beginning an experimental phase to see whether we can develop it into a supported shipping product. This is a big step forwards! What is Blazor? It’s a framework for browser-based (client-side) applications written in .NET, running under WebAssembly. It...

Running Blazor on Mono in the browser

Blazor is an experimental single-page application (SPA) framework that runs on .NET in the browser. Unlike prior efforts at getting C# to run client-side, Blazor isn’t transpiling or doing any other fragile tricks: instead, it’s got an actual .NET runtime that loads and runs standard .NET assemblies via WebAssembly (or asm.js for older browsers)....

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!