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.
Author: David (dotNetDave) McCarter
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.

You must be logged in to post a comment.