The .NET Stacks #61: ๐ŸšŒ Let's go on a community blog tour

In the latest issue, let's go on a community blog tour.

Dave Brock
Dave Brock

Would you look at that โ€” it's Monday again. I hope you had a wonderful weekend. Here's what we have going on this week.

  • Let's go on a community blog tour
  • Did you know?
  • A housekeeping note
  • Last week in the .NET world

Let's go on a community blog tour

Every week, I provide a big list of quick links for you to check out. I have them this week as I always do, but I wanted to also talk about five or so community blog posts this week. (To be clear, there are always many more great posts from the community that deserves special recognition. These are just some posts that caught my eye this week.)


My favorite post this week comes from Josef Ottoson, who describes working with sorting really large files in C#. If you think algorithms have limited real-world applications, think again: after starting with an in-memory application, he compares external merge sort, splitting, and merging. He shows off how he only consumes 32 megabytes when sorting with an external merge sort algorithm, over almost 6 gigabytes with an in-memory solution. (As expected, sorting in memory is a little bit faster.)


On the heels of the "Focus on F" .NET Conf, F# creator (and the creator of C# 8 and 9 ๐Ÿ˜‰) Don Syme has a Github readme called What operators and symbols does an F# programmer need to know? As someone who's been wanting to learn F# for the last few years now, I appreciate the candor: as with C#, there's much of the language that you don't need on a daily basis.


Over at the Visual Studio Code blog, Chris Dias writes about the rise of notebooks. School is starting back up soon, but I'm not talking about those: here I'm talking about docs that contain text, executable code, and its output. It provides interesting use cases for learning and development.

With VS Code, the experience in working with notebooks is a big concern:

To complete the metaphor, notebooks in VS Code have matured from those awkward teen years into (young) adulthood, confident and strong, with a bright future. Working with VS Code notebooks may take a bit of adjustment if you are moving from Jupyter, but we hope it will be worth it in the end. And, as we always try to do, you can customize the experience through settings.


We've geeked out about .NET source generators quite a few times in this space. To that end, last week Khalid Abuhakmeh writes about using them to retrieve class declarations from a project. He uses a ISyntaxReceiver, which retrieves the class declarations.


Jeremy Miller wrote a nice post about testing effectively with or without mocks or stubs. Are you spending most of your time writing effective tests or simulating data with mocks to avoid writing integration tests? With the advancements in networking and containerization, does it need to be an either/or discussion?

He writes:

In the past, we strongly preferred writing โ€œsolitaryโ€ tests with or without mock objects or other fakes because those tests were reliable and ran fast. Thatโ€™s still a valid consideration, but I think these days itโ€™s much easier to author more โ€œsocialableโ€ tests that might even be using infrastructure like databases or the file system than it was when I originally learned TDD and developer testing. Especially if a team is able to use something like Docker containers to quickly spin up local development environments, I would very strongly recommend writing tests that work through the data layer or call HTTP endpoints in place of pure, Feathers-compliant unit tests.

Did you know?

Did you know that in Visual Studio Code, you can make Integrated Terminal sessions appear as editor tabs, instead of taking up valuable space in the panel? Not me.

Quick housekeeping note

A quick note: The .NET Stacks is taking a brief break until September. Over the next several weeks, my free time will be extremely limited and I won't be able to devote the time. Thanks as always for your support and I'll be back next month.

๐ŸŒŽ Last week in the .NET world

๐Ÿ”ฅ The Top 3

๐Ÿ“ข Announcements

Over at JetBrains, the v2021.2 releases for dotCover, dotMemory, dotTrace, and dotPeek have arrived. Alexandra Kolesova writes about updates to Rider 2021.2, and Alexander Kurakin writes about updates to ReSharper 2021.2.

๐Ÿ“… Community and events

๐ŸŒŽ Web development

๐Ÿฅ… The .NET platform

๐Ÿ“” Languages

๐Ÿ”ง Tools

๐Ÿ— Design, testing, and best practices

๐ŸŽค Podcasts

๐ŸŽฅ Videos

.NET Stacks