.NET Annotated Monthly | October 2019
October. Around the globe, seasons ease into autumn and spring, awaiting the changing leaves or the return of nature. Stores in the USA and Germany are selling Christmas goods already – that’s just crazy! Nonetheless, October means there’s no better time to catch up on some technical reading, preferrably with a hot pumpkin-spice drink. October is a great month!
The previous month has been full of big news! It’s here! It’s here! .NET Core 3.0 has finally been released, after only 9 (count ‘em, 9!) previews and a Release Candidate!
Download .NET Core 3 – At this link you can download the .NET Core 3.0 SDK, Runtime, or view the release notes.
.NET tutorials and tips
How to build command line interfaces and distribute them as self-contained executables – CLIs are all the rage these days, and Radu Matei demonstrates how to build and distribute them as self-contained executables.
Use Performance Counters in .NET to measure Memory, CPU, and Everything – Full Guide Michael Shpilt does some serious measuring in this post about profiling and performance.
Detecting Sync over Async Code in ASP.NET Core – There are some excellent tips in this post about sync and async code by Derek Comartin, as well as how to avoid common async pitfalls.
gRPC and C# 8 Async stream cancellation – A continuation from last month’s post about async streams by Laurent Kempe.
ASP.NET Core Server-Side Blazor with Authentication – Eric L. Anderson blogs about server-side authentication in Blazor, an important aspect of every app.
Try out Nullable Reference Types – Phillip Carter, the Program Manager for .NET and Languages has created an excellent piece on nullable reference types, a new feature of the C# language.
3 ways to improve the EF Core performance in your .NET Core app – Performance! It’s often overlooked until the software slows to a crawl and users complain. Why not try some of these tips on performance by Sergiy Korz in your next app?
Let’s Learn Blazor: Dependency Injection – Check out this video by Brian Lagunas on DI in Blazor! Brian creates some great content, most recently, in video form.
Analyzing website memory dumps – I know, this is everyone’s favorite: analyzing memory dumps. Or maybe not. Either way, John Verbiest wrote a detailed post that you can use to make your next memory analysis session a lot less painful than it often is.
Here are some of my favorite .NET tutorials and tips posts this month. Check them out!
GC Perf Infrastructure Part 0 – Maoni Stephens on the .NET team posts a super-deep deep-dive regarding Garbage Collection performance in .NET. This is a shorter but seriously hard core post, folks! You’ll learn about things you didn’t even know you needed to know, until now.
WPF and .NET Generic Host with .NET Core 3.0 – If you haven’t ventured into why you should consider creating a generic .NET host, Laurent Kempe makes the case for doing so, and shows you how.
Moving from the switch statement to switch expressions (C# 8) – Looking for a better switch statement in C#? This post by Christian Nagel highlights a new alternative.
Immo Landwerth tweets “Did you know that C# supports the nice curly syntax for any type, so long it implements IEnumerable and has a method called Add? Any number of args and types will work, even overloaded Add. #CollectionInitializersFTW”.
Our own Dmitry Ivanov sends out a very amusing tweet about ‘this’: “С# has suboptimal syntax for extension methods. You have to invent name of ‘this’ variable each time. One of @JetBrainsRider/@resharper developers started arguable tradition of this funny naming (look at picture). Newcomers are shocked for a minute how it even works.”
Just look at that! Err, I mean, this!
Events, community and culture
Here are some events where you’ll find JetBrains staff:
- Techorama Netherlands
- Dotnet Days [Rachel speaking]
- DevReach [Rachel speaking]
- .NET Fest [Rachel, Mattihas speaking]
- GoTech World [Maarten speaking]
A better way to sell your skills as a developer than just “hire me!” or mass applying – At some point, we all need to look for a job or contract. So sometimes a little bit of marketing and sales knowledge goes a long way. Post by Corey Cleary.
Technology Isn’t Designed to Fit Women – Victoria Turk shows the many ways that technology products ignore half of the world’s population. I urge everyone to consider how technology just might not (and probably won’t) work for everyone you think you are building it for. You absolutely must specifically write requirements to reach your entire target audience, and must take steps to think outside of the box and reduce bias when it comes to really know what actually works for all your customers.
Random, interesting, and cool stuff
Have you ever wondered what, exactly, makes code high quality code? What do other people think high quality code is? Well, I asked just that question on various social media sites, and created a tag cloud of the most popular responses (about 200 in total). By far, readable code wins hands down, followed by code that is maintainable, reusable, testable, loosely-coupled, and consistent.
Since a good style is key for readability, I’ve created a series (still in progress) about how to style your code easily and efficiently using Rider:
What do you think? What makes code high quality? Comment on the JetBrains .NET blog and let us know.
Here’s a chance to catch up on JetBrains articles and news that you might have missed:
- Async Streams – A Look at New Language Features in C# 8 – by Matthias Koch
- Developing Xamarin applications in Rider – by Maarten Balliauw
- Find your perfect C# style using Rider – by Rachel Appel
- Better Xamarin development with Rider on Mac – Maarten Balliauw hosts Dylan Berry in this Webinar
If you have any interesting or useful .NET or general programming news to share via .NET Annotated Monthly, leave a comment here or drop me a message via Twitter.
Subscribe to Blog updates
Thanks, we've got you!
Visualize Entity Framework Relationships and Additional Query Analysis in ReSharper 2023.3
A lot of teams are using Entity Framework or EF Core to work with their database. As an Object-Relational Mapper (ORM), it bridges objects in code to a relational database model, so that as a developer you don’t have to worry too much about the actual database. We all know: that’s not entirely tr…
Automatically Analyze ASP.NET Core Performance With Dynamic Program Analysis
Slow web pages may make your users or customers abandon your web application, even before they’ve had a proper look at it. You’ve likely also been frustrated working with a web application that is slow to load. The good news is that the latest versions of ReSharper and JetBrains Rider’s Dynamic P…
OSS Power-Ups: MassTransit – Webinar Recording
The recording of our webinar, OSS Power-Ups: MassTransit, with Chris Patterson, is available. This was the thirteenth episode of our OSS Power-Ups series, where we put a spotlight on open-source .NET projects. Subscribe to our community newsletter to receive notifications about future webinars.…
Eager, Lazy and Explicit Loading with Entity Framework Core
Entity Framework Core (EF Core) supports a number of ways to load related data. There’s eager loading, lazy loading, and explicit loading. Each of these approaches have their own advantages and drawbacks. In this post, let’s have a quick look at each of these ways to load data for navigational prope…