Archive (162 posts)
2023
- Span / Memory / ReadOnlySequence in C#
- Time abstraction in .NET 8
- New Terminal logger for .NET 8
- nameof get's a bit better in C# 12
- How does TryGetNonEnumeratedCount work?
- 6 useful extensions for IEnumerable
- Some cool things you can do with ValueTuple
- Becoming a Microsoft MVP
- Entity Framework and ordered indexes
- Controlling the log level of your application
- Verifying your DI Container
- Create your own Validationattribute in ASP.NET Core
- Domain events and the "Unit of Work" pattern
- Covariance and Contravariance in C#
- .NET 8 Performance Edition
- 5 useful extensions for Task<T> in .NET
- Source Generators and Regular Expressions
- LINQ on steroids with SIMD
- Creating a ToolTip Component in Blazor
- C# Source Generators: How to get build information?
- Leverage 'is not' Operator for Exception Filtering!
- Caching in .NET with MemoryCache
- Write your own AutoMapper in C#
- LINQ // Skip and Take
- How to write your own cron Job scheduler in ASP.NET Core (like Quartz, Hangfire, ...)
- Benchmarking - A matter of perspective
- Is a square a rectangle? Liskov substitution principle in action
- The Humble Object Pattern
- Performance (ReadOnly)List vs Immutable collection types
- From Testing Pyramid to Diamond
- Getting git version information in your C# code
- error NETSDK1194: The "--output" option isn't supported when building a solution.
- A (performance) quirk with JsonSerializer
- What is a Middleware and how to use it in ASP.NET Core?
- Multi-Tenancy with RavenDB and ASP.NET Core
- C# Language Mind map
- Repository Pattern - A controversy explained
- Native DateOnly and TimeOnly support in Entity Framework 8 in SQL Server
- C# Lowering
- Deep nesting - Why and how to avoid
- C# 12: Primary Constructors
- Cohesion - An indicator for refactoring
- Entity Framework 8: Raw SQL queries on unmapped types
- Easy Pagination for Entity Framework in 3 steps
- No, No, No - Tasks are not threads and they are not for performance!
- Using GitHub as your portfolio
- .NET Tips and Tricks & ValueStringBuilder
- Give your strings context with StringSyntaxAttribute
2022
- C# 12: Default Parameters in Lambdas
- ReadOnlySpan<char> and strings - How not to compare them
- Structure and order your DI container
- Array, List, Collection, Set, ReadOnlyList - what? A comprehensive and exhaustive list of collection-like types
- Simple DI - Container
- Delete a record without prior loading in Entity Framework
- ChatGPT - Current state for .NET - and in general
- Check for elevated rights in .NET 8
- Abstraction vs Encapsulation
- How to enumerate through a StringBuilder
- New ArgumentException and ArgumentOutOfRangeException helpers in .NET 8
- A new wave of analyzers in .NET 8
- Frozen collections in .NET 8
- "Use always a StringBuilder" - Internet myths
- How to get allocations in .NET? And how big is an empty array?
- Anonymous test data with AutoFixture
- Design patterns explained with sketches
- Mutable value types are evil! Sort of...
- Marking API's as obsolete or as experimental
- Infographics Compendium III - Exceptions, EF Sanitized, Operators, ...
- local functions vs lambda expressions
- Throwing exceptions - Why is my stack trace lost?
- LiteDB - A .NET embedded NoSQL database
- Cursed C# - Doing shenanigans in C#
- Infographics Compendium II - ThrowHelper, null Task and more
- Low-level struct improvements in C# 11
- How does the key exchange in HTTPS work?
- Introduction to WebApplicationFactory
- Infographics Compendium I - Generators, pure functions and more
- x86 vs x64 in .NET
- Pattern matching is awesome
- How does Pagination work?
- Blazor Project Structure
- Memory is complicated
- ASP.NET Core - Why async await is useful
- LINQ explained with sketches - the eBook
- EF7 - Bulk updates and Bulk deletes
- NDepend
- LINQ explained with sketches
- Mediator Pattern - CQRS with MediatR
- Logging Source Code Generators
- Git-Flow, GitHub-Flow, Gitlab-Flow and Trunk Based Development explained
- Blazor Client - Loading Screen
- How does git work?
- Abstract class vs interface
- SOLID Principles in C#
- C# vNext - What could come
- Central nuget store for your UNO Platform App
- When does Blazor (not) render?
- Wrap Event based functions into awaitable Tasks - Meet TaskCompletionSource
- goto in action - The exception from the rule
- What is the difference between C#, .NET, IL and JIT?
- Delegate, Action, Func, Lambda expression - What the heck!?
- The garbage collector in .NET - Part 2: Compacting
- ObjectPool - Rent and return some instances
- Blazor with an RSS Feed
- How to unit test a RavenDB
- The garbage collector in .NET
- Blazor with CancellationToken support
- Stop using Finalizers in C#
- Tail-Recursion - Explained with the Fibonacci series
- Why are sealed classes faster in C#? And should I seal them?
- Passing by value or by reference - What is faster?
- ReadOnlyCollection is not an immutable collection
- Is public const bad?
- Modal Dialog component with Bootstrap in Blazor
- 4 Different ways of creating an array
- default(MyStruct) vs new MyStruct() - what is the difference?
- From Zero to Production - Generate everything with a single button
- struct vs readonly struct vs ref struct vs record struct
- Create a low allocation and faster StringBuilder - Span in Action
- Reusable loading Bar Component in Blazor
- UNO Platform - Build a Todo App - Part 5
- UNO Platform - Build a Todo App - Part 4
- The Trie - A powerful data structure
- UNO Platform - Build a Todo App - Part 3
- UNO Platform - Build a Todo App - Part 2
- UNO Platform - Build a Todo App - Part 1
- Using SSE in C# on the example of the sum of a list
- Decorator Pattern using the example of a cached repository
- RequiredIf - Extend the validation in Blazor
- Directory.Build.props - Centralize your builds
- DebuggerTypeProxy - Displaying complex states in the debugger
- Blazor Performance Tuning - Good practices and advanced use cases
- Heap, Stack, Boxing and Unboxing, Performance ... let's order things!
- Prerendering Blazor Apps - How does it work / tips and tricks
- Enum.Equals - Performance analysis
- Lazy load components with Blazor - Virtualize in Action
2021
- Generator-Function in C# - What does yield do?
- Task vs ValueTask - The what's, when's and how's
- Lifetime Scope in Blazor Client and Server Apps
- Branch Prediction - How much does an if cost?
- ILGPU - Processing Data on your GPU (CUDA / OpenCL in C#)
- static abstract interfaces and generic math
- A better enumeration - Type safe from start to end
- git hook - prefix your commit message with your JIRA ticket
- API Versioning in ASP.NET Core made easy
- git - useful aliases
- IEnumerable vs IQueryable - What's the difference
- How to hunt down bugs with git bisect
- How to rebase onto a different branch with git
- Tactical Design Patterns in C# - Part 1: Creational
- struct Performance
- Shorts: foreach on type without IEnumerable
- Task.WhenAny - How to cancel other tasks
- A story about boxing / unboxing and string interpolation in C#
- EF Core 6 - New Features
- Tutorial Unit and E2E Testing in Blazor - Part 2 Playwright Introduction
- Quickly asked: Should I use unsigned integers (uint, uint8, ...) in C#?
- Async Await Pitfalls / Guidelines - .NET User Group Zurich Presentation
- Tutorial Unit and E2E Testing in Blazor - Part 1
- Blazor Improvements in .NET 6
- Upcoming .NET User Forum Zurich / 6th July 2021
- My first Post