Digests » 328

this week's favorite

.NET Memory Performance Analysis

This document aims to help folks who develop applications in .NET with how to think about memory performance analysis and finding the right approaches to perform such analysis if they need to. In this context .NET includes .NET Framework and .NET Core. In order to get the latest memory improvements in both the garbage collector and the rest of the framework I strongly encourage you to be on .NET Core if you are not already, because that’s where the active development happens.

Better Tagging of EF Core Queries

One of the quickest ways to earn the ire of a DBA is to shrug your shoulders, and tell them you don't know what code created the query that is slowing down their server. Sure, with a little hunting and knowledge of the code base you can generally spot the offending query, but wouldn't it be nice if the query the DBA is looking at had more information to track it down?

Migrating WCF to gRPC - The protobuf-net way

It's straightforward to migrate your WCF services to gRPC using protobuf-net.Grpc. In this blog post, we are going to look at how easy it actually is. Microsoft's official guide for migrating WCF services to gRPC only mentions the Google.Protobuf approach, which can be time consuming if you have a lot of data contracts that need to be migrated to .proto format. However, by using protobuf-net.Grpc we are able to reuse the old WCF data contracts and service contracts with minimal code changes.

The Power of Extension Methods

Changing code. It’s a minefield. If you’re attempting to abide by the laws of the Open Closed Principle, we want to avoid changing previously written code wherever possible, in favour of extending our codebase with new functionality. This allows us to hopefully minimise the number of bugs we inadvertently introduce to our codebase.

What's new in C# 9.0

C# 9.0 is supported on .NET 5 and supports features like records, init only setters, top-level statements and many others.

jobs

C# Engineer at Canalyst, Remote or Vancouver, BC 🇨🇦

We’re looking for experienced C# engineers to help us transform the way finance professionals research and invest. CI/CD is core to our development process, and we believe in continuous improvement and learning when tackling new challenges. We are growing our team and growth at Canalyst means opportunity for career development - we’ll help you get there, and won’t hold you back.