Learning Blazor

Build Single-Page Apps with WebAssembly and C#

David Pine

6 minute read

The Learning Blazor title book cover

Sometime in June 2021, I set out on a journey to write a book in the middle of a global pandemic. I had no idea what I was doing (all things considered, I still don’t know what I’m doing). But I do know that I truly enjoy helping others. I hope you enjoy the book as much as I enjoyed writing it. Amazon Preview Foreword by Steve Sanderson Web development has been a dominating feature of the software industry for over 20 years and is likely to remain so for many years to come.


C# Source Generator for JavaScript Interop in Blazor

David Pine

5 minute read

The Blazorators logo

Blazorators All of this code relies on the output of one of my side projects named blazorators. While writing my O’Reilly “Learning Blazor: Build Single-Page Apps with WebAssembly and C#” book, I discovered an impactful way to use both TypeScript type declarations from common JavaScript APIs and C# source generators to generate the JavaScript interop code. This is covered in chapter seven, so I don’t want to spoil it too much, but rather entice you to want to read the book.

David Pine

13 minute read

Intro With more than 40 million active users, GitHub is by far the largest source code hosting platform in the world. It’s an open source developers dream, and ecosystem and developer community unlike any other. And with all these users and such profound openness, there’s bound to be frustration from time to time. In this post we will explore an Azure Function written with ASP.NET Core 3.0 and C# 8.0. It has been designed to handle a GitHub webhook for issues and pull requests.

ASP.NET Core - Slack Slash Commands

C# Slack API Integrations

David Pine

7 minute read

Background Most of us are all “slackers”, meaning we truly do spend a significant amount of time using Slack. Slack is a collaboration hub for work, no matter what work you do. It’s a place where conversations happen, decisions are made, and information is always at your fingertips. www.slack.com It’s wildly popular in the Developer Community! In fact, almost to a fault…people are constantly sharing their “slack fatigue”. I am personally a part of roughly twenty slack workspaces.

Angular - The Color Guessing Game

Hashtag... #Winning

David Pine

9 minute read

The Story Behind The Game I have three sons. Lyric who is six and a half, Londyn who is four and half, and Lennyx who is two and half. As you might imagine, they seldom agree on things. For example when it’s family move night, “which movie we’ll watch?”, or “who gets to go first?” when playing a game. These important life decisions are often decided by playing the color guessing game.

C# All The Things

.NET Core Global Tools. You don't need glasses to C#.

David Pine

8 minute read

I’m proud to share that this post is part of the C# Advent Calendar and it’s my second year contributing to it! I encourage you to check out all the others here . Developers Are Lazy In the world of web development it is hard to escape certain tools that we are forced to rely on. As developers we’re innately lazy and it is safe to say that perhaps we don’t really care enough to look into other tooling options.

DMP in 3: RxJS Debounce

Three minute solution for delayed filtering to avoid performance implications

David Pine

2 minute read

I recently decided to give creating videos a test drive. The problem with creating video content is the fact that it’s really time consuming to do, but the time investment can be worth the effort if you’re able to truly deliver some sort of value. Another problem we’re faced with in the technical community is that videos can be very lengthy. Enter DMP in 3, a video series of 3 minute videos.

Writing a Blazor App

A Practical WebAssembly Application In C#

David Pine

7 minute read

Every time a developer encounters a new technology it’s in our nature to explore it. This is the case with WebAssembly, and Microsoft’s vision of the world in Blazor. Blazor is single page application framework that sits atop of WebAssembly, but it’s still considered an experiment. I had the chance to interview Steve Sanderson about WebAssembly and Blazor – I shared . Now, I’d like to explore Blazor with you a bit more.


Interview with Steve Sanderson (Talking Blazor)

David Pine

3 minute read

I set out a while ago to try to interview various community leaders for their take on WebAssembly. If you’re unfamiliar with WebAssembly, here’s a definition for you. WebAssembly is a binary instruction format for a stack-based virtual machine webassembly.org Additionally, one of the other’s that I reached out to was Scott Hanselman. Scott offered up something really special, rather than replying to the questions - he gave me an unpublished interview (that has since been published) that he did with Steve Sanderson on his hanselminutes podcast !

Angular HTTP Tips For Success

RxJS Map to the rescue!

David Pine

5 minute read

Intro I love working with the Angular HttpClient. It is easy to use and was designed to work with RxJS. It is vastly different from the AngularJS implementation, if you’re curious I wrote about these differences . However, there is one common issue that developers fall victim to. The issue really relates to TypeScript generics. I have also written about generics in TypeScript here . But in this post, we will reveal how the issue can easily be avoided.