.NET Tools

.NET Annotated Monthly | November 2023

Did you know? Just like you can keep your JetBrains products up-to-date with their Toolbox App, the open-source project WingetUI can do the same for all your other Windows tools.

.NET news

Featured content 

We’d like to thank Dennis Doomen for curating this month’s featured content! Dennis is a Microsoft MVP and Principal Consultant at Dutch consultancy firm Aviva Solutions. With 27 years of experience under his belt as a coding architect, he specializes in designing full-stack enterprise solutions based on .NET as well as providing coaching on all aspects of designing, building, documenting, deploying and maintaining software systems in an agile world. He is the author of Fluent Assertions, an assertion library with 300 million downloads, Liquid Projections, a set of libraries for building Event Sourcing projections and he has been maintaining coding guidelines for C# since 2001. You can find him on Twitter, Mastodon and BlueSky.

  • I’ve been a long-time fan of the GitKraken Git GUI and like to combine that with some powerful command-line aliases, but after watching Dan Clarke’s YouTube video on Mastering Git in JetBrains Rider, I discovered that I missed out on the amazing integrated source-control capabilities of Rider.
  • Newer versions of C# bring a lot of power and both Rider and ReSharper will help you get the most out of it. But what if you’re still stuck on .NET Framework 4.x where the necessary .NET types needed for those new features don’t exist? Then you add the PolySharp NuGet package to your project. It’ll add the missing types and attributes and light up your project with newer C# features.
  • There seems to be a group of people that are concerned about the increasing presence of AI in our development toolchain. Well, I’m definitely not. I use a combination of GitHub CoPilot and the new JetBrains AI Assistant and it has made a world of difference. Not only did it make me a lot more productive by removing repetitive work and providing mind-blowingly smart suggestions for my code, it also helped me understand and refactor some pretty ugly legacy code. So don’t be concerned and embrace AI!
  • One of the characteristics of maintainable code is that you can understand what it intends to do. Well-written en well-factored code can help with that. But what if you want to understand why that code was written, what options were considered and what the intent was? A technical decision log can help with that, but a clean source control history as well. Being able to master Git’s fixup commits and interactive rebase functionality is crucial for that, so make sure you know your tools
  • In the 15 years I’ve been practicing Test Driven Development, I’ve learned that finding the right scope for what most people refer to as the “unit” is one of the most crucial choices to make. The idea of a unit always being a class or smaller is way too dogmatic, so I tried to provide some examples to debunk that idea.
  • In the past, we’ve been trained to create complicated abstractions to hide the “ugly” parts of our system such as the database. But it’s 2023 and databases should be treated as highly optimized implementation details of your architecture. As such, you want to include the interaction with the database in your automated tests. Fortunately we have Docker and open-source projects like Test Containers for .NET that allow you to spin up a Linux container with SQL Server in it, run a set of test cases and clean up after yourself. Simple and brilliant. 
  • You may have heard the fuss around Moq and its attempts to monetize open-source. As a long-time OSS developer, I know that it’s hard to make companies realize how much value they get from OSS. I’ve tried to capture some ideas on how to help with that, but I’ve also started to dedicate a small amount of money to a different project every month. What about you?
  • Talking about contributing to the open-source community, now is the time to help influence an open-source project with 300 million downloads, Fluent Assertions. We’re working on the next major version and there are plenty of ideas to keep it ahead of competition. Go check out the roadmap here or pick-up one of the contribution-friendly issues

Programing tutorials and tips 

.NET tutorials and tips

Related programming tutorials and tips:

This really does feel like 2002 all over again. 😅 Drop a comment, folks: what do you think of this code?

https://twitter.com/coreylweathers/status/1717855547171451286

Interesting and cool stuff

And finally, the latest from JetBrains

Here’s a chance to catch up on JetBrains news that you might have missed:

🗺️ Check out our .NET Guide! Tutorials, tips, and tricks on .NET. 📺

Blog posts, webinars, etc..:

Don’t miss this fantastic offer! CODE Magazine is offering a free subscription to JetBrains customers. Get your copy today!

Sharing is caring! So share content that you find useful with other readers. Don’t keep it to yourself! Send us an email with your suggestions for publication in future newsletters!

Subscribe to .NET Annotated

image description

Discover more