A replacement for BinaryFormatter in .NET 8
Explores alternatives to the deprecated BinaryFormatter in .NET 8, focusing on JSON and MessagePack for object serialization.
Steven Giesel is a Senior Software Engineer and Microsoft MVP with over 13 years of experience, specializing in .NET and modern backend development. He shares deep technical knowledge across topics such as C#, EF Core, RavenDB, distributed systems, and cloud-native architectures, and is an active speaker in the .NET community.
323 articles from this blog
Explores alternatives to the deprecated BinaryFormatter in .NET 8, focusing on JSON and MessagePack for object serialization.
A critique of AutoMapper for C# object mapping, advocating for compile-time source generators like Mapperly as a simpler, more maintainable alternative.
Explores how const strings in C# can be modified using unsafe code and string interning, despite being compile-time constants.
A technical guide on implementing a lock-free ring buffer in C# for asynchronous logging, explaining its benefits and providing sample code.
Introduces the new System.Threading.Lock type in .NET 9, a dedicated lock type that aims to be more explicit and potentially faster than using a plain object with the lock keyword.
Explores the potential new 'params collections' feature in C# 13, allowing the params keyword to be used with collection types beyond arrays.
Introduces bUnit Generators, a tool for automatically creating stubs for third-party components in Blazor unit tests.
Explains how to store complex objects and lists as JSON in databases using Entity Framework 8 and 7, including configuration and benefits.
Explores creating a .NET 8 interceptor for bUnit to auto-generate stubs for Blazor components, improving unit testing.
Explains how to use Enhanced Form Navigation in Blazor .NET 8 for SPA-like form handling without full interactivity modes.
Explains the enhanced logging features in .NET 8, focusing on the improved LoggerMessageAttribute and source generators for better performance and readability.
An interactive LINQ tutorial for C# beginners using a visual marble-based learning tool to understand query operators.
Explains how to implement the Redux state management pattern in a Blazor application, covering actions, reducers, and side effects.
Explores a C# technique to allocate class instances on the stack using unsafe code, comparing performance and limitations.
Explains C# 8's default interface methods, including how to define private methods within an interface and their usage.
A tutorial on integrating TailwindCSS with Blazor, covering setup, configuration, and automating CSS generation during the build process.
Explains the concept of Structured Concurrency for robust async code and demonstrates a potential C# implementation using a TaskScope.
Explores .NET 8's new Blazor Web template, unifying server and WebAssembly models with per-component server-side rendering.
A .NET developer shares technical interview questions focused on C#, SOLID principles, async/await, and database queries to assess problem-solving skills.
Explains how C# 12's new primary constructor feature reduces boilerplate code, especially in Dependency Injection scenarios.