dotNetDave Rocks SpiceWorld – Austin 2026

The dotNetDave No Rest for the Wicked World Tour arrives in Austin on November 13, 2026, during SpiceWorld, featuring a session titled "Röck Yoür Cäreer." Attendees can expect valuable insights from a seasoned software engineer, focusing on building sustainable tech careers, developing learning habits, and balancing work-life without compromising growth.

Boost Your .NET Projects with Spargine: Simplify Thread Pool Execution with ThreadPoolHelper

Spargine's ThreadPoolHelper simplifies concurrent execution in .NET applications by providing reusable APIs that manage thread pool operations. It supports single and batch operations, bounded concurrency, timeout management, cooperative cancellation, and non-throwing execution. By centralizing common patterns, ThreadPoolHelper enhances maintainability and reduces repetitive infrastructure code for developers.

Collection Performance: Use Caution when using Range Expressions in Hot Paths when Collection Slicing

Range expressions make collection slicing concise, but they can introduce unexpected overhead in hot paths. This subscriber-only article compares several ways to create slices with `Memory`, `Span`, `ReadOnlyMemory`, and `ReadOnlySpan.

Boost Your .NET Projects with Spargine: Simplify Entity Framework Core with DbContextExtensions

DbContextExtensions, part of the DotNetTips.Spargine.Extensions project, offers reusable methods for common Entity Framework Core data-access patterns. It reduces repetitive code and enhances consistency by providing methods for adding, deleting, and managing entities, executing transactions, and performing existence checks. This centralization minimizes maintenance costs and improves code clarity.

Collection Performance: Sort List Faster with CollectionsMarshal.AsSpan()

To sort a List efficiently, use CollectionsMarshal.AsSpan() to access its internal storage, then apply the Sort() function.

Boost Your .NET Networking with Spargine: SocketExtensions That Röck

Spargine's SocketExtensions simplifies .NET socket programming by offering reusable extension methods that enhance control over networking tasks. It reduces boilerplate code related to port binding, buffer configuration, keep-alive settings, and timeouts. This package streamlines socket operations, making code cleaner and easier to maintain for various applications.

General Performance: Object Initializers – Readability Versus Performance

The post discusses two methods for initializing objects in C#: traditional property assignment and object initializers. While the traditional method is slightly faster, object initializers enhance code readability. It recommends using object initializers for maintainability, reserving traditional assignments for performance-critical scenarios where benchmarks indicate a significant advantage.

Boost Your .NET Projects with Spargine: Human-Friendly Encoding with Crockford Base32

Crockford Base32, created by Douglas Crockford, is a human-friendly encoding method designed to represent binary data clearly, minimizing character confusion. It excludes easily mistaken characters, offers case-insensitive decoding, and avoids padding. Available in Spargine's DotNetTips.Spargine.Core, it simplifies generating identifiers and codes for improved readability and communication.

.NET Threads: The Performance Trap Hiding in Your Code

Creating background tasks in .NET applications is crucial to maintain responsiveness. While dedicated threads can be used, they incur significant overhead.

P/Invoke Showdown: [DllImport] vs. [LibraryImport] in Modern .NET

Is [LibraryImport] always faster than [DllImport]? Not necessarily. I benchmarked both across native Windows API calls, string marshalling, handles, out parameters, and allocation-heavy scenarios. The results may surprise you.