Sign in

Oleg Kyrylchuk 🇺🇦

@okyrylchuk.dev
1.2K followers 120 following 505 posts

.NET Enthusiast Newsletter okyrylchuk.dev Help for Ukraine ko-fi.com/okyrylchuk or paypal.me/okyrylchuk

PostsRepliesMedia
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 14/12/2025
What’s next for the .NET Pulse Newsletter? You may have noticed it has been a while since the last .NET Pulse issue. Over the past year, a lot has changed for me: I stepped into a Tech Lead role and had a very active sports season, completing three triathlons and a trail run.
130
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 18/11/2025
C# 14 introduces user-defined compound assignment operators. In previous versions, you could not overload the += operator. C# 14 allows user types to customize the behavior of compound assignment operators in a way that the target of the assignment is modified in-place.
031
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 16/10/2025
C# 14 in the preview introduces the field keyword. It lets you write a property accessor body without declaring an explicit backing field. The compiler will replace the field keyword with a backing field. What do you think about this improvement?
060
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 15/10/2025
C# 14 in the preview introduces partial constructors and events. They must include exactly one defining declaration and one implementing declaration. The implementation declaration of a partial event must include add and remove accessors.
151
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 14/10/2025
C# 14 in the preview allows an unbound generic type as an argument to nameof. For example, nameof(List<>) returns List. Previously, you could pass only closed generic types, such as List<int>, to return List.
010
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 13/10/2025
C# 14 in the preview allows the null conditional member access operator on the left-hand side of an assignment. Previously, you had to check if the customer was null before assigning the order. In C# 14, the GetCurrentOrder method is not called if the customer is null.
2245
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 12/10/2025
C# 14 in the preview introduces extension members There is a new extension keyword that lets you define extension blocks for extension properties, methods, and operators This means you can group related extension members, enhancing code readability and maintainability Do you like the new feature?
1155
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 11/07/2025
🎉 I'm incredibly honored to receive the Microsoft Most Valuable Professional award for the 4th time in the Developer Technologies category! I’m looking forward to another exciting year in the MVP program, continuing to learn, share, and grow with this amazing community.
0120
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 08/05/2025
C# 14 in the preview allows the null conditional member access operator on the left-hand side of an assignment. Previously, you had to check if the customer was null before assigning the order. In C# 14, the GetCurrentOrder method is not called if the customer is null.
131
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 06/05/2025
C# 14 in the preview allows an unbound generic type as an argument to nameof. For example, nameof(List<>) returns List. Previously, you could pass only closed generic types, such as List<int>, to return List.
160
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 30/04/2025
Since .NET 5, ASP NET Core has built-in support for the Swashbuckle project (Swagger). ASP NET Core 9 removes Swashbuckle from the template. However, the .NET team added support for OpenAPI document generation. The AddOpenApi method registers the required dependencies.
130
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 23/04/2025
C# 14 in the preview introduces the field keyword. It lets you write a property accessor body without declaring an explicit backing field. The compiler will replace the field keyword with a backing field. What do you think about this improvement?
130
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 18/04/2025
#1 How to Avoid Common EF Core Performance Pitfalls Entity Framework Core is one of the most popular ORMs in the .NET ecosystem, for good reason. It abstracts away the complexity of working with databases, allowing developers to focus on business logic rather than SQL queries.
140
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 13/04/2025
System.Text.Json 9 introduces respecting required constructor parameters. You can control the behavior with the new RespectRequiredConstructorParameters JSON serialization option. If it's true, the serializer throws the JsonException for missing required properties.
120
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 10/04/2025
When should you implement API versioning? The short answer is that as soon as your API is consumed by more than just yourself. This Friday, I'll show you how to manage API Versioning Like A Pro in ASP NET Core. Don’t miss out! Subscribe now! The link is in the comments.
130
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 09/04/2025
“Fan out” refers to distributing or spreading functionality or data flow from a single point to multiple points. In messaging systems, it means to send one message to many recipients.  Check my post to learn how easily to fan out HTTP requests in .NET. Link in the comments.
110
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 08/04/2025
.NET 9 introduces the new LINQ method CountBy. It allows for calculating the frequency of a key. This improvement looks nice. What do you think?
261
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 07/04/2025
.NET 9 introduces a new GUID implementation based on timestamp and random. It makes GUID sequential, which makes it more suitable for relationship databases. Also, GUID gets the Version property to check the version of the created GUID.
161
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 05/04/2025
How do you check if a list is not null and has elements? There are several ways to do it: 1. Classic way 2. List.Count way 3. Enumerable.Any way 4. Pattern matching way Which one do you prefer — or do you use a different approach? Let me know in the comments! 👇
720
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 02/04/2025
How to control the delay in the Task.Delay method in tests? You can pass the TimeProvider to the Task.Delay method since .NET 8. The TimeProvider will interpret the delay. You can use FakeTimeProvider to control the delay in tests.
160
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 01/04/2025
C# Tip 💡 Use string.Join method to concatenate elements of a collection into a single string, inserting a specified separator between each element. ✔ More readable — No loops ✔ Better performance — Avoids unnecessary string allocations ✔ Less error-prone — No need to trim the last separator
161
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 31/03/2025
The OrderedDictionary type has existed in .NET since an early age. .NET 9 introduces the generic counterpart. It creates a dictionary where the order of key-value pairs can be maintained. Have you ever used OrderedDictionary?
241
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 27/03/2025
1. This Friday, .NET Pulse is diving into something we’ve all been waiting for — the Azure Service Bus Emulator! For years, testing Azure Service Bus locally meant relying on cloud instances, costly workarounds, or incomplete mocks. But not anymore!
122
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 25/03/2025
ASP NET Core 9 allows the disabling of HTTP metrics and the non-recording of values for specific endpoints and requests. For instance, automated systems check the Health endpoint, so recording metrics for it is not particularly helpful.
290
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 05/03/2025
Pattern matching is handy in C#. The Type pattern tests the variable to see if it matches a given type. The Declaration pattern checks if the variable matches the type and assigns the result to a declared variable. Do you use these patterns?
230
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 04/03/2025
My favorite C# 12 feature: collection expressions! 🚀 A terse way to initialize collections, working with arrays, Span<T>, and more. The .. spread operator lets you inline collections easily. Do you like it?
370
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 03/03/2025
.NET 10 Preview 1 is now available! 🤓 Follow me if you want to be updated with new .NET 10 features. If you want more detailed .NET 10 features, consider subscribing to my newsletter! Link in the comments.
110
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 02/03/2025
.NET 9 introduces CreateUnboundedPrioritized in System.Threading.Channels! Unlike FIFO channels, it dequeues the most prioritized element using Comparer<T>.Default or a custom IComparer<T> first. Do you use channels? For what use cases?
240
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 01/03/2025
A disrespectful attack on President Zelenskyy by the US President and Vice President. Ukraine must sign the second Budapest Memorandum without any security guarantees this time because Trump promised to finish the war, but doesn't have an idea how Victim blaming. putin is happy
0100
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 01/03/2025
.NET8 introduces the new methods in the Random class. The GetItems method creates an array populated with randomly chosen items from the provided choices. The Shuffle method performs an in-place shuffle of an array or span. Have you used these methods yet?
181
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 27/02/2025
🎉 To celebrate the 50th edition of .NET Pulse, I’m sharing a special issue: "How to Become a Microsoft MVP: My Path and Tips for You." Stay tuned this Friday! 🚀 Subscription link in the comments ⬇️
140
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 24/02/2025
System.Text.Json 9 introduces a new JsonStringEnumMemberName attribute. It allows customizing enum member names.
120
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 23/02/2025
🔥 20% OFF Until February 🔥 A few weeks ago, I launched the sponsorship of the .NET Pulse newsletter. You can promote your service/product to 2,820+ confirmed subscribers. There is a special offer until February. Book your slots in March. Details are below⬇️
100
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 20/02/2025
Tired of messy constructors with too many parameters? The Builder Pattern in C# helps construct complex objects step by step, making your code more readable and maintainable. Learn how to implement it in this Friday’s .NET Pulse! Link for subscription in the comments ⬇️
120
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 18/02/2025
C# 13 introduces params collections. Previously, it was limited only to array types. You can now use params with any collection type, including Span<T> and ReadOnlySpan<T>. The compiler automatically allocates storage for the arguments when an interface type is used.
393
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 15/02/2025
.NET Tip💡 Use structured logging in .NET to make your logs more searchable, filterable, and analyzable. Structured logs store data as key-value pairs instead of plain text messages, making it easy to query logs. Avoid string interpolation for logging for performance reasons. 👇
192
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 14/02/2025
C# Tip 💡 The nameof expression in C# is useful for obtaining the name of variables, properties, methods, and classes as a string at compile time. It helps avoid hardcoded string literals, improving maintainability and refactoring safety
162
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 13/02/2025
This Friday's issue is about Background Services in .NET! Learn how to run long-running tasks and process jobs in the background efficiently. 🔹 What are background services? 🔹 How to implement them in .NET? 🔹 Common use cases & best practices Make sure you're subscribed so you don’t miss it!
110
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 12/02/2025
For read-only scenarios, you should use the AsNoTracking behavior in EF Core. You can set it to: 1. Query 2. Context 3. All queries Such queries will be faster because EF doesn't set up information for tracking Use the AsTracking method for queries you want to track in the third case.
130
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 10/02/2025
.NET 9 introduces the new LINQ method Index. It returns the implicit index of an enumerable. Would you use it?
120
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 06/02/2025
🚀 Coming This Friday: How to Standardize Code Formatting in .NET with .editorconfig. Are you struggling with inconsistent code styles across your team? This Friday, the .NET Pulse newsletter dives into the .editorconfig file. Don't miss it, and subscribe. The link is below.
130
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 01/02/2025
C# Tip ✅ Always include the original exception when re-throwing to preserve the stack trace. If you just need to re-throw, use throw; without ex;
172
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 30/01/2025
Are you tired of switching between Postman and your IDE to test APIs? This Friday in .NET Pulse, we’re exploring .http files, an easy way to send API requests directly from VS Code, Visual Studio, and Rider. Join over 2,710 engineers reading .NET Pulse. Link below ⬇️
171
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 23/01/2025
Coming this Friday: The latest .NET Pulse newsletter! This week, we’re talking about the Decorator Pattern: 🎨 What it is ⚙️ How to implement it in .NET 📦 Use cases Make your code cleaner and more flexible! 💻 Join over 2,700 subscribers! Subscribe: go.okyrylchuk.dev/vbokBk
010
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 21/01/2025
.NET 9 introduces a new Base64Url type. The existing Convert.ToBase64String method can produce a string with '/', '+', or '=' characters. They are not safe for URLs because they have special meanings in URLs. The Base64Url helper produces the string without these characters.
2122
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 16/01/2025
In the .NET Pulse newsletter issue this Friday, we’re diving into a must-know topic for .NET developers: Feature Management in ASP NET Core. Learn how to control feature rollouts dynamically — without redeploying your application! Join over 2,680 engineers! Subscribe: go.okyrylchuk.dev/vbokBk
031
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 15/01/2025
How do you enable simple logging for debugging in Entity Framework? The LogTo method accepts a delegate that accepts a string. The sensitive logging adds data values in the exception messages. The detailed errors add try-catch blocks for each call to the database provider.
100
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 14/01/2025
Managing dependencies for a single project is easy. It becomes complicated when there are many projects in the solution. Central Package Management can help you to manage all dependencies in one place. How? Find out from my blog post. okyrylchuk.dev/blog/new-pl...
221
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 13/01/2025
Consider returning an empty collection instead of null in the methods. It prevents NullReferenceException. There is no need for null checks before using the collection. You can seamlessly chain the method with LINQ methods. You return predictable type.
3210
Oleg Kyrylchuk 🇺🇦 @okyrylchuk.dev · 09/01/2025
This Friday, .NET Pulse issue! This week’s issue explores CancellationToken in C# — everything you need to know to master task cancellations, handle cleanup, and write efficient, responsive code. Stay tuned for Friday’s delivery, or subscribe now to join 2,660+ .NET readers! ⬇️
171