Glaring bug with MARS (Multiple Active Result Sets) on EF / SqlClient for Linux on .NET Core; and a whole bunch of stuff that's less bad. Except for the Labor Dept.'s bonehead move.
This is Last Week in .NET for the week ending 10 October 2020.
No releases this week, but lots of goodies showing off .NET 5.
Starting out with some inside baseball, I'm working to improve the layout of the newsletter, and if there's someone's design you think I should shamelessly copy, let me know on twitter 🐦: @gortok.
🎥 Rich Lander and Jared Parsons of Microsoft talk C# 9 - C# 9 gives us records (light-weight approaches to DTOs and property-based data structures), top-level statements (the ability to remove all the ceremony from a single file C# script, like "static void main"), and init only properties (ability to init properties with a value without super long constructors).
In other words: C# will let you write less plumbing code. Watching Jared Parsons writing code during this video reminds me of two things: 1) Visual Studio should enable line numbers by default, 2) You can tell when someone writes for the Roslyn compiler for a living because of how they write C# code, and I'll never get to that level.
🎥 Stephen Toub talks through .NET 5 performance Improvements Things like:
- new APIs
- JIT improvements (types/bounds checking, zeroing)
- Regex improvements
156,439 are crying tears of both joy and sorrow. Joy at working from home, Sorrow at having to use Microsoft Teams full time. Hey, maybe this will be the push needed for Microsoft to improve Teams?
📝 Jon Hilton continues his series on Blazor and pre-rendering. If those words mean something to you, check out their blog post, otherwise drive on by.
📝 What's coming in Xamarin Forms? David takes us through incoming changes to Xamarin Forms with Radio button changes, shapes and brushes, and more.
🐞 Multiple Active Result Sets on the SqlClient for Linux is slower than on Windows If you use a linux container or .NET Core runtime, you're going to want to pay attention to this bug if you have MARS enabled.
📝 Debug Source Generators in C# 9 and Visual Studio Code Generation has a storied past. One of the C# 9 features is the ability to implement Source Generators in a 'standard' way. This blog post takes that one step further and tells you how to debug these new Source Generators. It does not, however, tell you what to do when the source generator takes your job.
📝 Diving into System.Threading.Channels.UnboundedChannel (Part 2) Can we not? I mean, if you find yourself needing this namespace, you should already either really love what you do or be suffering from Stockholm Syndrome. Either way, Steve Gordon has your back with this blog post. I'm still getting over my time with .NET Remoting, if I'm being transparent.
📅 NDC Sydney tickets close out in 6 hours you should buy them now if you want to 'go' (virtually). Or you can wait two weeks for them to show up on Youtube.
⛳ Steve Smith (not the American Football player) helps you design a rules engine in C# in this Pluralsight course. Ok, Rules Engines are on those list of things that are a terrible idea but someone has a hankering for them so you're gonna do it, and then you're going to maintain it and find out why it's a bad idea (hint: It's 5% code, 95% documentation, usecases, and examples). But if that doesn't bother you, then by all means, create a rules engine.
📅 .NET Conf (yes, the correctly spelled one) is November 10th-12th) Are you 'going'? If not, I'll be livetweeting it @gortok on twitter. Mute me now.
🐦 In a blast from the past, Immo Landwerth shows his powerpoint presentation from the days of convincing executives to open source .NET The Powerpoint (can be found here, on onedrive. With the Here's a [literal] Powerpoint on my OneDrive action going on, I can't shake this scene out of my head.
It makes me wonder if on Microsoft performance reviews whether they judge employees on how many Microsoft products they use: Surface book? Check OneDrive? Check Windows? Check Zune? Check Word? Check Powerpoint? Check Teams? Check Azure? No? They USE AMAZON WEB SERVICES?
📝 Do you want to deploy ASP.NET Core to Kubernetes? Please say no. But if you said yes, Andrew Lock has a blog post for you. He of course can't say "Don't use Kubernetes" since his blog post is based on you using Kubernetes, but I can. Don't use Kubernetes unless you want your next job to be managing Kubernetes.
📝 Microsoft is trying to reinvigorate the .NET Game development Community WE HAVEN'T FORGOTTEN WHAT YOU DID TO XNA, MICROSOFT.
Ok, sorry for shouting, I'm still a little sore about XNA.
📰 Labor Department is probing whether Microsoft trying to raise its black employee population is... racial discrimination As if this hellscape we call 2020 couldn't get any worse, we now have to deal with this. I have no kind words to say about the Labor department's move here, so I'll just say GFSF.
📅 The .NET Foundation "All Hands" is today at 11:30am EDT I'll hum the highlights if you miss it. On twitter, of course.
📝 There's got to be an easier way to build query parameters in C# Nothing against this blog post, but it being 2020, I would imagine adding Query Parameters should be as dead simple as possible by now. The API still feels... forced.
🐦 Want to see attributes on local functions? Me neither, but here you go Something something get off my lawn. Soon code will be one giant file with one giant method and 10 billion little local methods and we'll all chant "This is the way".
All in all, that's everything I found last week in .NET. No releases by Microsoft, I imagine they're pretty quiet trying to hunker down for the release of .NET 5. We shouldn't see any more Release Candidates unless something major happens.