ChristianFindlay.com

Christian Findlay is a professional Software Developer and trainer based in Melbourne, Australia. He builds with Flutter, .NET, AI, Firebase/Supabase, Google Cloud, and Microsoft Azure.

Location
Melbourne, Australia

Follow Me

csharp

Receive and Test Incoming Webhooks in an ASP.NET Core Minimal API: A Comprehensive Guide
Read More

Receive and Test Incoming Webhooks in an ASP.NET Core Minimal API: A Comprehensive Guide

Introduction

02 Apr 2023 Christian Findlay
C# Code Rules
Read More

C# Code Rules

The C# Compiler’s name is Roslyn. Roslyn has a very large set of analyzers to check the quality of your code, but you must turn...

24 Apr 2022 Christian Findlay
How to Stop NullReferenceExceptions in .NET
Read More

How to Stop NullReferenceExceptions in .NET

This article gives you a toolset for stopping NullReferenceExceptions in .NET code. The article centers around Nullable Reference Types (NRT), a feature that Microsoft added...

30 Jul 2021 Christian Findlay
RestClient.Net 5
Read More

RestClient.Net 5

RestClient.Net makes HTTP calls in .NET easy. Send the request body as a strongly typed object, and get back a strongly typed object. You can...

27 May 2021 Christian Findlay
How To Change the Behavior of a C# Record Constructor
Read More

How To Change the Behavior of a C# Record Constructor

Records are a new feature in C# 9. Records are special classes that borrow from Structs in that they have value-based equality. You could look at them as a...

29 Apr 2021 Christian Findlay
Choose ASP.NET Core in 2021
Read More

Choose ASP.NET Core in 2021

ASP.NET Core is the most up-to-date Microsoft technology for building web apps. You can build Web APIs for your SPA front-end or traditional web-apps in...

26 Feb 2021 Christian Findlay
Reactive Programming: Hot Vs. Cold Observables
Read More

Reactive Programming: Hot Vs. Cold Observables

The Observer Pattern is at the core of reactive programming, and observables come in two flavors: hot and cold. This is not explicit when you...

25 Oct 2020 Christian Findlay
How to Use F# from C#
Read More

How to Use F# from C#

F# is a functional programming language that compiles to .NET Intermediate Language (IL). C# is becoming a more functional programming language. The latest version of...

17 Oct 2020 Christian Findlay
How to Use and Unit Test ILogger
Read More

How to Use and Unit Test ILogger

ILogger is at the heart of the ASP.NET Core infrastructure and works well when you use it correctly. If you approach it the wrong way,...

03 Jul 2020 Christian Findlay
Cross-Platform C# UI Technologies Part 2
Read More

Cross-Platform C# UI Technologies Part 2

The options for building cross-platform phone, desktop, and web-apps with C# are expanding. I previously wrote about Uno Platform, Xamarin.Forms, and Avalonia UI. The recent Microsoft Build...

24 Jun 2020 Christian Findlay
C# Delegates with IoC Containers and Dependency Injection
Read More

C# Delegates with IoC Containers and Dependency Injection

Developers are usually encouraged to do dependency injection with interfaces. Some developers don’t know that they can do dependency injection with delegates, and there are...

16 May 2020 Christian Findlay
.NET - How to Sign an Assembly in Visual Studio 2019
Read More

.NET - How to Sign an Assembly in Visual Studio 2019

Signing an assembly ensures that the consumer knows its origin and uniquely identifies the component. It makes the physical DLL file tamper-proof. This tutorial will...

25 Jan 2020 Christian Findlay
System.Text.Json Rest Client
Read More

System.Text.Json Rest Client

The System.Text.Json namespace provides high-performance, low-allocating, and standards-compliant capabilities to process JavaScript Object Notation (JSON), which includes serializing objects to JSON text and deserializing JSON...

21 Jan 2020 Christian Findlay
Protobuf Web API in C#
Read More

Protobuf Web API in C#

Using Google Protocol Buffers (protobuf) for serialization over a Web API (or REST API) is simple. Most developers use JSON as the go-to transfer protocol for...

11 Jan 2020 Christian Findlay
C# String Interpolation
Read More

C# String Interpolation

Introduction

05 Oct 2019 Christian Findlay
C# Serial Port Access - Windows
Read More

C# Serial Port Access - Windows

There are various ways connected devices communicate with your computer. One of the oldest ways is via the Serial Port. In some ways, serial port access...

14 Sep 2019 Christian Findlay
RestClient.Net on WebAssembly (C#)
Read More

RestClient.Net on WebAssembly (C#)

RestClient.Net is a simple wrapper for HttpClient. It adds strong typing to REST calls and speeds up writing basic Http Request/Response operations. WebAssembly (Wasm) is...

15 Aug 2019 Christian Findlay
Visual Studio - Break On All Exceptions
Read More

Visual Studio - Break On All Exceptions

An app should throw exceptions when something exceptional happens. However, developers should design apps and APIs so that under regular use, exceptions do not occur. Exceptions...

14 Jul 2019 Christian Findlay
C# and gRPC Part One
Read More

C# and gRPC Part One

gRPC is a modern open source RPC framework created by Google. It is based on Google’s modern Protocol Buffer serialization engine but is not tied...

26 May 2019 Christian Findlay
Cross-Platform C# UI Technologies
Read More

Cross-Platform C# UI Technologies

Several UI technologies can be used to build Cross-Platform apps in C# or other .NET based languages such as Visual Basic (VB). This article looks...

11 May 2019 Christian Findlay
C# Code Rules Part 1
Read More

C# Code Rules Part 1

Edit: There is a new article that replaces these two articles and uses the more modern editor config format. These two articles are still useful...

11 Feb 2019 Christian Findlay
Cross Platform USB and Hid Programming
Read More

Cross Platform USB and Hid Programming

Delving in to the world of crypto hardwarewallets has led me deep in to the rabbit hole of USB and Hid  programming. I didn’t want...

30 Dec 2018 Christian Findlay
RestClient.Net
Read More

RestClient.Net

Edit: this library has undergone multiple iterations since this early blog post. It is no longer in beta, and has been moved to GitHub. Check...

14 Aug 2016 Christian Findlay