<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Stuart Lang</title><description>My name is Stuart Lang. I am a software engineer passionate about F#, C# and .NET. I love attending and helping run community tech events, and contributing to open source.</description><link>https://stu.dev/</link><item><title>A look at C# Action&lt;T&gt; and delegates</title><link>https://stu.dev/a-look-at-c-action-t-and-delegates/</link><guid isPermaLink="true">https://stu.dev/a-look-at-c-action-t-and-delegates/</guid><description>So I&apos;m current trying to build an in-memory service bus, the idea is it would mimic AWS Topics and Queues which can be used to create a pub-sub...</description><pubDate>Sun, 18 Sep 2016 21:33:54 GMT</pubDate></item><item><title>A Look at JsonDocument and System.Text.Json</title><link>https://stu.dev/a-look-at-jsondocument/</link><guid isPermaLink="true">https://stu.dev/a-look-at-jsondocument/</guid><description>Learn how to use System.Text.Json&apos;s JsonDocument API for efficient, low-allocation JSON parsing with asynchronous stream support in .NET.</description><pubDate>Sun, 04 Aug 2019 17:35:47 GMT</pubDate></item><item><title>A Visual Guide to Making A NuGet Package Debuggable</title><link>https://stu.dev/a-visual-guide-to/</link><guid isPermaLink="true">https://stu.dev/a-visual-guide-to/</guid><description>So we want to share our library in a NuGet package, and allow for the consumers to be able to step into our code to debug it, it&apos;s part of being a...</description><pubDate>Thu, 20 Feb 2020 11:44:24 GMT</pubDate></item><item><title>Adding AssemblyMetadataAttribute using new SDK project, with MSBuild</title><link>https://stu.dev/adding-assemblymetadataattribute-using-new-sdk-project-with-msbuild/</link><guid isPermaLink="true">https://stu.dev/adding-assemblymetadataattribute-using-new-sdk-project-with-msbuild/</guid><description>Want to embed git commit hashes or other metadata in your assemblies? Here&apos;s how with MSBuild.</description><pubDate>Mon, 26 Mar 2018 19:20:36 GMT</pubDate></item><item><title>Async in C#: The good, the bad and the ugly</title><link>https://stu.dev/async-in-c-the-good-the-bad-and-the-ugly/</link><guid isPermaLink="true">https://stu.dev/async-in-c-the-good-the-bad-and-the-ugly/</guid><description>Recently I have come to notice that there is a lot of confusion and mistakes make with async in C#, and in using async and await. I think this...</description><pubDate>Sun, 11 Jun 2017 10:54:07 GMT</pubDate></item><item><title>BigInteger to String in Any Base with F#</title><link>https://stu.dev/bigint-to-string-in-any-base-fsharp/</link><guid isPermaLink="true">https://stu.dev/bigint-to-string-in-any-base-fsharp/</guid><description>I needed to print a BigInteger in any base, and there was nothing built-in. Here&apos;s my F# solution.</description><pubDate>Sat, 01 Dec 2018 23:19:09 GMT</pubDate></item><item><title>Do Away with Static Image Placeholders with BlurHash on Xamarin</title><link>https://stu.dev/blurhash-on-xamarin/</link><guid isPermaLink="true">https://stu.dev/blurhash-on-xamarin/</guid><description>What do you show while images load? BlurHash gives you nice blur previews instead of boring placeholders.</description><pubDate>Fri, 06 Mar 2020 15:00:27 GMT</pubDate></item><item><title>C# 8.0 Non-nullable Reference Types</title><link>https://stu.dev/c-8-0-non-nullable-reference-types/</link><guid isPermaLink="true">https://stu.dev/c-8-0-non-nullable-reference-types/</guid><description>I&apos;m beginning to play with the new C# 8.0 non-nullable reference types on an existing codebase and I find that I am asking myself the same few...</description><pubDate>Sat, 08 Dec 2018 22:29:00 GMT</pubDate></item><item><title>Check for Breaking Changes with ApiCompat</title><link>https://stu.dev/check-for-breaking-changes-with-apicompat/</link><guid isPermaLink="true">https://stu.dev/check-for-breaking-changes-with-apicompat/</guid><description>Wouldn&apos;t it be great if your build warned you about breaking API changes? Here&apos;s how with Microsoft.DotNet.ApiCompat.</description><pubDate>Sat, 28 Dec 2019 16:36:48 GMT</pubDate></item><item><title>Creating Your Own Metapackage With Microsoft.Build.NoTargets</title><link>https://stu.dev/creating-your-own-meta-package-with-microsoft-build-notargets/</link><guid isPermaLink="true">https://stu.dev/creating-your-own-meta-package-with-microsoft-build-notargets/</guid><description>In the new .NET eco-system, metapacakges are a common concept, that is a NuGet package that contains nothing other than specifying dependencies on...</description><pubDate>Sun, 11 Mar 2018 22:42:55 GMT</pubDate></item><item><title>C# 8.0 and .NET Standard 2.0 - Doing Unsupported Things</title><link>https://stu.dev/csharp8-doing-unsupported-things/</link><guid isPermaLink="true">https://stu.dev/csharp8-doing-unsupported-things/</guid><description>C# 8.0 isn&apos;t officially supported on .NET Standard 2.0, but that doesn&apos;t mean we can&apos;t use it anyway.</description><pubDate>Tue, 15 Oct 2019 11:13:48 GMT</pubDate></item><item><title>[RFR] Debugging - Stepping into ASP.NET Core source with Rider</title><link>https://stu.dev/debugging-asp-net-core-source-with-rider/</link><guid isPermaLink="true">https://stu.dev/debugging-asp-net-core-source-with-rider/</guid><description>TL;DR; To get the most out of debugging .NET code with Rider, add the following to your Symbol server: http://msdl.microsoft.com/download/symbols How...</description><pubDate>Mon, 03 Jun 2019 06:23:16 GMT</pubDate></item><item><title>Defer with C# 8.0</title><link>https://stu.dev/defer-with-csharp8/</link><guid isPermaLink="true">https://stu.dev/defer-with-csharp8/</guid><description>Exploring how to implement Go&apos;s defer keyword in C# 8.0 using IDisposable and the new using declaration syntax.</description><pubDate>Wed, 30 Oct 2019 21:59:19 GMT</pubDate></item><item><title>Displaying Images in iTerm from .NET Console Apps</title><link>https://stu.dev/displaying-images-in-iterm-from-dotnet-apps/</link><guid isPermaLink="true">https://stu.dev/displaying-images-in-iterm-from-dotnet-apps/</guid><description>How to display inline images in iTerm2 from .NET console applications using escape sequences.</description><pubDate>Sun, 02 Sep 2018 18:32:00 GMT</pubDate></item><item><title>.NET Core 3 Local Tools</title><link>https://stu.dev/dotnet-core-3-local-tools/</link><guid isPermaLink="true">https://stu.dev/dotnet-core-3-local-tools/</guid><description>.NET Tools are great, but sometimes you don&apos;t want them global. Here&apos;s how local tools work in .NET Core 3.</description><pubDate>Fri, 27 Sep 2019 22:24:27 GMT</pubDate></item><item><title>.NET Framework Reference Assemblies via NuGet</title><link>https://stu.dev/dotnet-framework-reference-assemblies-via-nuget/</link><guid isPermaLink="true">https://stu.dev/dotnet-framework-reference-assemblies-via-nuget/</guid><description>The easy way to build .NET Framework on macOS, Linux, or Docker - just add a NuGet package.</description><pubDate>Sun, 05 May 2019 13:30:28 GMT</pubDate></item><item><title>.NET Framework Support for .NET Standard 2.0</title><link>https://stu.dev/dotnet-framework-support-for-dotnetnet-standard-2-0/</link><guid isPermaLink="true">https://stu.dev/dotnet-framework-support-for-dotnetnet-standard-2-0/</guid><description>The messy story of .NET Standard 2.0 support on .NET Framework 4.6.1, and what you can do about it.</description><pubDate>Tue, 28 Aug 2018 16:50:54 GMT</pubDate></item><item><title>Embedded Source, snupkgs and Sourcelink</title><link>https://stu.dev/embedded-source-vs-snupkgs/</link><guid isPermaLink="true">https://stu.dev/embedded-source-vs-snupkgs/</guid><description>When you build libraries for other people/teams to use, you often want them to be able to debug it. In .NET we have a number of concepts that enable...</description><pubDate>Sun, 18 Nov 2018 21:42:51 GMT</pubDate></item><item><title>[RFR] C# - Embrace the brace-less</title><link>https://stu.dev/embrace-the-braceless/</link><guid isPermaLink="true">https://stu.dev/embrace-the-braceless/</guid><description>Over the past few years I have come across a number of developers who prefer to include braces rather than use the brace-less form of if statements,...</description><pubDate>Sun, 01 Jul 2018 16:17:05 GMT</pubDate></item><item><title>Exploring TimeProvider</title><link>https://stu.dev/exploring-timeprovider/</link><guid isPermaLink="true">https://stu.dev/exploring-timeprovider/</guid><description>.NET 8 introduced TimeProvider, an abstract type which allows for easier control of the</description><pubDate>Mon, 28 Oct 2024 00:17:30 GMT</pubDate></item><item><title>F# beginners, no abstraction too small</title><link>https://stu.dev/f-beginners-no-abstraction-too-small/</link><guid isPermaLink="true">https://stu.dev/f-beginners-no-abstraction-too-small/</guid><description>Lets look at refactoring some simple code to see what I&apos;m talking about. let gmtTz = TimeZoneInfo.FindSystemTimeZoneById &quot;GMT Standard Time&quot; let...</description><pubDate>Sat, 15 Oct 2016 17:27:47 GMT</pubDate></item><item><title>F# Loops for C# Developers</title><link>https://stu.dev/f-loops-for-c-developers/</link><guid isPermaLink="true">https://stu.dev/f-loops-for-c-developers/</guid><description>For C# developers picking up F# for the first time, there is usually a lot of googling involved to translate some of the concepts from C#. An early...</description><pubDate>Thu, 31 Jan 2019 12:28:06 GMT</pubDate></item><item><title>Generating a Typed Client for use with HttpClientFactory using NSwag</title><link>https://stu.dev/generating-typed-client-for-httpclientfactory-with-nswag/</link><guid isPermaLink="true">https://stu.dev/generating-typed-client-for-httpclientfactory-with-nswag/</guid><description>Generate typed HTTP clients from Swagger/OpenAPI specs using NSwag, configured for use with HttpClientFactory in ASP.NET Core.</description><pubDate>Mon, 18 Mar 2019 09:29:00 GMT</pubDate></item><item><title>How to dotnet build and Target net4x on macOS</title><link>https://stu.dev/how-to-target-net4x-on-macos/</link><guid isPermaLink="true">https://stu.dev/how-to-target-net4x-on-macos/</guid><description>Getting &apos;reference assemblies not found&apos; when building .NET Framework on macOS? Here are two workarounds.</description><pubDate>Mon, 24 Sep 2018 19:01:37 GMT</pubDate></item><item><title>IAsyncEnumerable&lt;T&gt; - An Introduction</title><link>https://stu.dev/iasyncenumerable-introduction/</link><guid isPermaLink="true">https://stu.dev/iasyncenumerable-introduction/</guid><description>An introduction to IAsyncEnumerable&lt;T&gt; in C#, covering the problem it solves, how to produce and consume async sequences, and C# 8.0 support.</description><pubDate>Thu, 14 Jun 2018 14:56:13 GMT</pubDate></item><item><title>IAsyncEnumerable&lt;T&gt; - Part 2</title><link>https://stu.dev/iasyncenumerable-t-part-2/</link><guid isPermaLink="true">https://stu.dev/iasyncenumerable-t-part-2/</guid><description>Throttling and semaphores might seem like totally different concepts, and they are, but there is a shared visual model that I find useful when...</description><pubDate>Sun, 03 Jun 2018 10:50:02 GMT</pubDate></item><item><title>Managing Package Versions Centrally</title><link>https://stu.dev/managing-package-versions-centrally/</link><guid isPermaLink="true">https://stu.dev/managing-package-versions-centrally/</guid><description>Use Directory.Packages.props to centrally manage NuGet package versions across all projects in your .NET solution.</description><pubDate>Mon, 15 Jun 2020 11:04:42 GMT</pubDate></item><item><title>MetadataLoadContext - Reflecting on External Assemblies</title><link>https://stu.dev/metadataloadcontext/</link><guid isPermaLink="true">https://stu.dev/metadataloadcontext/</guid><description>Introduction Recently I was working on a tool that analyzes build artifacts to determine what types were being used, and would reflect on those types...</description><pubDate>Tue, 20 Oct 2020 19:53:36 GMT</pubDate></item><item><title>Metaprogramming with C#</title><link>https://stu.dev/metaprogramming/</link><guid isPermaLink="true">https://stu.dev/metaprogramming/</guid><description>Intro Outline problem, JustSaying document message producers and consumers. I need to answer two questions from a code-base:  * What types represents...</description><pubDate>Mon, 05 Jul 2021 19:55:36 GMT</pubDate></item><item><title>Miscellaneous C# Async Tips</title><link>https://stu.dev/miscellaneous-csharp-async-tips/</link><guid isPermaLink="true">https://stu.dev/miscellaneous-csharp-async-tips/</guid><description>A random collection of async tips I&apos;ve picked up over the years that you might not have seen before.</description><pubDate>Mon, 03 Dec 2018 07:50:29 GMT</pubDate></item><item><title>.NET Standard, .NET Runtime, .NET SDK and versions</title><link>https://stu.dev/net-standard-net-runtime-net-sdk-and-versions/</link><guid isPermaLink="true">https://stu.dev/net-standard-net-runtime-net-sdk-and-versions/</guid><description>Back in the days of the full .NET Framework, things were very simple, you&apos;d typically talk about the version of .NET you were using and could get...</description><pubDate>Tue, 28 Aug 2018 15:30:58 GMT</pubDate></item><item><title>.NET 5 SDK Hidden Gems</title><link>https://stu.dev/net5-sdk-hidden-gems/</link><guid isPermaLink="true">https://stu.dev/net5-sdk-hidden-gems/</guid><description>There are a lot of exciting changes coming with .NET 5, but in this post I wanted to call out a couple of improvements that come with the new SDK...</description><pubDate>Mon, 26 Oct 2020 16:53:16 GMT</pubDate></item><item><title>Pattern Matching F# Union Types in C# 7</title><link>https://stu.dev/pattern-matching-fsharp-union-types-in-csharp/</link><guid isPermaLink="true">https://stu.dev/pattern-matching-fsharp-union-types-in-csharp/</guid><description>Using C# 7&apos;s pattern matching to consume F# discriminated unions, with examples and workarounds for edge cases.</description><pubDate>Fri, 27 Jul 2018 13:26:27 GMT</pubDate></item><item><title>Pro Tip: using static Microsoft.AspNetCore.Http.StatusCodes</title><link>https://stu.dev/pro-tip-using-static-microsoft-aspnetcore-http-statuscodes/</link><guid isPermaLink="true">https://stu.dev/pro-tip-using-static-microsoft-aspnetcore-http-statuscodes/</guid><description>Use &apos;using static&apos; with Microsoft.AspNetCore.Http.StatusCodes for cleaner, more readable HTTP status code references in ASP.NET Core.</description><pubDate>Fri, 08 Nov 2019 18:10:34 GMT</pubDate></item><item><title>Property Based Testing your API Response Types with F#</title><link>https://stu.dev/property-based-testing-apis-with-fsharp/</link><guid isPermaLink="true">https://stu.dev/property-based-testing-apis-with-fsharp/</guid><description>Use property-based testing with FsCheck to automatically verify your F# API response types match your OpenAPI specification.</description><pubDate>Fri, 15 Nov 2019 20:49:36 GMT</pubDate></item><item><title>PublicApiAnalyzers</title><link>https://stu.dev/publicapianalyzers/</link><guid isPermaLink="true">https://stu.dev/publicapianalyzers/</guid><description>Following on from the topic of my previous post, when we are maintaining a library we have a duty be very considered about the public API we expose...</description><pubDate>Sun, 02 Feb 2020 23:00:15 GMT</pubDate></item><item><title>Roslyn Code Analysis With F#</title><link>https://stu.dev/rosyln-code-analysis-with-f/</link><guid isPermaLink="true">https://stu.dev/rosyln-code-analysis-with-f/</guid><description>Roslyn is an excellect set of libraries with provides the compilation services for C# and VB.NET, this drives features such as code compilation (well...</description><pubDate>Sun, 18 Sep 2016 21:21:22 GMT</pubDate></item><item><title>Testing with HttpClient Interception</title><link>https://stu.dev/testing-with-httpclient-interception/</link><guid isPermaLink="true">https://stu.dev/testing-with-httpclient-interception/</guid><description>How to use JustEat&apos;s HttpClient Interception library to write effective unit tests for typed HTTP clients in .NET.</description><pubDate>Sun, 24 Mar 2019 20:45:24 GMT</pubDate></item><item><title>Trying Out Daily Builds of Roslyn</title><link>https://stu.dev/trying-a-daily-build-of-roslyn/</link><guid isPermaLink="true">https://stu.dev/trying-a-daily-build-of-roslyn/</guid><description>How to use Microsoft.Net.Compilers.Toolset to test daily builds of the Roslyn C# compiler in your .NET Core projects.</description><pubDate>Wed, 30 Oct 2019 21:40:35 GMT</pubDate></item><item><title>F#, partial application, currying, and deferred execution</title><link>https://stu.dev/untitled-3/</link><guid isPermaLink="true">https://stu.dev/untitled-3/</guid><description>int -&gt; int -&gt; int vs int -&gt; (int -&gt; int) // Step 1 let myFunc x =     let value = somethingslow ()     value + x // Step 2 let myFunc =     fun x -&gt; ...</description><pubDate>Sat, 15 Oct 2016 17:15:36 GMT</pubDate></item><item><title>Embedded symbols and embedded source</title><link>https://stu.dev/untitled-4/</link><guid isPermaLink="true">https://stu.dev/untitled-4/</guid><description>Embedded symbols and embedded source // TODO intro pdbs For a long time, .NET has suffered from the problem where you want to step through 3rd party...</description><pubDate>Sun, 21 Jan 2018 23:22:21 GMT</pubDate></item><item><title>Updating Web Libraries to Support ASP.NET Core 3</title><link>https://stu.dev/updating-web-libraries-to-support-asp-net-core-3/</link><guid isPermaLink="true">https://stu.dev/updating-web-libraries-to-support-asp-net-core-3/</guid><description>If you are maintaining a library has a dependency on Microsoft.AspNetCore.* (or one of the , then you need to consider the things in this post to...</description><pubDate>Sun, 03 Nov 2019 11:31:59 GMT</pubDate></item><item><title>How I Use VS Code for Code Highlighting in My Blog</title><link>https://stu.dev/using-vs-code-for-my-blog-code-formatting/</link><guid isPermaLink="true">https://stu.dev/using-vs-code-for-my-blog-code-formatting/</guid><description>A workflow for embedding VS Code syntax-highlighted code snippets in blog posts using a dotnet global tool.</description><pubDate>Sun, 29 Jul 2018 11:15:31 GMT</pubDate></item><item><title>Video - An Intro into Async Streams &amp; Channels</title><link>https://stu.dev/video-async-streams-and-channels/</link><guid isPermaLink="true">https://stu.dev/video-async-streams-and-channels/</guid><description>Watch a recorded demo on C# async pitfalls, async streams, and System.Threading.Channels from DDD North.</description><pubDate>Wed, 04 Mar 2020 10:23:39 GMT</pubDate></item><item><title>Xamarin Forms Accessible Headings</title><link>https://stu.dev/xamarin-forms-accessible-headings/</link><guid isPermaLink="true">https://stu.dev/xamarin-forms-accessible-headings/</guid><description>How to add VoiceOver heading accessibility traits to Xamarin Forms iOS apps using attached properties and effects.</description><pubDate>Mon, 02 Sep 2019 18:34:00 GMT</pubDate></item></channel></rss>