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

dotnet

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
Device.Net Project Status
Read More

Device.Net Project Status

Device.Net is a cross-platform framework that attempts to put a layer over the top of USB and Hid. It runs on Android, UWP, .NET Framework and...

06 Aug 2022 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
Upgrade from .NET Framework to .NET 6
Read More

Upgrade from .NET Framework to .NET 6

You’re probably here because your business has a legacy codebase, and you need to upgrade it. You’re not alone, and almost every business goes through...

12 Dec 2021 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
Device.Net (Usb.Net, Hid.Net) 4.0
Read More

Device.Net (Usb.Net, Hid.Net) 4.0

Device.Net is a cross-platform .NET framework for talking to connected devices such as USB, Serial Port and Hid devices. It aims to make device communication...

31 Jan 2021 Christian Findlay
Publish Source Link NuGet Packages with Azure Pipelines
Read More

Publish Source Link NuGet Packages with Azure Pipelines

Source Link allows you to publish debuggable NuGet packages. Source Link adds debug symbols to compiled code that point back to your Git repository. That...

25 Dec 2020 Christian Findlay
Why .NET Standard Is Still Relevant
Read More

Why .NET Standard Is Still Relevant

.NET Standard is a .NET formal specification or API contract that is available across many .NET implementations. It exists because there are many .NET implementations on...

21 Dec 2020 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
ILogger and Null Object Pattern
Read More

ILogger and Null Object Pattern

The Null Object Pattern is a pattern that uses objects with null behavior instead of performing null checks throughout the codebase. ILogger and ILoggerFactory are...

30 Sep 2020 Christian Findlay
XAML: How to Implement INotifyPropertyChanged
Read More

XAML: How to Implement INotifyPropertyChanged

The INotifyPropertyChanged changed interface is at the heart of XAML apps and has been a part of the .NET ecosystem since the early days of...

11 Sep 2020 Christian Findlay
How to Move Uno Platform Pages to a Multi-Targeting Library
Read More

How to Move Uno Platform Pages to a Multi-Targeting Library

You can move Uno Platform pages and other code into a multi-targeted library that you can reference from the Uno Platform head projects. This is...

25 Aug 2020 Christian Findlay
First Uno Platform Course Published
Read More

First Uno Platform Course Published

The first Uno Platform Course is live! Over the last few months, I’ve been busily preparing material and editing video for the first Uno Platform...

05 Aug 2020 Christian Findlay
How To Access SQL Generated By Entity Framework Core 3
Read More

How To Access SQL Generated By Entity Framework Core 3

Entity Framework Core (EF) converts expressions into SQL at runtime. In earlier versions, it was straight forward to get the SQL. In Entity Framework Core...

19 Jul 2020 Christian Findlay
Blazor Vs. Traditional Web Apps
Read More

Blazor Vs. Traditional Web Apps

Blazor is a new Single Page Application (SPA) technology by Microsoft. It is a comparable technology to React, Angular, and Vue.js but uses C# instead...

09 Jul 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
RestClient.Net 4
Read More

RestClient.Net 4

RestClient.Net is a cross-platform rest-client for .NET Core, .NET Framework, iOS, Android, WASM and UWP. It puts a wrapper over the .NET HttpClient API and allows...

17 Jun 2020 Christian Findlay
Blazor vs. React / Angular / Vue.js
Read More

Blazor vs. React / Angular / Vue.js

Blazor is a new Microsoft technology that allows developers to write code for browsers in C#. This article compares Blazor to three other common SPA...

04 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
Blazor WebAssembly Rest Client
Read More

Blazor WebAssembly Rest Client

Blazor is Microsoft’s latest Single Page Application (SPA) framework, which is C# based and renders to the browser HTML DOM. Blazor comes in two flavors:...

14 Feb 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
RestClient.Net 3.0
Read More

RestClient.Net 3.0

REST Client Framework for all .NET Platforms

03 Jan 2020 Christian Findlay
.NET Application Frameworks - Part 1
Read More

.NET Application Frameworks - Part 1

Every system needs a framework. The main hubs that a framework should cover are UI/UX, database, and logic. These are the indispensable parts of the...

19 Dec 2019 Christian Findlay
C# Code Quality - Part 1
Read More

C# Code Quality - Part 1

Improving a codebase can be a difficult task. The larger the codebase, the more difficult it becomes to find and fix poor code manually. When...

09 Nov 2019 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
Device.Net 3.0
Read More

Device.Net 3.0

Device.Net 3.0 has been released. Device.Net is a framework for communicating with connected devices. Along with Device.Net Usb.Net, and Hid.Net 3.0 were also released. These...

26 Aug 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
xUnit - Strongly Typed Test Data
Read More

xUnit - Strongly Typed Test Data

xUnit has a quirky system for consuming test data. Strongly typed test data can be specified with the MemberData attribute and the Theory attribute but...

30 Jun 2019 Christian Findlay
C# and WebAssembly (Wasm)
Read More

C# and WebAssembly (Wasm)

WebAssembly may be the most exciting technology for C# developers to emerge in recent times. Browser based applications have been developed in JavaScript, or languages...

29 Jun 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 2 - How To Configure
Read More

C# Code Rules Part 2 - How To Configure

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...

23 Feb 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