All posts by category
.NET
- How To Get An Available TCP Port From The Operating System In C# & .NET - Mon, 17 November
- How To Execute Database Queries In Parallel In C# & .NET - Sun, 16 November
- Beware - Parallel.ForEach And Async Don't Play Well Together - Sat, 15 November
- How To Serialize Numbers As Strings Using System.Text.Json In C# & .NET - Fri, 14 November
- How To Deserialize Numbers Serialized As Strings Using System.Text.Json In C# & .NET - Thu, 13 November
- Using StringSplitOptions.TrimEntries To Split Strings In C# & .NET - Wed, 12 November
- C# 14, .NET 10 & Visual Studio 2026 Are Released - Tue, 11 November
- Splitting A String Into An Array In C# & .NET - Mon, 10 November
- Checking If Collection Enumeration Is Cheap In C# & .NET - Sun, 9 November
- Count vs Any To Check A If A Collection Has Elements In C# & .NET - Sat, 8 November
- Beware - Missing Serilog Entries On Application Exit - Fri, 7 November
- How To Log Complex Objects With Serilog - Thu, 6 November
- Beware - Setting A Database Timeout Of 0 Is A Bad Idea - Wed, 5 November
- How To Check If You Can Write To A File In C# & .NET - Tue, 4 November
- Using The Field Keyword In C# & .NET - Mon, 3 November
- Creating Static Extension Properties In C# & .NET - Sun, 2 November
- Creating Static Extension Methods In C# & .NET - Sat, 1 November
- Writing & Testing Code That Expects The Current Date & Time Using The TimeProvider in C# & .NET - Fri, 31 October
- Working With appsettings.json In A Team In C# & .NET - Thu, 30 October
- Generating A .NET Friendly .gitignore - Wed, 29 October
- Using Extension Members To Add Properties To Types In C# & .NET - Tue, 28 October
- Adding Date Computations Support To DateTime In C# & .NET - Mon, 27 October
- Getting The Start and End Of The Next Year In C# & .NET - Sun, 26 October
- Getting The Start and End Of The Previous Year In C# & .NET - Sat, 25 October
- Getting The Start and End Of The Current Year In C# & .NET - Fri, 24 October
- Getting The Start and End Of The Next Quarter In C# & .NET - Thu, 23 October
- Getting The Start and End Of The Previous Quarter In C# & .NET - Wed, 22 October
- Getting The Start and End Of A Quarter In C# & .NET - Tue, 21 October
- Custom Sorting To Ignore Articles Like 'A' & 'The' In C# & .NET - Sun, 19 October
- Using Trim, TrimStart & TrimEnd In C# & .NET - Sat, 18 October
- Serializing Enums With System.Text.Json In C# & .NET - Tue, 14 October
- Getting The System Directory In C# & .NET - Sat, 11 October
- What Is The Largest Duration A TimeSpan Can Store In C# & .NET - Fri, 10 October
- Getting The System Uptime In C# & .NET - Thu, 9 October
- Writing To The Windows Event Log In C# & .NET - Wed, 8 October
- Getting The Name Of A File Without Its Extension In C# & .NET - Mon, 6 October
- How To Unit Test A Class With Options In C# & .NET - Sun, 5 October
- Getting A Constant Value From A .NET Executable in PowerShell - Fri, 3 October
- Getting The Current Path Of An Executing PowerShell Script - Thu, 2 October
- Getting The Time In Different Timezones In C# & .NET - Wed, 1 October
- Converting Between Calendars AKA October MOSTLY Has 31 Days - Tue, 30 September
- Correctly Getting The Number Of Days In A Month In C# & .NET - Mon, 29 September
- Getting The Number Of Days In A Month In C# & .NET - Sun, 28 September
- Generating Random Booleans In C# & .NET - Sat, 27 September
- Generating Random Unsigned 64 Bit Integers In C# & .NET - Fri, 26 September
- Generating Random Unsigned Integers In C# & .NET - Thu, 25 September
- Generating Random Values For Other Integral Types In C# & .NET - Wed, 24 September
- Generating Random 64 Bit Integers In C# & .NET - Tue, 23 September
- About .NET & Support Cycles - Mon, 22 September
- Shuffling Arrays In C# & .NET - Sat, 20 September
- Restricting Numbers To A Range In C# & .NET - Fri, 19 September
- Getting A Temporary File Name in C# & .NET - Thu, 18 September
- Documentation Needs Love - Broken Samples - Wed, 17 September
- Documentation Needs Love - The Letter vs The Spirit - Tue, 16 September
- Documentation Needs Love - Running Samples - Mon, 15 September
- Getting The Downloads Location On macOS In C# & .NET - Sun, 14 September
- Getting The Downloads Location On Windows In C# & .NET - Sat, 13 September
- .NET 10 Release Candidate Is Out - Thu, 11 September
- Changing The Decimal Separator In C# & .NET - Wed, 10 September
- Why Is September Shortened As Sept And Not Sep - Tue, 9 September
- Sep Is The Short Date Format For September. Sometimes - Mon, 8 September
- Getting the Version of Kibana Connected in C# & .NET - Sun, 7 September
- Getting the Version of ElasticSearch Connected in C# & .NET - Sat, 6 September
- Getting the Version of Redis Connected Without Admin Access in C# & .NET - Fri, 5 September
- Getting the Version of Redis Connected in C# & .NET - Thu, 4 September
- Other RabbitMQ IConnection Server Properties - Wed, 3 September
- Getting the Version of RabbitMQ Connected in C# & .NET - Tue, 2 September
- Sending Email In C# & .NET - Part 16 - Testing SMTP Locally Using Mailpit - Sun, 31 August
- Sending Email In C# & .NET - Part 15 - Sending Calendar Invites Using MailKit - Sat, 30 August
- Sending Email In C# & .NET - Part 14 - Sending Multiple Format Email Using MailKit - Fri, 29 August
- Sending Email In C# & .NET - Part 13 - Sending Email With Inline Attachments Using MailKit - Thu, 28 August
- Sending Email In C# & .NET - Part 12 - Sending Email With Attachments Using MailKit - Wed, 27 August
- Sending Email In C# & .NET - Part 11 - Sending HTML Email Using MailKit - Tue, 26 August
- Sending Email In C# & .NET - Part 10 - Sending Plain Text Email Using MailKit - Mon, 25 August
- Working With Dates In Multiple Locale Formats Simultaneously - Sat, 23 August
- The Difference Between String.Format and ToString - Wed, 20 August
- Adding Ordinal Support To DateTime Format Strings In C# & .NET - Tue, 19 August
- Displaying Ordinal Words In C# & .NET - Mon, 18 August
- Displaying Ordinal Numbers In C# & .NET - Sun, 17 August
- Tip - DriveInfo.AvailableFreeSpace vs DriveInfo.TotalFreeSpace - Fri, 15 August
- Getting Available Free Space On Drives In C# & .NET - Thu, 14 August
- Class That Stores Multiple Named, Typed Generic Lists - Improvement - Wed, 13 August
- Class That Stores Multiple Named, Typed Generic Lists - Tue, 12 August
- Repeat - xUnit Attribute to Run Tests Multiple Times - Mon, 11 August
- Building A Simple Password Generator In C# & .NET - Part 7 - Generating Multiple Passwords - Sun, 10 August
- Building A Simple Password Generator In C# & .NET - Part 6 - Updating Console UI For Memorable Password Generation - Sat, 9 August
- Building A Simple Password Generator In C# & .NET - Part 5 - Generating Memorable Passwords - Fri, 8 August
- Building A Simple Password Generator In C# & .NET - Part 4 - Generating Human Readable Passwords - Thu, 7 August
- Building A Simple Password Generator In C# & .NET - Part 3 - Advanced UI With Spectre.Console - Wed, 6 August
- Building A Simple Password Generator In C# & .NET - Part 2 - Novice UI With Spectre.Console - Tue, 5 August
- Building A Simple Password Generator In C# & .NET - Part 1 - Mon, 4 August
- Generating A Cryptographically Random String in C# & .NET - Sun, 3 August
- Generating A Random String In C# & .NET - Sat, 2 August
- Adding Items To An Existing List In C# & .NET - Fri, 1 August
- Reclaiming Memory From Lists In C# & .NET - Thu, 31 July
- Mutative vs Non-Mutative List Manipulation In C# & .NET - Wed, 30 July
- Considerations When Adding Items To A List In C# & .NET - Tue, 29 July
- Sending Email In C# & .NET - Part 9 - Sending Multiple Format Email Using SMTP - Mon, 28 July
- Sending Email In C# & .NET - Part 8 - Sending HTML Email Using SMTP - Sun, 27 July
- Sending Email In C# & .NET - Part 7 - Sending Inline Images Using SMTP - Sat, 26 July
- Tip - Auto Fit Columns For DevExpress XtraTreeList - Fri, 25 July
- Displaying User-Friendly TimeSpans In C# & .NET - Thu, 24 July
- Updating Your Installed .NET Project Templates - Wed, 23 July
- Sending Email In C# & .NET - Part 6 - Testing SMTP Locally Using PaperCut - Tue, 22 July
- Sending Email In C# & .NET - Part 5 - Using Google Cloud API - Mon, 21 July
- Sending Email In C# & .NET - Part 4 - Using Office 365 & MS Graph API - Sun, 20 July
- Sending Email In C# & .NET - Part 3 - Using Gmail - Sat, 19 July
- Sending Email In C# & .NET - Part 2 - Delivery - Fri, 18 July
- Sending Email In C# & .NET - Part 1 - Introduction - Thu, 17 July
- Pet Peeve - Properly Pluralizing Counts In C# & .NET - Wed, 16 July
- Determining The Number Of Processors In C# & .NET - Tue, 15 July
- How to Wait in C# & .NET - Mon, 14 July
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 24 - Google Cloud Storage - Sun, 13 July
- Programmatically Checking If There Are Messages In The EasyNetQ Error Queue In C# & .NET - Sat, 12 July
- Deleting A RabbitMQ Queue In C# & .NET - Fri, 11 July
- Determining The Architecture Of An Emulated 32 Bit Running Process In .NET On Windows - Thu, 10 July
- Determining If A Running Process Is Emulated 32 Bit In .NET On Windows - Wed, 9 July
- Determining If A Running Process Is 64 Bit In .NET - Tue, 8 July
- Disable SSL Certificate Validation in .NET for Specific Requests - Mon, 7 July
- Get IP Address Of Web Server From ASP.NET WebAPI EndPoint - Sun, 6 July
- Controlling The Casing Of Submitted Request Headers In C# & .NET - Fri, 4 July
- Writing Debugger-Friendly Objects in C# & .NET - Thu, 3 July
- Quickly generating A Voice Prompt on Windows - Wed, 2 July
- Quickly Generating a Voice Prompt on macOS - Tue, 1 July
- Overriding Package Versions When Using .NET Centralized Package Management - Sun, 29 June
- Connecting to Secured RabbitMQ Over SSL in C# With EasyNetQ - Thu, 26 June
- Arithmetic In C# Using Hex Numbers - Tue, 24 June
- Interpolating C# Raw String Literals - Mon, 23 June
- Locale Considerations When Parsing Dates - Mon, 16 June
- Don't Parse - TryParse - Sun, 15 June
- F# Discriminated Unions & Their Benefits - Sat, 14 June
- Generating and Using Directory.Packages.props file - Fri, 13 June
- Generating and Using a Directory.Build.props file - Thu, 12 June
- What does EnsureSuccessStatusCode do? - Wed, 11 June
- Setting Timeouts for HttpClient Requests - Tue, 10 June
- C# Dictionary Usage Optimizations - TryGet - Sun, 8 June
- C# Dictionary Usage Optimizations - TryAdd - Sat, 7 June
- Required DevExpress References For XtraReports Document Generation And Printing - Fri, 6 June
- How to Deserialize JSON Using HttpClient Using C# In .NET - Thu, 5 June
- Avoid Noisy Exception Logging - Wed, 4 June
- Exposing Collections As Read-Only In C# & .NET - Tue, 3 June
- Using the Generic Math Interface in C# & .NET - Mon, 2 June
- Swapping Variables in F# - Sun, 1 June
- Swapping Variables In C# With ValueTuples - Sat, 31 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 23 - Refactoring Amazon Storage Engine For Initialization - Fri, 30 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 22 - Refactoring Azure Storage Engine For Initialization - Thu, 29 May
- Calling Async Methods In Constructors In C# - Wed, 28 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 21 - Testing Amazon S3 Storage Locally - Mon, 26 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 20 - Amazon S3 Storage - Sun, 25 May
- Using Tuples in Deconstructors - Sat, 24 May
- Not All .NET Exceptions Can Be Caught - The Case Of StackOverflow - Fri, 23 May
- About Tuples & Value Tuples - Thu, 22 May
- Determining the Operating System SQL Server Is Running On Remotely - Wed, 21 May
- Fare thee well, StackOverflow - Mon, 19 May
- LINQ Single and First Are Not Interchangeable - Sun, 18 May
- Understanding & Managing Nuget Cache Folders - Sat, 17 May
- Order of Settings Precedence for .NET Applications - Fri, 16 May
- Format Strings for Display of Zeros - Thu, 15 May
- Overriding appsettings.json via Environment Variables - Wed, 14 May
- Overriding appsettings.json Via Command Line - Tue, 13 May
- Setting the Staging & Production Environments During Development - Sun, 11 May
- Flexible Leveraging of appsettings.json in .NET Applications - Sat, 10 May
- Computing SHA256 & Other Checksums In C# & .NET - Thu, 8 May
- Dapper Part 16 - Consideration When Passing Parameters - Wed, 7 May
- Tip - Command Text & Stored Procedure Specification In Dapper - Tue, 6 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 19 - Testing Azure Blob Storage Locally - Mon, 5 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 18 - Azure Blob Storage - Sun, 4 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 17 - Large File Consideration On PostgreSQL - Sat, 3 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 15 - Test Organization - Thu, 1 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 10 - In Memory Storage - Sat, 26 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 9 - Encryptor Implementation - Fri, 25 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 8 - Compressor Implementation - Thu, 24 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 7 - Sequence Verification With Moq - Wed, 23 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 6 - Mocking & Behaviour Tests - Tue, 22 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 5 - Component Implementation - Mon, 21 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 4 - Types & Contracts - Sun, 20 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 3 - Project Setup - Sat, 19 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 2 - Basic Requirements - Fri, 18 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 1 - Introduction - Thu, 17 April
- Resolve IPAddress From Domain In C# - Wed, 16 April
- Beware - Environment.NewLine Is Not A Silver Bullet - Mon, 14 April
- Using State Machines In .NET - Part 12 - State Activation & Entry - Wed, 9 April
- Tip - Initialzing Large Arrays With A Known Value - Tue, 8 April
- Using State Machines In .NET - Part 11 - Logic Based On How A State Was Transitioned - Mon, 7 April
- Using State Machines In .NET - Part 10 - Generating State Diagrams - Sun, 6 April
- Using State Machines In .NET - Part 9 - Calling Asynchronous Methods - Sat, 5 April
- Using State Machines In .NET - Part 8 - Firing Events Before State Change - Wed, 2 April
- Using State Machines In .NET - Part 7 - Conditional State Transitions - Mon, 31 March
- Using State Machines In .NET - Part 6 - Firing Events On State Change - Sun, 30 March
- Tip - Adding Projects To Solutions Via Command Line - Sat, 29 March
- Using State Machines In .NET - Part 5 - Using Complex & Nested States - Fri, 28 March
- Using State Machines In .NET - Part 4 - Using Multiple Triggers - Thu, 27 March
- Using State Machines In .NET - Part 3 - Setting Initial State - Wed, 26 March
- Using State Machines In .NET - Part 2 - Basic Usage - Tue, 25 March
- Using State Machines In .NET - Part 1 - Introduction - Mon, 24 March
- Collection Expressions & Dictionaries - Sun, 23 March
- SLNX - New .NET Solution File Format - Thu, 20 March
- Organizing .NET Projects With Solutions - Wed, 19 March
- Changing The Port Of An ASP.NET Web Application Or API - Sun, 16 March
- Controlling Publishing Of Satellite Resource Assemblies - Sat, 15 March
- Dapper Part 15 - Using the IN Clause - Wed, 12 March
- Dapper Part 14 - Multithreading - Tue, 11 March
- Dapper Part 13 - Using Transactions - Mon, 10 March
- Dapper Part 12 - Alternative Bulk Insert Technique - Sat, 8 March
- Dapper Part 11 - Using Inheritance - Fri, 7 March
- Dapper Part 10 - Handling Cancellations - Thu, 6 March
- Dapper Part 9 - Using Dynamic Types - Wed, 5 March
- Dapper Part 8 - Controlling Database Timeouts - Tue, 4 March
- Dapper Part 7 - Adding DateOnly & TimeOnly Support - Mon, 3 March
- Dapper Part 6 - Returning Multiple Sets Of Results - Sun, 2 March
- Dapper Part 5 - Passing Data In Bulk To The Database - Sat, 1 March
- Dapper Part 4 - Passing Data To And From The Database - Fri, 28 February
- Dapper Part 3 - Executing Queries - Thu, 27 February
- Dapper Part 2 - Querying The Database - Wed, 26 February
- Simpler .NET Data Access With Dapper - Part 1 - Tue, 25 February
- How SQL Injection Works - Part 2 - Mon, 24 February
- How SQL Injection Works - Part 1 - Sun, 23 February
- Using Case Insensitive Dictionary Keys In C# & .NET - Sat, 22 February
- Configuring JSON Responses With ASP.NET - Fri, 21 February
- Enums & Enum Flags In C# & .NET For Dummies - Thu, 20 February
- Some Useful Integer Helper Methods In .NET - Wed, 19 February
- Creating Reproducible Builds With global.json - Mon, 17 February
- Using Frozen Collections For Immutability - Sat, 15 February
- Getting The Executing .NET Version - Fri, 14 February
- Using Base64 To Encode Binary Data - Wed, 12 February
- Is That String Null, Empty, Or WhiteSpace? - Tue, 11 February
- Executing Actions In Parallel With Parallel.Invoke - Mon, 10 February
- Immutable Types In C# & .NET - Sun, 9 February
- Pipelining Task Results With Task.WhenEach - Sat, 8 February
- Parallelizing Work With C# & .NET - Fri, 7 February
- Using Deconstructors In C# - Wed, 5 February
- Using LINQ Repeat To Generate Copies Of Objects - Tue, 4 February
- Using LINQ Concat To Merge Collections - Mon, 3 February
- Using LINQ UnionBy To Merge Collections - Sun, 2 February
- Scheduling Tasks With The PeriodicTimer - Sat, 1 February
- Lazy Initialization With System.Lazy - Thu, 30 January
- Using Indexes With LINQ - Wed, 29 January
- Set Operations With LINQ - Tue, 28 January
- Using LINQ Zip To Combine Collections - Mon, 27 January
- Using LINQ Aggregate & AggregateBy To Perform Aggregate Computations - Sun, 26 January
- Using LINQ SelectMany To Flatten Collections - Sat, 25 January
- Using LINQ GroupJoin To Perform Grouped Joins - Fri, 24 January
- Using A LINQ Pipeline To Solve Problems - Mon, 20 January
- Using Groups To Apply Common Functionality To WebAPI EndPoints - Sun, 19 January
- Primary Constructors - And Their Pitfalls - Fri, 17 January
- Locale & Culture Support For Kenyan Languages In .NET - Wed, 15 January
- Unit Testing Fractional Values In C# & .NET - Fri, 10 January
- Dependency Injection In C# & .NET Part 10 - Conclusion - Thu, 9 January
- Dependency Injection In C# & .NET Part 9 - Life Cycles - Wed, 8 January
- Dependency Injection In C# & .NET Part 8 - Types Of Dependency Injection - Tue, 7 January
- Dependency Injection In C# & .NET Part 7 - Integration Testing - Mon, 6 January
- Dependency Injection In C# & .NET Part 6 - Implementation Testing - Sun, 5 January
- Dependency Injection In C# & .NET Part 5 - Making All Implementations Available - Sat, 4 January
- Dependency Injection In C# & .NET Part 4 - Making Implementations Hot-Pluggable - Fri, 3 January
- Dependency Injection In C# & .NET Part 3 - Making Implementations Pluggable - Thu, 2 January
- Dependency Injection In C# & .NET Part 2 - Making Implementations Swappable - Wed, 1 January
- Dependency Injection In C# & .NET Part 1 - Introduction & Basic Implementation - Tue, 31 December
- Correctly Processing CSV Files In C# & .NET - Wed, 25 December
- Check If You Have The Latest .NET SDK - Tue, 24 December
- Customizing Object Equality In C# & .NET - Thu, 19 December
- Loading & Using Application Settings In .NET - Wed, 11 December
- LinqPad For OSX Beta Is Out - Tue, 10 December
- Truncating Numbers In C# - Thu, 28 November
- Storing Common Application Settings For A .NET Application In MacOS OSX - Mon, 25 November
- Pretty Printing Unformatted Json In C# - Sun, 24 November
- Determining The Operating System C# .NET Program Is Running Under - Sat, 23 November
- Running Multiple .NET Versions In MacOS OSX - Fri, 22 November
- Using Inheritance With FluentValidation - Sat, 6 April
- Correctly Setting HttpClient BaseAddress - Sun, 17 March
- Tip - Don't Log Exceptions With Log.Information - Fri, 23 February
- Tip - Using JsonSerializationOptions With Refit - Wed, 2 August
- Fix - HttpClient Changes Case Of x-request-id Header - Fri, 21 July
- Projecting Named Tuples In Entity Framework Core - Mon, 17 July
- Tip - Fluent Validation With Null Values - Thu, 6 July
- Writing Maintainable, Testable Code That Depends On The Current Time - Wed, 3 May
- How To Use C# List Pattern Matching Practically - Tue, 28 March
- Required Keyword In C# 11 & .NET 7 - Sat, 12 November
- Building URLs In C# Without Concatenation Or Interpolation - Mon, 15 August
- Using HttpClient To Post JSON In C# & .NET - Mon, 1 August
- Fix - SSL Provider, error 0 - The certificate chain was issued by an authority that is not trusted - Mon, 16 May
- About curl And PowerShell - Tue, 10 May
- Tip - HttpUtility.UrlEncode vs WebUtility.UrlEncode - Thu, 7 April
- Tip - Updating The Nuget Client - Thu, 31 March
- 30 Days Of .NET 6 - Day 30 - Simplified Argument Null Checks - Tue, 21 December
- 30 Days Of .NET 6 - Day 29 - Writing Raw JSON Using Utf8JsonWriter - Mon, 6 December
- 30 Days Of .NET 6 - Day 28 - JSON Serialization To & From Streams - Mon, 29 November
- 30 Days Of .NET 6 - Day 27 - Extended Property Patterns - Fri, 19 November
- 30 Days Of .NET 6 - Day 26 - Sealed ToString() In Records - Fri, 12 November
- 30 Days Of .NET 6 - Day 25 - Hot Reload - Tue, 9 November
- .NET 6 Release - Tue, 9 November
- 30 Days Of .NET 6 - Day 24 - Parallel.ForEachAsync - Mon, 8 November
- 30 Days Of .NET 6 - Day 23 - Nullable References - Thu, 4 November
- 30 Days Of .NET 6 - Day 22 - LINQ Default Parameters - Tue, 2 November
- 30 Days Of .NET 6 - Day 21 - Constant Interpolated Strings - Mon, 1 November
- 30 Days Of .NET 6 - Day 20 - Json Property Ordering - Wed, 27 October
- 30 Days Of .NET 6 - Day 19 - Record Structs - Thu, 21 October
- .NET 6 Release Candidate 2 Out - Mon, 18 October
- 30 Days Of .NET 6 - Day 18 - File Scoped Namespaces - Mon, 18 October
- 30 Days Of .NET 6 - Day 17 - New Timer - PeriodicTimer - Tue, 12 October
- 30 Days Of .NET 6 - Day 16 - HTTP/3 Support - Thu, 7 October
- Installing .NET 6 On Linux - Thu, 7 October
- 30 Days Of .NET 6 - Day 15 - SOCKS Proxy Support - Tue, 5 October
- 30 Days Of .NET 6 - Day 14 - Implicit Usings - Fri, 1 October
- 30 Days Of .NET 6 - Day 13 - LINQ Improvements - Chunk - Wed, 29 September
- 30 Days Of .NET 6 - Day 12 - Collection Count Performance Improvement - Tue, 28 September
- 30 Days Of .NET 6 - Day 11 - LINQ Improvements - Range Support - Fri, 24 September
- 30 Days Of .NET 6 - Day 10 - SDK & Runtime Version Checking - Thu, 23 September
- 30 Days Of .NET 6 - Day 9 - LINQ Improvements - DistinctBy - Wed, 22 September
- 30 Days Of .NET 6 - Day 8 - Control Of Serialization Of Object Cycles - Tue, 21 September
- .NET 6 Release Candidate 1 Out - Tue, 21 September
- 30 Days Of .NET 6 - Day 7 - Simpler Web Application Development - Tue, 14 September
- 30 Days Of .NET 6 - Day 6 - Priority Queue - Mon, 13 September
- 30 Days Of .NET 6 - Day 5 - Mathematics API Additions - Fri, 10 September
- 30 Days Of .NET 6 - Day 4 - LINQ Improvements - MaxBy & MinBy - Thu, 9 September
- 30 Days Of .NET 6 - Day 3 - TimeOnly Type - Wed, 8 September
- 30 Days Of .NET 6 - Day 2 - Friendly To Newcomers - Tue, 7 September
- 30 Days Of .NET 6 - DateOnly Type - Mon, 6 September
- Fix - .NET 6 Not Being Recognized After Install - Fri, 3 September
- Conditional Logic In MSBuild - Thu, 12 November
- Getting Now Playing Information From WQXR In .NET - Mon, 9 November
- Posting Messages To Microsoft Teams With Code - Wed, 4 November
- Joining Strings - Part 4 : String.Format - Wed, 1 July
- Joining Strings - Part 3 : StringBuilder - Mon, 22 June
- Joining Strings - Part 2 : String.Concat - Mon, 15 June
- Joining Strings - Part 1 : The + Operator - Thu, 28 May
- Decimals, Precision And Scale - Tue, 28 April
- Controlling Creation Of .NET Core Projects - Wed, 25 March
.NET 7
.NET 9
30 Days Of .NET 6
- 30 Days Of .NET 6 - Day 30 - Simplified Argument Null Checks - Tue, 21 December
- 30 Days Of .NET 6 - Day 29 - Writing Raw JSON Using Utf8JsonWriter - Mon, 6 December
- 30 Days Of .NET 6 - Day 28 - JSON Serialization To & From Streams - Mon, 29 November
- 30 Days Of .NET 6 - Day 27 - Extended Property Patterns - Fri, 19 November
- 30 Days Of .NET 6 - Day 26 - Sealed ToString() In Records - Fri, 12 November
- 30 Days Of .NET 6 - Day 25 - Hot Reload - Tue, 9 November
- 30 Days Of .NET 6 - Day 24 - Parallel.ForEachAsync - Mon, 8 November
- 30 Days Of .NET 6 - Day 23 - Nullable References - Thu, 4 November
- 30 Days Of .NET 6 - Day 22 - LINQ Default Parameters - Tue, 2 November
- 30 Days Of .NET 6 - Day 21 - Constant Interpolated Strings - Mon, 1 November
- 30 Days Of .NET 6 - Day 20 - Json Property Ordering - Wed, 27 October
- 30 Days Of .NET 6 - Day 19 - Record Structs - Thu, 21 October
- 30 Days Of .NET 6 - Day 18 - File Scoped Namespaces - Mon, 18 October
- 30 Days Of .NET 6 - Day 17 - New Timer - PeriodicTimer - Tue, 12 October
- 30 Days Of .NET 6 - Day 16 - HTTP/3 Support - Thu, 7 October
- 30 Days Of .NET 6 - Day 15 - SOCKS Proxy Support - Tue, 5 October
- 30 Days Of .NET 6 - Day 14 - Implicit Usings - Fri, 1 October
- 30 Days Of .NET 6 - Day 13 - LINQ Improvements - Chunk - Wed, 29 September
- 30 Days Of .NET 6 - Day 12 - Collection Count Performance Improvement - Tue, 28 September
- 30 Days Of .NET 6 - Day 11 - LINQ Improvements - Range Support - Fri, 24 September
- 30 Days Of .NET 6 - Day 10 - SDK & Runtime Version Checking - Thu, 23 September
- 30 Days Of .NET 6 - Day 9 - LINQ Improvements - DistinctBy - Wed, 22 September
- 30 Days Of .NET 6 - Day 8 - Control Of Serialization Of Object Cycles - Tue, 21 September
- 30 Days Of .NET 6 - Day 7 - Simpler Web Application Development - Tue, 14 September
- 30 Days Of .NET 6 - Day 6 - Priority Queue - Mon, 13 September
- 30 Days Of .NET 6 - Day 5 - Mathematics API Additions - Fri, 10 September
- 30 Days Of .NET 6 - Day 4 - LINQ Improvements - MaxBy & MinBy - Thu, 9 September
- 30 Days Of .NET 6 - Day 3 - TimeOnly Type - Wed, 8 September
- 30 Days Of .NET 6 - Day 2 - Friendly To Newcomers - Tue, 7 September
- 30 Days Of .NET 6 - DateOnly Type - Mon, 6 September
API
ASP.NET
- Get IP Address Of Web Server From ASP.NET WebAPI EndPoint - Sun, 6 July
- Fix - Content Negotiation With Post Request - Expected a supported JSON media type but got "" - Tue, 1 April
- Improving ASP.NET Content Negotiation XML Serialization Performance Using A RecyclableMemoryStream - Fri, 21 March
- Conditionally Output CSV Using ASP.NET Minimal API - Tue, 18 March
- Conditionally Output XML Or JSON Using ASP.NET Minimal API - Mon, 17 March
- Changing The Port Of An ASP.NET Web Application Or API - Sun, 16 March
- Configuring JSON Responses With ASP.NET - Fri, 21 February
- Using Groups To Apply Common Functionality To WebAPI EndPoints - Sun, 19 January
- Downloading Files With ASP.NET Core Minimal API - Mon, 30 December
- Uploading Files With ASP.NET Core Minimal API - Sun, 29 December
- Writing Minimal APIs For HEAD Requests - Mon, 9 December
ASP.NET Core
Aes
Algorithms
Amazon
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 23 - Refactoring Amazon Storage Engine For Initialization - Fri, 30 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 21 - Testing Amazon S3 Storage Locally - Mon, 26 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 20 - Amazon S3 Storage - Sun, 25 May
- What Amazon AWS Local Zones Mean For ICT In Kenya - Mon, 18 April
Architecture
- Dependency Injection In C# & .NET Part 10 - Conclusion - Thu, 9 January
- Dependency Injection In C# & .NET Part 9 - Life Cycles - Wed, 8 January
- Dependency Injection In C# & .NET Part 8 - Types Of Dependency Injection - Tue, 7 January
- Dependency Injection In C# & .NET Part 7 - Integration Testing - Mon, 6 January
- Dependency Injection In C# & .NET Part 6 - Implementation Testing - Sun, 5 January
- Dependency Injection In C# & .NET Part 5 - Making All Implementations Available - Sat, 4 January
- Dependency Injection In C# & .NET Part 4 - Making Implementations Hot-Pluggable - Fri, 3 January
- Dependency Injection In C# & .NET Part 3 - Making Implementations Pluggable - Thu, 2 January
- Dependency Injection In C# & .NET Part 2 - Making Implementations Swappable - Wed, 1 January
- Dependency Injection In C# & .NET Part 1 - Introduction & Basic Implementation - Tue, 31 December
Art Of Software
Azure
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 22 - Refactoring Azure Storage Engine For Initialization - Thu, 29 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 19 - Testing Azure Blob Storage Locally - Mon, 5 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 18 - Azure Blob Storage - Sun, 4 May
- What Amazon AWS Local Zones Mean For ICT In Kenya - Mon, 18 April
Beware
Business Of Software
- How Long Is A String - Sun, 17 March
- Why Doesn't Windows Have A Built In Dictionary? - Tue, 16 May
- Punched In The Face Or In The Stomach - Tue, 19 July
- Conmen, Charlatans And Software Developers - Mon, 20 June
- What Amazon AWS Local Zones Mean For ICT In Kenya - Mon, 18 April
- If Your Grandmother Had Wheels - She Wouldn't Be A Bicycle - Its ALWAYS Harder Than You Think - Sat, 12 March
- Standing In A Garage Doesn't Make You A Car - Why You Cant Just "Hire Developers" - Thu, 10 February
- Coding Is Easy - Any Monkey Can Do It. Software, However Is Very Hard - Mon, 17 January
- All Sons Are Handsome; All Daughters Are Beautiful - Pitching Enterprise Software - Mon, 10 January
- About Software Bloat - Mon, 30 August
- The Value Of Good Documentation - Sat, 3 July
- On Career Progression - Tue, 22 June
- The Cost Of Adding Features To Software - Thu, 10 June
- What Do You Actually Agree To When You Accept All Cookies - Wed, 30 December
- Should all bugs be fixed? - Sun, 19 April
C#
- How To Get An Available TCP Port From The Operating System In C# & .NET - Mon, 17 November
- How To Execute Database Queries In Parallel In C# & .NET - Sun, 16 November
- Beware - Parallel.ForEach And Async Don't Play Well Together - Sat, 15 November
- How To Serialize Numbers As Strings Using System.Text.Json In C# & .NET - Fri, 14 November
- How To Deserialize Numbers Serialized As Strings Using System.Text.Json In C# & .NET - Thu, 13 November
- Using StringSplitOptions.TrimEntries To Split Strings In C# & .NET - Wed, 12 November
- C# 14, .NET 10 & Visual Studio 2026 Are Released - Tue, 11 November
- Splitting A String Into An Array In C# & .NET - Mon, 10 November
- Checking If Collection Enumeration Is Cheap In C# & .NET - Sun, 9 November
- Count vs Any To Check A If A Collection Has Elements In C# & .NET - Sat, 8 November
- Beware - Missing Serilog Entries On Application Exit - Fri, 7 November
- How To Log Complex Objects With Serilog - Thu, 6 November
- Beware - Setting A Database Timeout Of 0 Is A Bad Idea - Wed, 5 November
- How To Check If You Can Write To A File In C# & .NET - Tue, 4 November
- Using The Field Keyword In C# & .NET - Mon, 3 November
- Creating Static Extension Properties In C# & .NET - Sun, 2 November
- Creating Static Extension Methods In C# & .NET - Sat, 1 November
- Writing & Testing Code That Expects The Current Date & Time Using The TimeProvider in C# & .NET - Fri, 31 October
- Working With appsettings.json In A Team In C# & .NET - Thu, 30 October
- Using Extension Members To Add Properties To Types In C# & .NET - Tue, 28 October
- Adding Date Computations Support To DateTime In C# & .NET - Mon, 27 October
- Getting The Start and End Of The Next Year In C# & .NET - Sun, 26 October
- Getting The Start and End Of The Previous Year In C# & .NET - Sat, 25 October
- Getting The Start and End Of The Current Year In C# & .NET - Fri, 24 October
- Getting The Start and End Of The Next Quarter In C# & .NET - Thu, 23 October
- Getting The Start and End Of The Previous Quarter In C# & .NET - Wed, 22 October
- Getting The Start and End Of A Quarter In C# & .NET - Tue, 21 October
- Custom Sorting To Ignore Articles Like 'A' & 'The' In C# & .NET - Sun, 19 October
- Using Trim, TrimStart & TrimEnd In C# & .NET - Sat, 18 October
- Serializing Enums With System.Text.Json In C# & .NET - Tue, 14 October
- Getting The System Directory In C# & .NET - Sat, 11 October
- What Is The Largest Duration A TimeSpan Can Store In C# & .NET - Fri, 10 October
- Getting The System Uptime In C# & .NET - Thu, 9 October
- Writing To The Windows Event Log In C# & .NET - Wed, 8 October
- Getting The Name Of A File Without Its Extension In C# & .NET - Mon, 6 October
- How To Unit Test A Class With Options In C# & .NET - Sun, 5 October
- Getting The Time In Different Timezones In C# & .NET - Wed, 1 October
- Converting Between Calendars AKA October MOSTLY Has 31 Days - Tue, 30 September
- Correctly Getting The Number Of Days In A Month In C# & .NET - Mon, 29 September
- Getting The Number Of Days In A Month In C# & .NET - Sun, 28 September
- Generating Random Booleans In C# & .NET - Sat, 27 September
- Generating Random Unsigned 64 Bit Integers In C# & .NET - Fri, 26 September
- Generating Random Unsigned Integers In C# & .NET - Thu, 25 September
- Generating Random Values For Other Integral Types In C# & .NET - Wed, 24 September
- Generating Random 64 Bit Integers In C# & .NET - Tue, 23 September
- Random Sampling Of Arrays In C# & .NET - Sun, 21 September
- Shuffling Arrays In C# & .NET - Sat, 20 September
- Restricting Numbers To A Range In C# & .NET - Fri, 19 September
- Getting A Temporary File Name in C# & .NET - Thu, 18 September
- Documentation Needs Love - Broken Samples - Wed, 17 September
- Documentation Needs Love - Running Samples - Mon, 15 September
- Getting The Downloads Location On macOS In C# & .NET - Sun, 14 September
- Getting The Downloads Location On Windows In C# & .NET - Sat, 13 September
- .NET 10 Release Candidate Is Out - Thu, 11 September
- Changing The Decimal Separator In C# & .NET - Wed, 10 September
- Why Is September Shortened As Sept And Not Sep - Tue, 9 September
- Sep Is The Short Date Format For September. Sometimes - Mon, 8 September
- Getting the Version of Kibana Connected in C# & .NET - Sun, 7 September
- Getting the Version of ElasticSearch Connected in C# & .NET - Sat, 6 September
- Getting the Version of Redis Connected Without Admin Access in C# & .NET - Fri, 5 September
- Getting the Version of Redis Connected in C# & .NET - Thu, 4 September
- Other RabbitMQ IConnection Server Properties - Wed, 3 September
- Getting the Version of RabbitMQ Connected in C# & .NET - Tue, 2 September
- Sending Email In C# & .NET - Part 16 - Testing SMTP Locally Using Mailpit - Sun, 31 August
- Sending Email In C# & .NET - Part 15 - Sending Calendar Invites Using MailKit - Sat, 30 August
- Sending Email In C# & .NET - Part 14 - Sending Multiple Format Email Using MailKit - Fri, 29 August
- Sending Email In C# & .NET - Part 13 - Sending Email With Inline Attachments Using MailKit - Thu, 28 August
- Sending Email In C# & .NET - Part 12 - Sending Email With Attachments Using MailKit - Wed, 27 August
- Sending Email In C# & .NET - Part 11 - Sending HTML Email Using MailKit - Tue, 26 August
- Sending Email In C# & .NET - Part 10 - Sending Plain Text Email Using MailKit - Mon, 25 August
- Working With Dates In Multiple Locale Formats Simultaneously - Sat, 23 August
- The Difference Between String.Format and ToString - Wed, 20 August
- Adding Ordinal Support To DateTime Format Strings In C# & .NET - Tue, 19 August
- Displaying Ordinal Words In C# & .NET - Mon, 18 August
- Displaying Ordinal Numbers In C# & .NET - Sun, 17 August
- Tip - DriveInfo.AvailableFreeSpace vs DriveInfo.TotalFreeSpace - Fri, 15 August
- Getting Available Free Space On Drives In C# & .NET - Thu, 14 August
- Class That Stores Multiple Named, Typed Generic Lists - Improvement - Wed, 13 August
- Class That Stores Multiple Named, Typed Generic Lists - Tue, 12 August
- Repeat - xUnit Attribute to Run Tests Multiple Times - Mon, 11 August
- Building A Simple Password Generator In C# & .NET - Part 7 - Generating Multiple Passwords - Sun, 10 August
- Building A Simple Password Generator In C# & .NET - Part 6 - Updating Console UI For Memorable Password Generation - Sat, 9 August
- Building A Simple Password Generator In C# & .NET - Part 5 - Generating Memorable Passwords - Fri, 8 August
- Building A Simple Password Generator In C# & .NET - Part 4 - Generating Human Readable Passwords - Thu, 7 August
- Building A Simple Password Generator In C# & .NET - Part 3 - Advanced UI With Spectre.Console - Wed, 6 August
- Building A Simple Password Generator In C# & .NET - Part 2 - Novice UI With Spectre.Console - Tue, 5 August
- Building A Simple Password Generator In C# & .NET - Part 1 - Mon, 4 August
- Generating A Cryptographically Random String in C# & .NET - Sun, 3 August
- Generating A Random String In C# & .NET - Sat, 2 August
- Adding Items To An Existing List In C# & .NET - Fri, 1 August
- Reclaiming Memory From Lists In C# & .NET - Thu, 31 July
- Mutative vs Non-Mutative List Manipulation In C# & .NET - Wed, 30 July
- Considerations When Adding Items To A List In C# & .NET - Tue, 29 July
- Sending Email In C# & .NET - Part 9 - Sending Multiple Format Email Using SMTP - Mon, 28 July
- Sending Email In C# & .NET - Part 8 - Sending HTML Email Using SMTP - Sun, 27 July
- Sending Email In C# & .NET - Part 7 - Sending Inline Images Using SMTP - Sat, 26 July
- Tip - Auto Fit Columns For DevExpress XtraTreeList - Fri, 25 July
- Displaying User-Friendly TimeSpans In C# & .NET - Thu, 24 July
- Updating Your Installed .NET Project Templates - Wed, 23 July
- Sending Email In C# & .NET - Part 6 - Testing SMTP Locally Using PaperCut - Tue, 22 July
- Sending Email In C# & .NET - Part 5 - Using Google Cloud API - Mon, 21 July
- Sending Email In C# & .NET - Part 4 - Using Office 365 & MS Graph API - Sun, 20 July
- Sending Email In C# & .NET - Part 3 - Using Gmail - Sat, 19 July
- Sending Email In C# & .NET - Part 2 - Delivery - Fri, 18 July
- Sending Email In C# & .NET - Part 1 - Introduction - Thu, 17 July
- Pet Peeve - Properly Pluralizing Counts In C# & .NET - Wed, 16 July
- Determining The Number Of Processors In C# & .NET - Tue, 15 July
- How to Wait in C# & .NET - Mon, 14 July
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 24 - Google Cloud Storage - Sun, 13 July
- Programmatically Checking If There Are Messages In The EasyNetQ Error Queue In C# & .NET - Sat, 12 July
- Deleting A RabbitMQ Queue In C# & .NET - Fri, 11 July
- Determining The Architecture Of An Emulated 32 Bit Running Process In .NET On Windows - Thu, 10 July
- Determining If A Running Process Is Emulated 32 Bit In .NET On Windows - Wed, 9 July
- Determining If A Running Process Is 64 Bit In .NET - Tue, 8 July
- Disable SSL Certificate Validation in .NET for Specific Requests - Mon, 7 July
- Get IP Address Of Web Server From ASP.NET WebAPI EndPoint - Sun, 6 July
- Controlling The Casing Of Submitted Request Headers In C# & .NET - Fri, 4 July
- Writing Debugger-Friendly Objects in C# & .NET - Thu, 3 July
- Quickly generating A Voice Prompt on Windows - Wed, 2 July
- Quickly Generating a Voice Prompt on macOS - Tue, 1 July
- Overriding Package Versions When Using .NET Centralized Package Management - Sun, 29 June
- Connecting to Secured RabbitMQ Over SSL in C# With EasyNetQ - Thu, 26 June
- Arithmetic In C# Using Hex Numbers - Tue, 24 June
- Interpolating C# Raw String Literals - Mon, 23 June
- Programmatically Adding DevExpress Menu Bar Menu Items - Wed, 18 June
- Looping Through DevExpress Menu Bar Menu Items - Tue, 17 June
- Locale Considerations When Parsing Dates - Mon, 16 June
- Don't Parse - TryParse - Sun, 15 June
- Generating and Using Directory.Packages.props file - Fri, 13 June
- Generating and Using a Directory.Build.props file - Thu, 12 June
- What does EnsureSuccessStatusCode do? - Wed, 11 June
- Setting Timeouts for HttpClient Requests - Tue, 10 June
- C# Dictionary Usage Optimizations - TryGet - Sun, 8 June
- C# Dictionary Usage Optimizations - TryAdd - Sat, 7 June
- Required DevExpress References For XtraReports Document Generation And Printing - Fri, 6 June
- How to Deserialize JSON Using HttpClient Using C# In .NET - Thu, 5 June
- Avoid Noisy Exception Logging - Wed, 4 June
- Exposing Collections As Read-Only In C# & .NET - Tue, 3 June
- Using the Generic Math Interface in C# & .NET - Mon, 2 June
- Swapping Variables In C# With ValueTuples - Sat, 31 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 23 - Refactoring Amazon Storage Engine For Initialization - Fri, 30 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 22 - Refactoring Azure Storage Engine For Initialization - Thu, 29 May
- Calling Async Methods In Constructors In C# - Wed, 28 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 21 - Testing Amazon S3 Storage Locally - Mon, 26 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 20 - Amazon S3 Storage - Sun, 25 May
- Using Tuples in Deconstructors - Sat, 24 May
- Not All .NET Exceptions Can Be Caught - The Case Of StackOverflow - Fri, 23 May
- About Tuples & Value Tuples - Thu, 22 May
- LINQ Single and First Are Not Interchangeable - Sun, 18 May
- Order of Settings Precedence for .NET Applications - Fri, 16 May
- Format Strings for Display of Zeros - Thu, 15 May
- Overriding appsettings.json via Environment Variables - Wed, 14 May
- Overriding appsettings.json Via Command Line - Tue, 13 May
- Setting the Staging & Production Environments During Development - Sun, 11 May
- Flexible Leveraging of appsettings.json in .NET Applications - Sat, 10 May
- Computing SHA256 & Other Checksums In C# & .NET - Thu, 8 May
- Dapper Part 16 - Consideration When Passing Parameters - Wed, 7 May
- Tip - Command Text & Stored Procedure Specification In Dapper - Tue, 6 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 19 - Testing Azure Blob Storage Locally - Mon, 5 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 18 - Azure Blob Storage - Sun, 4 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 17 - Large File Consideration On PostgreSQL - Sat, 3 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 15 - Test Organization - Thu, 1 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 10 - In Memory Storage - Sat, 26 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 9 - Encryptor Implementation - Fri, 25 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 8 - Compressor Implementation - Thu, 24 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 7 - Sequence Verification With Moq - Wed, 23 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 6 - Mocking & Behaviour Tests - Tue, 22 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 5 - Component Implementation - Mon, 21 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 4 - Types & Contracts - Sun, 20 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 3 - Project Setup - Sat, 19 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 2 - Basic Requirements - Fri, 18 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 1 - Introduction - Thu, 17 April
- Resolve IPAddress From Domain In C# - Wed, 16 April
- Beware - Environment.NewLine Is Not A Silver Bullet - Mon, 14 April
- Using State Machines In .NET - Part 12 - State Activation & Entry - Wed, 9 April
- Tip - Initialzing Large Arrays With A Known Value - Tue, 8 April
- Using State Machines In .NET - Part 11 - Logic Based On How A State Was Transitioned - Mon, 7 April
- Using State Machines In .NET - Part 10 - Generating State Diagrams - Sun, 6 April
- Using State Machines In .NET - Part 9 - Calling Asynchronous Methods - Sat, 5 April
- Using State Machines In .NET - Part 8 - Firing Events Before State Change - Wed, 2 April
- Using State Machines In .NET - Part 7 - Conditional State Transitions - Mon, 31 March
- Using State Machines In .NET - Part 6 - Firing Events On State Change - Sun, 30 March
- Tip - Adding Projects To Solutions Via Command Line - Sat, 29 March
- Using State Machines In .NET - Part 5 - Using Complex & Nested States - Fri, 28 March
- Using State Machines In .NET - Part 4 - Using Multiple Triggers - Thu, 27 March
- Using State Machines In .NET - Part 3 - Setting Initial State - Wed, 26 March
- Using State Machines In .NET - Part 2 - Basic Usage - Tue, 25 March
- Using State Machines In .NET - Part 1 - Introduction - Mon, 24 March
- Collection Expressions & Dictionaries - Sun, 23 March
- Threading Issue When Populating MemoryCache - Sat, 22 March
- Improving ASP.NET Content Negotiation XML Serialization Performance Using A RecyclableMemoryStream - Fri, 21 March
- Conditionally Output CSV Using ASP.NET Minimal API - Tue, 18 March
- Conditionally Output XML Or JSON Using ASP.NET Minimal API - Mon, 17 March
- Changing The Port Of An ASP.NET Web Application Or API - Sun, 16 March
- Controlling Publishing Of Satellite Resource Assemblies - Sat, 15 March
- Beware - Order Of DataTable Column Definitions Matters For User Defined Table Type Mapping - Thu, 13 March
- Dapper Part 15 - Using the IN Clause - Wed, 12 March
- Dapper Part 14 - Multithreading - Tue, 11 March
- Dapper Part 13 - Using Transactions - Mon, 10 March
- Dapper Part 12 - Alternative Bulk Insert Technique - Sat, 8 March
- Dapper Part 11 - Using Inheritance - Fri, 7 March
- Dapper Part 10 - Handling Cancellations - Thu, 6 March
- Dapper Part 9 - Using Dynamic Types - Wed, 5 March
- Dapper Part 8 - Controlling Database Timeouts - Tue, 4 March
- Dapper Part 7 - Adding DateOnly & TimeOnly Support - Mon, 3 March
- Dapper Part 6 - Returning Multiple Sets Of Results - Sun, 2 March
- Dapper Part 5 - Passing Data In Bulk To The Database - Sat, 1 March
- Dapper Part 4 - Passing Data To And From The Database - Fri, 28 February
- Dapper Part 3 - Executing Queries - Thu, 27 February
- Dapper Part 2 - Querying The Database - Wed, 26 February
- Simpler .NET Data Access With Dapper - Part 1 - Tue, 25 February
- Using Case Insensitive Dictionary Keys In C# & .NET - Sat, 22 February
- Configuring JSON Responses With ASP.NET - Fri, 21 February
- Enums & Enum Flags In C# & .NET For Dummies - Thu, 20 February
- Some Useful Integer Helper Methods In .NET - Wed, 19 February
- View Request & Response Headers For HTTP Requests In C# & .NET - Sun, 16 February
- Using Frozen Collections For Immutability - Sat, 15 February
- Getting The Executing .NET Version - Fri, 14 February
- Determining The Largest (& Smallest) Values For Numeric Types In .NET - Thu, 13 February
- Using Base64 To Encode Binary Data - Wed, 12 February
- Is That String Null, Empty, Or WhiteSpace? - Tue, 11 February
- Executing Actions In Parallel With Parallel.Invoke - Mon, 10 February
- Immutable Types In C# & .NET - Sun, 9 February
- Pipelining Task Results With Task.WhenEach - Sat, 8 February
- Parallelizing Work With C# & .NET - Fri, 7 February
- Using LINQ OfType To Filter Collections By Type - Thu, 6 February
- Using Deconstructors In C# - Wed, 5 February
- Using LINQ Repeat To Generate Copies Of Objects - Tue, 4 February
- Using LINQ Concat To Merge Collections - Mon, 3 February
- Using LINQ UnionBy To Merge Collections - Sun, 2 February
- Scheduling Tasks With The PeriodicTimer - Sat, 1 February
- Beware - Mapping Classes With ReadOnly Properties Using Dapper With VB.NET, C# & F# - Fri, 31 January
- Lazy Initialization With System.Lazy - Thu, 30 January
- Using Indexes With LINQ - Wed, 29 January
- Set Operations With LINQ - Tue, 28 January
- Using LINQ Zip To Combine Collections - Mon, 27 January
- Using LINQ Aggregate & AggregateBy To Perform Aggregate Computations - Sun, 26 January
- Using LINQ SelectMany To Flatten Collections - Sat, 25 January
- Using LINQ GroupJoin To Perform Grouped Joins - Fri, 24 January
- Performance Issues With Guid Primary Keys - Tue, 21 January
- Using A LINQ Pipeline To Solve Problems - Mon, 20 January
- Using Groups To Apply Common Functionality To WebAPI EndPoints - Sun, 19 January
- Primary Constructors - And Their Pitfalls - Fri, 17 January
- Locale & Culture Support For Kenyan Languages In .NET - Wed, 15 January
- Validating .NET Settings Part 4 - Validating Using IValidateOptions - Tue, 14 January
- Validating .NET Settings Part 3 - Validating Using Data Annotations - Mon, 13 January
- Validating .NET Settings Part 2 - Validating Using FluentValidation - Sun, 12 January
- Validating .NET Settings Part 1 - Manual Validation - Sat, 11 January
- Unit Testing Fractional Values In C# & .NET - Fri, 10 January
- Dependency Injection In C# & .NET Part 10 - Conclusion - Thu, 9 January
- Dependency Injection In C# & .NET Part 9 - Life Cycles - Wed, 8 January
- Dependency Injection In C# & .NET Part 8 - Types Of Dependency Injection - Tue, 7 January
- Dependency Injection In C# & .NET Part 7 - Integration Testing - Mon, 6 January
- Dependency Injection In C# & .NET Part 6 - Implementation Testing - Sun, 5 January
- Dependency Injection In C# & .NET Part 5 - Making All Implementations Available - Sat, 4 January
- Dependency Injection In C# & .NET Part 4 - Making Implementations Hot-Pluggable - Fri, 3 January
- Dependency Injection In C# & .NET Part 3 - Making Implementations Pluggable - Thu, 2 January
- Dependency Injection In C# & .NET Part 2 - Making Implementations Swappable - Wed, 1 January
- Dependency Injection In C# & .NET Part 1 - Introduction & Basic Implementation - Tue, 31 December
- Downloading Files With ASP.NET Core Minimal API - Mon, 30 December
- Uploading Files With ASP.NET Core Minimal API - Sun, 29 December
- Correctly Getting The Week Number In C# - Sat, 28 December
- Using The Lock In C# & .NET 9 - Fri, 27 December
- Correctly Processing CSV Files In C# & .NET - Wed, 25 December
- Check If You Have The Latest .NET SDK - Tue, 24 December
- Advanced Customization Of The Display Of Dates In C# - Mon, 23 December
- Caching In .NET Applications & The Hybrid Cache - Sun, 22 December
- Using The u8 String Literal - Sat, 21 December
- How To Work With Different Numbering Systems In C# - Fri, 20 December
- Customizing Object Equality In C# & .NET - Thu, 19 December
- Using AggregateBy In C# & .NET 9 - Wed, 18 December
- Checking Collections Have The Same Elements - Tue, 17 December
- Handing JSON Deserialization In The Wild - Mon, 16 December
- Using LINQ CountBy In .NET 9 - Sat, 14 December
- Determining The Number Of Days In A Year In C# - Fri, 13 December
- Loading & Using Application Settings In .NET - Wed, 11 December
- Writing Minimal APIs For HEAD Requests - Mon, 9 December
- Sending & Receiving JSON With A HttpClient In C# - Sun, 8 December
- Sending a HTTP HEAD Request With A HttpClient In C# - Sat, 7 December
- Required Properties vs Constructors In Domain Objects - Fri, 6 December
- Ordered Dictionary Improvements In .NET 9 - Thu, 5 December
- Removing Items From A Priority Queue - Wed, 4 December
- Using LINQ Index - Tue, 3 December
- Truncating Numbers In C# - Thu, 28 November
- Storing Common Application Settings For A .NET Application In MacOS OSX - Mon, 25 November
- Pretty Printing Unformatted Json In C# - Sun, 24 November
- Determining The Operating System C# .NET Program Is Running Under - Sat, 23 November
- Running Multiple .NET Versions In MacOS OSX - Fri, 22 November
- A Rose By Any Other Name - Short Circuiting - Wed, 5 June
- Using Inheritance With FluentValidation - Sat, 6 April
- Correctly Setting HttpClient BaseAddress - Sun, 17 March
- Tip - Don't Log Exceptions With Log.Information - Fri, 23 February
- Defining Relationships With Enum Attributes For Enum Values In C# - Fri, 18 August
- Tip - Using JsonSerializationOptions With Refit - Wed, 2 August
- Fix - HttpClient Changes Case Of x-request-id Header - Fri, 21 July
- Projecting Named Tuples In Entity Framework Core - Mon, 17 July
- Writing Maintainable, Testable Code That Depends On The Current Time - Wed, 3 May
- How To Use C# List Pattern Matching Practically - Tue, 28 March
- Building Directory Paths In C# - Tue, 14 February
- Writing A Custom DateOnly JSON Deserializer - Tue, 13 December
- Handling Null And Empty Strings With System.Text.Json - Part 2 - Mon, 21 November
- Required Keyword In C# 11 & .NET 7 - Sat, 12 November
- Microsecond Precision In .NET - Sat, 15 October
- How To Order Classes And Records In C# - Fri, 14 October
- Tip - Simpler LINQ Ordering In .NET 7 - Thu, 13 October
- Tip - Using LINQ To Filter A List Of Strings Containing Words In Another List - Tue, 4 October
- Building URLs In C# Without Concatenation Or Interpolation - Mon, 15 August
- Using HttpClient To Post JSON In C# & .NET - Mon, 1 August
- Beware - Mapping Inherited Immutable Classes Using Dapper - Wed, 25 May
- Fix - SSL Provider, error 0 - The certificate chain was issued by an authority that is not trusted - Mon, 16 May
- About curl And PowerShell - Tue, 10 May
- Adding Multiple Items To A HashSet In C# - Thu, 28 April
- Tip - HttpUtility.UrlEncode vs WebUtility.UrlEncode - Thu, 7 April
- Cleaner Code With Switch Expressions In C# - Tue, 29 March
- Maintainability Of Code - Fri, 11 March
- 30 Days Of .NET 6 - Day 30 - Simplified Argument Null Checks - Tue, 21 December
- 30 Days Of .NET 6 - Day 29 - Writing Raw JSON Using Utf8JsonWriter - Mon, 6 December
- 30 Days Of .NET 6 - Day 28 - JSON Serialization To & From Streams - Mon, 29 November
- 30 Days Of .NET 6 - Day 27 - Extended Property Patterns - Fri, 19 November
- 30 Days Of .NET 6 - Day 26 - Sealed ToString() In Records - Fri, 12 November
- 30 Days Of .NET 6 - Day 25 - Hot Reload - Tue, 9 November
- .NET 6 Release - Tue, 9 November
- 30 Days Of .NET 6 - Day 24 - Parallel.ForEachAsync - Mon, 8 November
- 30 Days Of .NET 6 - Day 23 - Nullable References - Thu, 4 November
- 30 Days Of .NET 6 - Day 22 - LINQ Default Parameters - Tue, 2 November
- 30 Days Of .NET 6 - Day 21 - Constant Interpolated Strings - Mon, 1 November
- 30 Days Of .NET 6 - Day 20 - Json Property Ordering - Wed, 27 October
- Saving Collections Of Primitives In Entity Framework Core - Thu, 21 October
- 30 Days Of .NET 6 - Day 19 - Record Structs - Thu, 21 October
- .NET 6 Release Candidate 2 Out - Mon, 18 October
- 30 Days Of .NET 6 - Day 18 - File Scoped Namespaces - Mon, 18 October
- 30 Days Of .NET 6 - Day 17 - New Timer - PeriodicTimer - Tue, 12 October
- 30 Days Of .NET 6 - Day 16 - HTTP/3 Support - Thu, 7 October
- Installing .NET 6 On Linux - Thu, 7 October
- 30 Days Of .NET 6 - Day 15 - SOCKS Proxy Support - Tue, 5 October
- 30 Days Of .NET 6 - Day 14 - Implicit Usings - Fri, 1 October
- 30 Days Of .NET 6 - Day 13 - LINQ Improvements - Chunk - Wed, 29 September
- 30 Days Of .NET 6 - Day 12 - Collection Count Performance Improvement - Tue, 28 September
- 30 Days Of .NET 6 - Day 11 - LINQ Improvements - Range Support - Fri, 24 September
- 30 Days Of .NET 6 - Day 10 - SDK & Runtime Version Checking - Thu, 23 September
- 30 Days Of .NET 6 - Day 9 - LINQ Improvements - DistinctBy - Wed, 22 September
- 30 Days Of .NET 6 - Day 8 - Control Of Serialization Of Object Cycles - Tue, 21 September
- .NET 6 Release Candidate 1 Out - Tue, 21 September
- 30 Days Of .NET 6 - Day 7 - Simpler Web Application Development - Tue, 14 September
- 30 Days Of .NET 6 - Day 6 - Priority Queue - Mon, 13 September
- 30 Days Of .NET 6 - Day 5 - Mathematics API Additions - Fri, 10 September
- 30 Days Of .NET 6 - Day 4 - LINQ Improvements - MaxBy & MinBy - Thu, 9 September
- 30 Days Of .NET 6 - Day 3 - TimeOnly Type - Wed, 8 September
- 30 Days Of .NET 6 - Day 2 - Friendly To Newcomers - Tue, 7 September
- 30 Days Of .NET 6 - DateOnly Type - Mon, 6 September
- Tip - Get Current Date In C# - Sat, 7 August
- Reducing Bugs And Improving Maintainability Through Better Domain Design - Thu, 29 July
- Tip - TimeSpan Minutes vs TotalMinutes - Fri, 11 June
- About Default Interface Impementations - Mon, 24 May
- The Other Integer Types - Mon, 24 May
- Fix For The string argument propertyNames cannot be empty - Sun, 25 April
- Fix For Cannot use LINQ in MatchCollection Regex with .NET Standard 2 - Wed, 10 March
- Handling Null And Empty Strings With System.Text.Json - Tue, 9 March
- Inheritance In Business Logic Is Likely A Code Smell - Part 1 - Sat, 6 March
- Handling Exceptions With Refit - Sun, 28 February
- Fix - error CS8805 Program using top-level statements must be an executable - Wed, 10 February
- Improving HttpClient Requests - Mon, 21 December
- Beware of HttpClient Header Validations - Mon, 14 December
- Remote Debugging In VS Code - Thu, 3 December
- HTTP Redirects Using HttpClient - Mon, 23 November
- Refactoring With Records In C# - Sat, 21 November
- Getting Now Playing Information From WQXR In .NET - Mon, 9 November
- Posting Messages To Microsoft Teams With Code - Wed, 4 November
- Disable SSL Certificate Validation In .NET - Sat, 31 October
- Querying & Extracing Data From YouTrack - Fri, 30 October
- Count vs Length vs Any - Checking Collection Emptiness - Tue, 14 April
- Properties Under The Hood - Fri, 10 April
- Arguments Handling Across Paradigms - Sun, 5 April
- Fun With Tuples In C# 7 & Above - Sat, 21 March
- AsReadOnly() May Not Be Doing What You Think! - Wed, 11 March
CSV
CSVHelper
Caching
Career
Carter
Compression
Configuration
Dapper
- Beware - Setting A Database Timeout Of 0 Is A Bad Idea - Wed, 5 November
- Determining the Operating System SQL Server Is Running On Remotely - Wed, 21 May
- Dapper Part 16 - Consideration When Passing Parameters - Wed, 7 May
- Tip - Command Text & Stored Procedure Specification In Dapper - Tue, 6 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Dapper Part 15 - Using the IN Clause - Wed, 12 March
- Dapper Part 14 - Multithreading - Tue, 11 March
- Dapper Part 13 - Using Transactions - Mon, 10 March
- Dapper Part 12 - Alternative Bulk Insert Technique - Sat, 8 March
- Dapper Part 11 - Using Inheritance - Fri, 7 March
- Dapper Part 10 - Handling Cancellations - Thu, 6 March
- Dapper Part 9 - Using Dynamic Types - Wed, 5 March
- Dapper Part 8 - Controlling Database Timeouts - Tue, 4 March
- Dapper Part 7 - Adding DateOnly & TimeOnly Support - Mon, 3 March
- Dapper Part 6 - Returning Multiple Sets Of Results - Sun, 2 March
- Dapper Part 5 - Passing Data In Bulk To The Database - Sat, 1 March
- Dapper Part 4 - Passing Data To And From The Database - Fri, 28 February
- Dapper Part 3 - Executing Queries - Thu, 27 February
- Dapper Part 2 - Querying The Database - Wed, 26 February
- Simpler .NET Data Access With Dapper - Part 1 - Tue, 25 February
- Beware - Mapping Classes With ReadOnly Properties Using Dapper With VB.NET, C# & F# - Fri, 31 January
- Beware - Mapping Inherited Immutable Classes Using Dapper - Wed, 25 May
Data
Data Structures
Database
- How To Execute Database Queries In Parallel In C# & .NET - Sun, 16 November
- Beware - Parallel.ForEach And Async Don't Play Well Together - Sat, 15 November
- Tip - Disappeared Database Objects In DataGrip - Sat, 16 August
- Dapper Part 16 - Consideration When Passing Parameters - Wed, 7 May
- Dapper Part 15 - Using the IN Clause - Wed, 12 March
- Dapper Part 14 - Multithreading - Tue, 11 March
- Dapper Part 13 - Using Transactions - Mon, 10 March
- Dapper Part 12 - Alternative Bulk Insert Technique - Sat, 8 March
- Dapper Part 11 - Using Inheritance - Fri, 7 March
- Dapper Part 10 - Handling Cancellations - Thu, 6 March
- Dapper Part 9 - Using Dynamic Types - Wed, 5 March
- Dapper Part 8 - Controlling Database Timeouts - Tue, 4 March
- Dapper Part 7 - Adding DateOnly & TimeOnly Support - Mon, 3 March
- Dapper Part 6 - Returning Multiple Sets Of Results - Sun, 2 March
- Dapper Part 5 - Passing Data In Bulk To The Database - Sat, 1 March
- Dapper Part 4 - Passing Data To And From The Database - Fri, 28 February
- Dapper Part 3 - Executing Queries - Thu, 27 February
- Dapper Part 2 - Querying The Database - Wed, 26 February
- Simpler .NET Data Access With Dapper - Part 1 - Tue, 25 February
- Performance Issues With Guid Primary Keys - Tue, 21 January
Dates
- Using Extension Members To Add Properties To Types In C# & .NET - Tue, 28 October
- Adding Date Computations Support To DateTime In C# & .NET - Mon, 27 October
- Getting The Start and End Of The Next Year In C# & .NET - Sun, 26 October
- Getting The Start and End Of The Previous Year In C# & .NET - Sat, 25 October
- Getting The Start and End Of The Current Year In C# & .NET - Fri, 24 October
- Getting The Start and End Of The Next Quarter In C# & .NET - Thu, 23 October
- Getting The Start and End Of The Previous Quarter In C# & .NET - Wed, 22 October
- Getting The Start and End Of A Quarter In C# & .NET - Tue, 21 October
- Converting Between Calendars AKA October MOSTLY Has 31 Days - Tue, 30 September
- Correctly Getting The Number Of Days In A Month In C# & .NET - Mon, 29 September
- Getting The Number Of Days In A Month In C# & .NET - Sun, 28 September
Dates & Times
Design
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 24 - Google Cloud Storage - Sun, 13 July
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 23 - Refactoring Amazon Storage Engine For Initialization - Fri, 30 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 22 - Refactoring Azure Storage Engine For Initialization - Thu, 29 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 21 - Testing Amazon S3 Storage Locally - Mon, 26 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 20 - Amazon S3 Storage - Sun, 25 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 19 - Testing Azure Blob Storage Locally - Mon, 5 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 18 - Azure Blob Storage - Sun, 4 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 17 - Large File Consideration On PostgreSQL - Sat, 3 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 15 - Test Organization - Thu, 1 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 10 - In Memory Storage - Sat, 26 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 9 - Encryptor Implementation - Fri, 25 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 8 - Compressor Implementation - Thu, 24 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 7 - Sequence Verification With Moq - Wed, 23 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 6 - Mocking & Behaviour Tests - Tue, 22 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 5 - Component Implementation - Mon, 21 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 4 - Types & Contracts - Sun, 20 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 3 - Project Setup - Sat, 19 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 2 - Basic Requirements - Fri, 18 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 1 - Introduction - Thu, 17 April
- Required Properties vs Constructors In Domain Objects - Fri, 6 December
- Writing Maintainable, Testable Code That Depends On The Current Time - Wed, 3 May
- Maintainability Of Code - Fri, 11 March
- Reducing Bugs And Improving Maintainability Through Better Domain Design - Thu, 29 July
- Using System.Text.Json To Enforce API Logic - Sat, 20 March
- Inheritance In Business Logic Is Likely A Code Smell - Part 1 - Sat, 6 March
DevExpress
Did You Know
Docker
Documentation
Domain Design
- Dependency Injection In C# & .NET Part 10 - Conclusion - Thu, 9 January
- Dependency Injection In C# & .NET Part 9 - Life Cycles - Wed, 8 January
- Dependency Injection In C# & .NET Part 8 - Types Of Dependency Injection - Tue, 7 January
- Dependency Injection In C# & .NET Part 7 - Integration Testing - Mon, 6 January
- Dependency Injection In C# & .NET Part 6 - Implementation Testing - Sun, 5 January
- Dependency Injection In C# & .NET Part 5 - Making All Implementations Available - Sat, 4 January
- Dependency Injection In C# & .NET Part 4 - Making Implementations Hot-Pluggable - Fri, 3 January
- Dependency Injection In C# & .NET Part 3 - Making Implementations Pluggable - Thu, 2 January
- Dependency Injection In C# & .NET Part 2 - Making Implementations Swappable - Wed, 1 January
- Customizing Object Equality In C# & .NET - Thu, 19 December
EasyNetQ
ElasticSearch
Email
- Sending Email In C# & .NET - Part 16 - Testing SMTP Locally Using Mailpit - Sun, 31 August
- Sending Email In C# & .NET - Part 15 - Sending Calendar Invites Using MailKit - Sat, 30 August
- Sending Email In C# & .NET - Part 14 - Sending Multiple Format Email Using MailKit - Fri, 29 August
- Sending Email In C# & .NET - Part 13 - Sending Email With Inline Attachments Using MailKit - Thu, 28 August
- Sending Email In C# & .NET - Part 12 - Sending Email With Attachments Using MailKit - Wed, 27 August
- Sending Email In C# & .NET - Part 11 - Sending HTML Email Using MailKit - Tue, 26 August
- Sending Email In C# & .NET - Part 10 - Sending Plain Text Email Using MailKit - Mon, 25 August
- Sending Email In C# & .NET - Part 9 - Sending Multiple Format Email Using SMTP - Mon, 28 July
- Sending Email In C# & .NET - Part 8 - Sending HTML Email Using SMTP - Sun, 27 July
- Sending Email In C# & .NET - Part 7 - Sending Inline Images Using SMTP - Sat, 26 July
- Sending Email In C# & .NET - Part 6 - Testing SMTP Locally Using PaperCut - Tue, 22 July
- Sending Email In C# & .NET - Part 5 - Using Google Cloud API - Mon, 21 July
- Sending Email In C# & .NET - Part 4 - Using Office 365 & MS Graph API - Sun, 20 July
- Sending Email In C# & .NET - Part 3 - Using Gmail - Sat, 19 July
- Sending Email In C# & .NET - Part 2 - Delivery - Fri, 18 July
- Sending Email In C# & .NET - Part 1 - Introduction - Thu, 17 July
Encryption
Entity Framework Core
Epiphanies
EventLog
Excel
F#
- Updating Your Installed .NET Project Templates - Wed, 23 July
- F# Discriminated Unions & Their Benefits - Sat, 14 June
- Swapping Variables in F# - Sun, 1 June
- Beware - Mapping Classes With ReadOnly Properties Using Dapper With VB.NET, C# & F# - Fri, 31 January
- Random Sampling In F# - Mon, 2 December
- Choosing From A Collection In F# - Sun, 1 December
- Improved Collection Shuffling In F# - Fri, 29 November
- Beware - F# Doesn't Support C# Types Using Init Modifiers - Fri, 2 July
- Extracting Bytes From A F# String - Sat, 25 April
- Arguments Handling Across Paradigms - Sun, 5 April
- FizzBuzz In F# - Wed, 1 April
- Using Nuget In F# Scripts - Sun, 29 March
Fails
Fixes
- Fix - Homebrew Httpie Command not found - Mon, 9 June
- Fix - Visual Studio Code Auto-Creates A Solution File - Thu, 23 January
- Fix - Python - Warning- Ignoring Invalid Distribution - Wed, 25 May
- Fix - SSL Provider, error 0 - The certificate chain was issued by an authority that is not trusted - Mon, 16 May
- Fix - Docker For Windows Not Running - Wed, 9 June
- Fix For The string argument propertyNames cannot be empty - Sun, 25 April
- Fix For Cannot use LINQ in MatchCollection Regex with .NET Standard 2 - Wed, 10 March
- Fix - error CS8805 Program using top-level statements must be an executable - Wed, 10 February
- Fix For Entity Framework Core Not Generating Indexes & Constraints - Thu, 14 January
- Fix For Entity Framework Tools Error - Tue, 12 January
- Fix For pgAdmin Not Loading - Mon, 11 January
FluentAssertions
FluentValidation
GZip
Git
Gitlab
Globalization
Google
Google Cloud
Google GCP
Homebrew
HttpClient
- Disable SSL Certificate Validation in .NET for Specific Requests - Mon, 7 July
- Controlling The Casing Of Submitted Request Headers In C# & .NET - Fri, 4 July
- What does EnsureSuccessStatusCode do? - Wed, 11 June
- Sending & Receiving JSON With A HttpClient In C# - Sun, 8 December
- Sending a HTTP HEAD Request With A HttpClient In C# - Sat, 7 December
- Correctly Setting HttpClient BaseAddress - Sun, 17 March
- Fix - HttpClient Changes Case Of x-request-id Header - Fri, 21 July
- Improving HttpClient Requests - Mon, 21 December
- Beware of HttpClient Header Validations - Mon, 14 December
- HTTP Redirects Using HttpClient - Mon, 23 November
- Getting Now Playing Information From WQXR In .NET - Mon, 9 November
Human Nature
Humanizer
Insomnia
IntelliJ
Internationalization
Interop
JSON
Java
Jekyll
Json
LINQ
- Using LINQ Repeat To Generate Copies Of Objects - Tue, 4 February
- Using LINQ Concat To Merge Collections - Mon, 3 February
- Using LINQ UnionBy To Merge Collections - Sun, 2 February
- Using Indexes With LINQ - Wed, 29 January
- Set Operations With LINQ - Tue, 28 January
- Using LINQ Zip To Combine Collections - Mon, 27 January
- Using LINQ Aggregate & AggregateBy To Perform Aggregate Computations - Sun, 26 January
- Using LINQ SelectMany To Flatten Collections - Sat, 25 January
- Using LINQ GroupJoin To Perform Grouped Joins - Fri, 24 January
- Using A LINQ Pipeline To Solve Problems - Mon, 20 January
- Using AggregateBy In C# & .NET 9 - Wed, 18 December
- Using LINQ CountBy In .NET 9 - Sat, 14 December
- Using LINQ Index - Tue, 3 December
- How To Order Classes And Records In C# - Fri, 14 October
- Tip - Simpler LINQ Ordering In .NET 7 - Thu, 13 October
- Tip - Using LINQ To Filter A List Of Strings Containing Words In Another List - Tue, 4 October
- Tip - Grouping Correctly In LINQ With VB.NET - Sun, 2 October
- Fix For Cannot use LINQ in MatchCollection Regex with .NET Standard 2 - Wed, 10 March
Languages
LazyCache
Libraries
LinqPad
Linux
Lisp
Localization
Logging
MSBuild
MacOS
MailKit
Maintainability
Markdown
MemoryCache
Meta
Microsoft Graph
Microsoft Teams
Minimal API
Moq
NET
NUnit
Networking
News
Nuget
OSX
Office
OpenSource
- Building A Simple Password Generator In C# & .NET - Part 7 - Generating Multiple Passwords - Sun, 10 August
- Building A Simple Password Generator In C# & .NET - Part 6 - Updating Console UI For Memorable Password Generation - Sat, 9 August
- Building A Simple Password Generator In C# & .NET - Part 5 - Generating Memorable Passwords - Fri, 8 August
- Building A Simple Password Generator In C# & .NET - Part 4 - Generating Human Readable Passwords - Thu, 7 August
- Building A Simple Password Generator In C# & .NET - Part 3 - Advanced UI With Spectre.Console - Wed, 6 August
- Building A Simple Password Generator In C# & .NET - Part 2 - Novice UI With Spectre.Console - Tue, 5 August
- Building A Simple Password Generator In C# & .NET - Part 1 - Mon, 4 August
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 24 - Google Cloud Storage - Sun, 13 July
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 23 - Refactoring Amazon Storage Engine For Initialization - Fri, 30 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 22 - Refactoring Azure Storage Engine For Initialization - Thu, 29 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 21 - Testing Amazon S3 Storage Locally - Mon, 26 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 20 - Amazon S3 Storage - Sun, 25 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 19 - Testing Azure Blob Storage Locally - Mon, 5 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 18 - Azure Blob Storage - Sun, 4 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 17 - Large File Consideration On PostgreSQL - Sat, 3 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 15 - Test Organization - Thu, 1 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 10 - In Memory Storage - Sat, 26 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 9 - Encryptor Implementation - Fri, 25 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 8 - Compressor Implementation - Thu, 24 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 7 - Sequence Verification With Moq - Wed, 23 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 6 - Mocking & Behaviour Tests - Tue, 22 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 5 - Component Implementation - Mon, 21 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 4 - Types & Contracts - Sun, 20 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 3 - Project Setup - Sat, 19 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 2 - Basic Requirements - Fri, 18 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 1 - Introduction - Thu, 17 April
People
Performance
Personal Development
PostgreSQL
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 17 - Large File Consideration On PostgreSQL - Sat, 3 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Fix For pgAdmin Not Loading - Mon, 11 January
PowerShell
- How To Get The PowerShell Version - Tue, 18 November
- Getting the Operating System Platform in PowerShell - Tue, 7 October
- Why Doesn't PowerShell Use < and > For Less Than & Greater Than? - Sat, 4 October
- Getting A Constant Value From A .NET Executable in PowerShell - Fri, 3 October
- Getting The Current Path Of An Executing PowerShell Script - Thu, 2 October
- Verifying File Hashes With PowerShell (Update) - Wed, 13 March
- Sending Teams Messages Using PowerShell - Thu, 29 July
- Using Curl In PowerShell - Tue, 19 May
- Touch In PowerShell - Sat, 16 May
- Getting Your Internet IP Address - Sat, 11 April
- Verifying File Hashes With PowerShell - Thu, 19 March
- Copy SSH Key In Windows 10 - Mon, 9 March
PowerUser
Python
REST
RabbitMQ
RaspberryPI
Records
RedGate
Redis
Refit
Regex
Rider
Ruby
SQL
SQL Server
- Check SQL Server Edition in T-SQL - Fri, 17 October
- Check SQL Server Version in T-SQL - Thu, 16 October
- Disconnecting All Connected Users from a SQL Server Database - Wed, 15 October
- About The SQL Server 2025 Editions - Mon, 13 October
- About The SQL Server 2022 Editions - Sun, 12 October
- Querying SQL Server For A List of Views - Sun, 22 June
- Querying SQL Server For A List of Tables - Sat, 21 June
- Querying SQL Server For A List of Functions - Fri, 20 June
- Querying SQL Server For A List of Stored Procedures - Thu, 19 June
- Renaming A SQL Server Database - Tue, 27 May
- Determining the Operating System SQL Server Is Running On Remotely - Wed, 21 May
- SQL Server Delete Backup & Restore Database Information - Tue, 20 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Beware - Order Of DataTable Column Definitions Matters For User Defined Table Type Mapping - Thu, 13 March
- Beware - Handling Of 2 Digit Years In SQL Server T-SQL - Thu, 26 December
- Accessing SQL Server Configuration Manager - Mon, 22 May
- How To Index A NVarchar(MAX) Column In SQL Server - Sat, 26 November
- Enabling TCP/IP For SQL Server - Sat, 19 November
- Tip - SQL Server Management Studio - Constructing Dates - Mon, 24 October
- Tip - SQL Server Management Studio - Reorder Lines - Thu, 20 October
- Tip - SQL Server Management Studio - Duplicate Tab - Mon, 17 October
- Tip - SQL Server Management Studio - Server Colouring - Mon, 17 October
- Tip - SQL Server Management Studio - Reorder Results - Mon, 17 October
- Fix - SSL Provider, error 0 - The certificate chain was issued by an authority that is not trusted - Mon, 16 May
- Using 'TRUE' and 'FALSE' For Bit Types In SQL Server - Sat, 12 March
- Tip - SQL Server User Defined Table Types - Column Order Matters - Wed, 24 November
- Decimals, Precision And Scale - Tue, 28 April
SQL Server 2022
SQL Server 2025
SQL Server Management Studio
Security
Serilog
Settings
Shell
Software
Source Control
Spectre.Console
StackExchange.Redis
StarLibrary
- Sending Email In C# & .NET - Part 15 - Sending Calendar Invites Using MailKit - Sat, 30 August
- Sending Email In C# & .NET - Part 14 - Sending Multiple Format Email Using MailKit - Fri, 29 August
- Sending Email In C# & .NET - Part 13 - Sending Email With Inline Attachments Using MailKit - Thu, 28 August
- Sending Email In C# & .NET - Part 12 - Sending Email With Attachments Using MailKit - Wed, 27 August
- Sending Email In C# & .NET - Part 11 - Sending HTML Email Using MailKit - Tue, 26 August
- Sending Email In C# & .NET - Part 10 - Sending Plain Text Email Using MailKit - Mon, 25 August
- Displaying Ordinal Words In C# & .NET - Mon, 18 August
- Displaying Ordinal Numbers In C# & .NET - Sun, 17 August
- Building A Simple Password Generator In C# & .NET - Part 7 - Generating Multiple Passwords - Sun, 10 August
- Building A Simple Password Generator In C# & .NET - Part 6 - Updating Console UI For Memorable Password Generation - Sat, 9 August
- Building A Simple Password Generator In C# & .NET - Part 5 - Generating Memorable Passwords - Fri, 8 August
- Building A Simple Password Generator In C# & .NET - Part 4 - Generating Human Readable Passwords - Thu, 7 August
- Building A Simple Password Generator In C# & .NET - Part 3 - Advanced UI With Spectre.Console - Wed, 6 August
- Building A Simple Password Generator In C# & .NET - Part 2 - Novice UI With Spectre.Console - Tue, 5 August
- Displaying User-Friendly TimeSpans In C# & .NET - Thu, 24 July
- Pet Peeve - Properly Pluralizing Counts In C# & .NET - Wed, 16 July
- Tip - Command Text & Stored Procedure Specification In Dapper - Tue, 6 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 8 - Compressor Implementation - Thu, 24 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 7 - Sequence Verification With Moq - Wed, 23 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 6 - Mocking & Behaviour Tests - Tue, 22 April
- Using State Machines In .NET - Part 12 - State Activation & Entry - Wed, 9 April
- Using State Machines In .NET - Part 11 - Logic Based On How A State Was Transitioned - Mon, 7 April
- Using State Machines In .NET - Part 10 - Generating State Diagrams - Sun, 6 April
- Using State Machines In .NET - Part 9 - Calling Asynchronous Methods - Sat, 5 April
- AwesomeAssertions - Drop-In Replacement For FluentAssertions - Fri, 4 April
- Using State Machines In .NET - Part 8 - Firing Events Before State Change - Wed, 2 April
- Using State Machines In .NET - Part 7 - Conditional State Transitions - Mon, 31 March
- Using State Machines In .NET - Part 6 - Firing Events On State Change - Sun, 30 March
- Using State Machines In .NET - Part 5 - Using Complex & Nested States - Fri, 28 March
- Using State Machines In .NET - Part 4 - Using Multiple Triggers - Thu, 27 March
- Using State Machines In .NET - Part 3 - Setting Initial State - Wed, 26 March
- Using State Machines In .NET - Part 2 - Basic Usage - Tue, 25 March
- Using State Machines In .NET - Part 1 - Introduction - Mon, 24 March
- Threading Issue When Populating MemoryCache - Sat, 22 March
- Improving ASP.NET Content Negotiation XML Serialization Performance Using A RecyclableMemoryStream - Fri, 21 March
- Conditionally Output CSV Using ASP.NET Minimal API - Tue, 18 March
- Conditionally Output XML Or JSON Using ASP.NET Minimal API - Mon, 17 March
- Correctly Getting The Week Number In C# - Sat, 28 December
- Correctly Processing CSV Files In C# & .NET - Wed, 25 December
Stateless
- Using State Machines In .NET - Part 12 - State Activation & Entry - Wed, 9 April
- Using State Machines In .NET - Part 11 - Logic Based On How A State Was Transitioned - Mon, 7 April
- Using State Machines In .NET - Part 10 - Generating State Diagrams - Sun, 6 April
- Using State Machines In .NET - Part 9 - Calling Asynchronous Methods - Sat, 5 April
- Using State Machines In .NET - Part 8 - Firing Events Before State Change - Wed, 2 April
- Using State Machines In .NET - Part 7 - Conditional State Transitions - Mon, 31 March
- Using State Machines In .NET - Part 6 - Firing Events On State Change - Sun, 30 March
- Using State Machines In .NET - Part 5 - Using Complex & Nested States - Fri, 28 March
- Using State Machines In .NET - Part 4 - Using Multiple Triggers - Thu, 27 March
- Using State Machines In .NET - Part 3 - Setting Initial State - Wed, 26 March
- Using State Machines In .NET - Part 2 - Basic Usage - Tue, 25 March
- Using State Machines In .NET - Part 1 - Introduction - Mon, 24 March
System.Text.Json
T-SQL
TSQL
Teams
Terminal
TestContainers
Testing
- Repeat - xUnit Attribute to Run Tests Multiple Times - Mon, 11 August
- Awesome Assertions Update - Namespace Change In Version 9 - Wed, 25 June
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 17 - Large File Consideration On PostgreSQL - Sat, 3 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 16 - Large File Consideration - Fri, 2 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 15 - Test Organization - Thu, 1 May
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 14 - Virtualizing Infrastructure - Wed, 30 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 13 - Database Configuration - Tue, 29 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 12 - PostgreSQL Storage - Mon, 28 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 11 - SQL Server Storage - Sun, 27 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 10 - In Memory Storage - Sat, 26 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 9 - Encryptor Implementation - Fri, 25 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 8 - Compressor Implementation - Thu, 24 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 7 - Sequence Verification With Moq - Wed, 23 April
- Designing, Building & Packaging A Scalable, Testable .NET Open Source Component - Part 6 - Mocking & Behaviour Tests - Tue, 22 April
- Using Serilog & Structured Logging In Testing - Part 3 - Testing Log Messages - Sun, 13 April
- Using Serilog & Structured Logging In Testing - Part 2 - Configuring Logging Destinations - Sat, 12 April
- Using Serilog & Structured Logging In Testing - Part 1 - Logging Test Output - Fri, 11 April
- AwesomeAssertions - Drop-In Replacement For FluentAssertions - Fri, 4 April
- FluentAssertions - A Pragmatic Roadmap To What Next - Wed, 22 January
- Evaluating Multiple Test Assertions At Once With FluentAssertions - Sat, 18 January
- There Be Dragons - FluentAssertions 8 New Licensing - Thu, 16 January
- Unit Testing Fractional Values In C# & .NET - Fri, 10 January
- Better Assertion Testing With FluentAssertions - Sun, 25 July
Text To Speech
The Business Of Software
Threading
Time
Tips
- Tip - Disappeared Database Objects In DataGrip - Sat, 16 August
- Tip - DriveInfo.AvailableFreeSpace vs DriveInfo.TotalFreeSpace - Fri, 15 August
- Tip - Auto Fit Columns For DevExpress XtraTreeList - Fri, 25 July
- Tip - Adding Projects To Solutions Via Command Line - Sat, 29 March
- Verifying File Hashes With PowerShell (Update) - Wed, 13 March
- Tip - Don't Log Exceptions With Log.Information - Fri, 23 February
- Tip - Fluent Validation With Null Values - Thu, 6 July
- Tip - SQL Server Management Studio - Constructing Dates - Mon, 24 October
- Tip - SQL Server Management Studio - Reorder Lines - Thu, 20 October
- Tip - SQL Server Management Studio - Duplicate Tab - Mon, 17 October
- Tip - SQL Server Management Studio - Server Colouring - Mon, 17 October
- Tip - SQL Server Management Studio - Reorder Results - Mon, 17 October
- Tip - Simpler LINQ Ordering In .NET 7 - Thu, 13 October
- Tip - Using LINQ To Filter A List Of Strings Containing Words In Another List - Tue, 4 October
- Tip - Grouping Correctly In LINQ With VB.NET - Sun, 2 October
- Tip - HttpUtility.UrlEncode vs WebUtility.UrlEncode - Thu, 7 April
- Tip - Updating The Nuget Client - Thu, 31 March
- Tip - Get Current Date In C# - Sat, 7 August
- Tip - Locating Commands In The Path On Windows - Mon, 14 June
- Tip - TimeSpan Minutes vs TotalMinutes - Fri, 11 June
- Tip - Making Use Of Windows Terminal Tab Captions - Tue, 4 May
- Remember To Encode QueryString Data - Tue, 2 February
- Be Clearer With TimeSpans - Tue, 2 February
- Extracting Bytes From A F# String - Sat, 25 April
Tools
UI
UI Fails
UX
Under The Hood
VB.NET
VBScript
VS Code
Validation
Visual Studio
Visual Studio Code
WSL
WebAPI
Windows
- Writing To The Windows Event Log In C# & .NET - Wed, 8 October
- Fare Thee Well, VBScript - Fri, 12 September
- Determining The Architecture Of An Emulated 32 Bit Running Process In .NET On Windows - Thu, 10 July
- Determining If A Running Process Is Emulated 32 Bit In .NET On Windows - Wed, 9 July
- Quickly generating A Voice Prompt on Windows - Wed, 2 July
- Creating Files Like .gitconfig In Windows - Fri, 27 June
- Stop Press - Running Linux GUI Applications In Windows - Mon, 28 November
- Linux Tools Packaged With Windows - Wed, 25 May
- Jekyll, Ruby & OpenSSH - Wed, 27 May
Windows Terminal
XML
XUnit
XtraReports
YouTrack
xUnit