A quick overview of how Puppeteer Sharp can be used to convert HTML to PDF files in the .NET ecosystem
Posted by Matthew King on 22 September 2021
How to tell VSCode to stop inserting newlines into your code just because it wants to wrap your HTML attributes
Posted by Matthew King on 18 December 2020
A quick explanation of how to deal with error CS0518, which may occur when trying to use init setters on frameworks earlier than .NET 5.0
Posted by Matthew King on 11 December 2020
A standard layout for .NET projects.
Posted by Matthew King on 10 March 2020
How to use WixNetfxExtension to detect .NET framework versions (including those higher than 4.6.2)
Posted by Matthew King on 4 October 2019
How to use a custom contract resolver to deserialize to an object with private setters in Json.NET
Posted by Matthew King on 11 April 2019
There are only two hard problems in computer science: cache invalidation and naming things.
Posted by Matthew King on 12 March 2019
A quick overview of some of the options for hosting ASP.NET Core sites and apps.
Posted by Matthew King on 4 December 2018
A couple of registry hacks to use Visual Studio's WinForms designer on high‑DPI systems without causing problems for the rest of your team.
Posted by Matthew King on 19 August 2018
An overview of how to determine if a Windows user is idle by checking when they last interacted with the PC (using the Win32 GetLastInputInfo API).
Posted by Matthew King on 18 August 2018
A simple ASP.NET Core Tag Helper that emits Google AdSense ad code.
Posted by Matthew King on 17 August 2018
A guide showing how to download a web page as a single HTML file with all CSS, JS, and images embedded into it.
Posted by Matthew King on 20 May 2018
A quick example showing how to monitor the clipboard in a WinForms project.
Posted by Matthew King on 2 April 2018
Using my FluentFileFilterBuilder library to easily craft file filters for the WinForms and WPF file dialogs.
Posted by Matthew King on 11 March 2018
A simple ASP.NET Core Tag Helper that emits Google Analytics tracking code.
Posted by Matthew King on 5 November 2017
An overview of my preferred technique for setting a WinForms form to be hidden on startup (without the drawbacks of some of the other common approaches).
Posted by Matthew King on 4 November 2017
An overview of ZEIT Now, and a quick tutorial showing how to use it to host and deploy an ASP.NET Core app.
Posted by Matthew King on 3 October 2017
A critique of the shortfalls of the WinForms FolderBrowserDialog, and a quick overview of the alternative provided in the Ookii.Dialogs project.
Posted by Matthew King on 2 May 2017
A short overview of the software that I always install on a fresh Windows PC to get up-and-running for .NET development.
Posted by Matthew King on 12 March 2017
Some recommendations on how to write XML Documentation Comments for methods that return a Task object.
Posted by Matthew King on 16 February 2017
A quick guide on how to set up VSCode as the default Git editor.
Posted by Matthew King on 14 October 2016
Using Kristian Hellang's Scrutor library to scan and automatically register dependencies with the Microsoft.Extensions.DependencyInjection IoC container.
Posted by Matthew King on 3 September 2016
Using my DeviceId library to generate unique identifiers for Windows PCs.
Posted by Matthew King on 31 July 2016
A quick guide demonstrating how to set up SourceTree custom actions to search a repository for a Visual Studio Solution File and then open it in Visual Studio.
Posted by Matthew King on 25 May 2016
An in-depth look at how to extend the WinForms PropertyGrid control to enable tab-navigation between properties.
Posted by Matthew King on 24 May 2016
An in-depth look at the various ways that ClickOnce applications can be programmatically launched.
Posted by Matthew King on 27 May 2014
Identifying and fixing a bug in GeoCoordinateWatcher's event handlers.
Posted by Matthew King on 12 April 2014
A quick tutorial on how to nest/group files within Visual Studio using the <DependentUpon> property in a project file.
Posted by Matthew King on 14 March 2014
A brief introduction to C# 4's dynamic keyword, and the fun that can be had with it.
Posted by Matthew King on 9 February 2014
A overview of how Skype quote elements are structured, and a program that allows them to be forged.
Posted by Matthew King on 4 February 2014
Posted by Matthew King on 13 January 2014
A look at how to use the FastColoredTextBox library to get quick and easy WinForms syntax highlighting.
Posted by Matthew King on 11 January 2014
A brief rundown of some of the common mistakes people make with password security, and then an overview of some 'good practices' (with examples in C#).
Posted by Matthew King on 2 December 2013
A look at how WinForms text boxes can be extended to have a 'cue banner' (that greyed-out placeholder or explanatory text often seen in text fields).
Posted by Matthew King on 30 November 2013