RSSAmplifier

Blog

Steve Sanderson's Blog

Steve Sanderson's Blog

RSS feed ↗10 posts

Latest posts

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 to exchange data and trigger server-side operations…

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 .NET Core console app. It can open a native OS…

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 old versions of IE (etc.) It bundles its own copy…

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 file It applies equally to client-side or server-side…

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, and FluentValidation doesn’t know about…

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 how this can work. Goals We do have a lot of…

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 querying, and can even work offline.…

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 gives you all the benefits of a rich, modern…

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). This means you get full-fidelity .NET - everything…

ASP.NET Core + Angular 2 template for Visual Studio

Now that ASP.NET Core, Angular 2, and TypeScript 2 have all shipped final versions, it’s a great time to combine them all into one powerful rich web application platform. For many months, I’ve been working with some great community contributors on our GitHub repo to build supporting libraries, packages, and ultimately what we hope is the ideal starting-point template for such applications. As well…