
Sign up to save your podcasts
Or


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:
and more!
๐ฐ Microsoft will let employees work from home permanently .
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?
PROMOTION DENIED.
๐ 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.
This is Last Week in .NET for the week ending 3 October 2020. You know, Last week. There were no releases this week, but a crap-ton of goodies abound.
Blazor
๐Ed Charbeneau talks about Blazor vs. MVC on his twitch stream One bad thing about twitch is the videos disappear after 14 days so you have another 4 days to watch this one.
๐James Newton-King wrote a Blazor WebAssembly app that shows performance benefits of gRPC-Web over JSON. Tl;dr 70% less bandwidth, 10x faster deserialization; all without gzip.
๐David Ramel focuses on how much faster Blazor is getting Microsoft already fooled me once with Silverlight, but I'm hoping this time will be different so I'll dump all of my attention onto blazor and cry when they inevitably abandon it.
๐How to deploy ASP.NET Blazor WEbAssembly to Azure Static Web Apps (translation: using blazor on a static site hosted on Azure)
ASP.NET Core
๐David Fowler shows the original design principles surrounding ASP.NET Core IT's frightening to think that at this point the idea of ASP.NET Core is 5 years old.
๐Michael Shpilt talks about ASP.NET Middleware and stuff you should probably know but have avoided. If you're like me you're about 3 months away from completely abusing middleware because you need to hook into the request pipeline for a dangerous reason.
๐TheDevTalkShow on Twitch talked with Shahed Chowduri about "ASP.NET Core from A to Z" on their twitch show.
๐That .NET Foundation meetup about Microservices and Containerization happened and I haven't watched this yet and the reason you know I haven't is that I would have started this sentence with a curseword. I'm sure it's a good presentation but I have ethical issues with Microservices. Like developers should be bound by ethics not to use Microservices.
.NET 5
๐Have you analyzed your .NET Framework project for .NET 5 portability? You may want to do that, and they may want to update that doc to reflect that it's now called ".NET 5" and "ASP.NET Core on .NET 5" instead of ".NET Core".
๐Anthony Giretti Deep Dives into the System.NET.HTTP.JSON Namespace. If you're going to serialize JSON in .NET 5 (and you will, t least until the cool kids move to gRPC), you'll want to pay attention to this, especially since JSON.NET is 'mature'.
๐Do you want to see all the new Visual Studio templates? Check that box. Also, go vote and check that box.
๐netstandard2.0 is the most used Target Framework Moniker by far Immo Landwerth showed the stats of most used TFMs (Do you know how to Read TFMs?) and the most used TFM is netstandard2.0 followed by net45. More deeply, this means that while library authors are hoping to target both Framework 4.7+ and .NET Core 2+, they're not diving into the netcoreapp only features yet.
Broken Stuff You should probably Patch
๐Microsoft Exchange Servers Still open to Actively Exploited Flaw. If you're using exchange I'm sorry and I recognize you already have problems in your life, but here's another one: An flaw has exploints in the wild. I can't help but notice that the exploit was patched on 11 February 2020, about a month before the US went into total lockdown mode. I wouldn't be surprised if that hurt adoption of this patch; but regardless.
Conferences
๐dotnet Conf is 21 October 2020 and you can register here
this is not to be confused with
๐.NET Conf is November 10th-12th, 2020 Which is totally different than dotnetconf, Also if you're listening to the podcast version for this I'm sorry. I will be live tweeting this @gortok on twitter. Mute now, just in case.
People
๐The .NET team released the results of the survey that asked people about their experiences with the .NET repositories on Github. If you like data and skewed numbers due to sample size, you'll love this survey.
๐PM Director of the .NET Team, Scott Hunter sits down on youtube to talk about his job. Clearly enforcing the standard that it's spelled .NET and not dotnet is not in the job description.
๐Is it Too-pules or Ta-pules? Maira and Kendra from Channel 9 released a video on Tuples in C#
Speaking of Tuples, I scrupiously commissioned a twitter poll about how to pronounce it. It has also spawned a link to this english.stackexchange question on the subject.
Miscellanous stuff that's interesting
๐Brian Armstrong, CEO of Coinbase, released a reprehensible blog post about Coinbase's mission and got thoroughly roasted for it Good. If you're going to put profits over people in 2020 you shouldn't expect much else.
And that's what happend last week in the world of .NET. No releases, but overall still a busy week.
Microsoft Ignite was the 22nd - 24th of September and the news is here
Lots of Azure, and lots of releases that large enterprises and governments would love.
Top Ten APIs in .NET 5.0
Good info here, and lots you may not have known about.
How to build a Database application in Blazor Part 3
Everything old is new again. Angular is the new Webforms, Blazor is the new Angular. Here we are, partying like it's 2009.
Visual Studio for Mac now supports iOS 14 and XCode 12
The magic phrase is redacted
Apparently if you make that text in the above tweet your password you can find out if anyone stores your password in plain text.
Microsoft talks about what's new with the Windows SubSystem for Linux in September 2020.
If we ever get to the year of Linux on the Desktop it will be through WSL.
Ginny Caughey talks about Project Reunion
I haven't quite figured out what they want it to do but as long as it's "Simplify the sheer number of ways you can develop for Windows", I'm in.
Microsoft releases Microsoft.Data.Sqlite 5.0 RC1 for Entity Framework Core.
Jetbrains Resharper 2020.3 EAP is out, with support for C# 9 features like top-level statements.
The Desktop community Standup happened on September 24th, and this hour long standup dives into winforms and OSS.
In case it isn't apparent, Microsoft uses the word 'standup' loosely.
Microsoft's Channel 9 goes into Microsoft Identity and how to get started with it in this 15 minute video.
Fifteen minutes. Around the time a standup should take. We see you, Channel 9.
Matthew Leibowitz writes a deep dive into System.CommandLine.
If you want to write a command line app in .NET, check out System.CommandLine. Finally there's a way to deal with parsing command line arguments that doesn't involve reinventing the wheel or using a go-clone library.
Nat Friedman, CEO of Github, unfollows everyone in an attempt to hear less about Github putting children in cages.
On September 24th, Nat tweeted "Github Stories ๐ค" and his replies filled up with references to ICE putting kids in cages.
If you remember, Github has a contract with ICE, and come hell, highwater, or angry public sentiment, is going to continue to honor that contract. Maybe Nat doesn't want hearing about that in his feed any more and so he unfollowed everyone.
Some days twitter seems like high school, if the cliques in high school resulted in life and death decisions.
A paper entitled "How to build good software" dives through the common problems we run into developing software and how to fix them.
You can be forgiven for wanting to print this out and send it to every manager you ever had.
Hillel Wayne talks about the eternal debate: Is software craftsmanship?
(Spoiler: Maybe?)
He goes into the math problem of two people digging a hole and I don't think there's anything more closely aligned with programming than randomly digging holes.
Linux won't get any love in MAUI
MAUI is 'multi-platform', not 'cross-platform'. While this may seem like tomato and tomato, there are a few people out there who are mad that MAUI won't support... the linux desktop. Presumably the same number of people liked the ending of LOST.
If you are looking for 'true' cross-platform Desktop UI frameworks; give AvaloniaUI a try or give in and use electron like everyone else.
Microservices and Containerization Meetup tomorrow
The .NET Foundation is hosting the aforementioned meetup about Microservices and containerization tomorrow (September 29th) at 4pm UTC.
Remember: If someone touts microservices without diving into discussing communication among containers (past HTTP Request/Response), event-driven architecture, under what conditions your org structure would benefit from microservices, or whether or not your workload needs that sort of separation, run quickly.
.NET 5 RC1 is now available
It's great to see .NET 5 so close to release. The blog post announcing, however, has a whiplash moment I just need to note:
ย and the first of two RCs before the official release in November. RC1 is a โgo liveโ release; you are supported using it in production. At this point, weโre looking for reports of any remaining critical bugs that should be fixed before the final release.So what I'm reading is that the target demographic for .NET 5 RC1 is people who want to use it in production and aren't afraid to encounter critical bugs.
Oh.
Big hits in .NET 5 include C# 9 Records, System.Text.Json (replacement for Newtonsoft.Json)
'Single File Applications' are making it into .NET 5
Ok, terminology pop quiz.
Does "Single File application" mean a single source control file or a single output file?
So to correct the lede, it's a "Self Contained Application", where a single output file is published that contains the runtime, references, and the application code.
There is also a push for "Single File" applications where you can literally write your entire program in one source control file without the ceremony you normally need. the .NET team calls this a "Top Level Statement".
Naming is hard and we as an industry are especially bad at it.
.NET standard is going the way of the dodo bird.
Long story short, target .NET-5.0 if you want cross-platform, and target .NET-5.0-windows if you want Windows specific features.
EFCore PowerTools have been updated for .NET 5 RC 1
https://github.com/ErikEJ/EFCorePowerTools/wiki/Release-notes#24212-september-17-2020
Jetbrains is hosting a webinar on Service Creation via .NET Core Templates
It's on Wednesday, October 14, 2020, at 10:00am EDT.
If you're interested in learning more about .NET API Templates, give this webinar a shot. I'm not really sure what they mean by "service" here, whether it's "Micro services" or some other usage, but that's really an us problem.
ย Let's retire the name service. That and eliminating timezones is my 2024 campaign platform.
Jerome Hardaway and Michael Brown talk about how hard it is to get developers to embrace .NET
Michael's thread is here
The elephant in this particular room is that the .NET community as a whole isn't seen as welcoming or as a place where new developers should invest their time.
Jerome runs vetswhocode.io and put .NET up for a vote as the next platform to teach, and it was struck down by a vote of 121-1.
Your programming framework is only as relevant as it has new blood. Having new developers unceremoniously dumping .NET says a lot about where people outside the community think we stand.
We can go two ways from here: We can listen, ask questions on how we can improve, and do so; or we can stick our heads in the sand and in 10 years hang out at the "Dumped platforms convention" with Cold Fusion and ActionScript.
.NET Core has re-invigorated the .NET community in a way I wouldn't have thought possible, but unless we act as the ambassadors .NET needs to thrive, we'll lose that momentum.
JetBrains Rider 2020.3 will include the Immediate Window
I'm surprised Rider has made it this long without the Immediate Window. I'm not sure if this is an argument for or against an MVP but it does emphasize a bonus of switching to CalVer: No one knows how old your software is. (For the record, JetBrains rider has been out for 3 years).
.NET Foundation will host an All Hands meeting on October 13-14th, 2020
The event will take place: Tuesday, October 13th, at 11:30-12:30 Eastern Daylight Time, and it's going to take place via Microsoft Teams. Microsoft is placing a lot of trust on Microsoft Teams, and we'll see how it goes.
Rick Strahl talks about the perils of misuing await in ASP.NET Core Middleware
This post is a good read if you are new to async in ASP.NET Core Middleware.
And that's it for what happened Last Week in .NET. I'm George Stocker, and I help .NET teams deliver better software faster. If your team feels like it's struggling against the wave of feature requests and roadmap changes, reach out at www.doubleyourproductivity.io.
.NET Core 3.1.8 and .NET Core 2.1.22 have been released
This release includes a fix for a rather nasty CVE and... Not much else. CVE-2020-1045 allows an attacker to craft a cookie that can bypass ASP.NET Core security. Whaaaaaaatt. Patch your systems now.
CVE-2020-1472 has been reproduced
But speaking of CVEs, looks like a security firm reproduced CVE-2020-1472.ย
CVE-2020-1472 allows an attacker to bypass domain authentication with a specially crafted request that allows them to escalate their privileges. This is, of course, only an issue if you're using Microsoft server. You're not, right? You've already moved to linux? No? Oh.
Blazor now has a graphql client
In the "Leave some innovation for the rest of us", Blazor now has a GraphQL Client. Though, if you're using blazor and graphql you've blown your innovation token quota for a few years. Be safe out there.
https://oceanware.wordpress.com/2020/09/08/blazor-wasm-graphql-client/
.NET Conf Call for Content closes today at 2:59pm EDT (-4 UTC).
Which means... You've got a few hours to put your proposal together. Not sure how I missed the CFP, but I'll do better next time.
The virtual conference itself takes place November 10th and 11th, 2020. Expected releases include .NET 5.
EF Core for .NET 5 is done
That's what's what they say (these aren't my words, I'm just the messenger).
Here's the list of things they finished just in Preview 8:
And that's just in Preview8. Great Job, EF Team!ย
I'm happy that EF Core will be ready for .NET 5; but my quiet voice says I can't wait for a less bloated ORM to take over.
Jetbrains dotUltimate / Resharper / Rider / et. al 2020.2 has been released
This fixes a really annoying bug I was facing in .NET 5 Preview 8 where my tests were listed as inconclusive and wouldn't run when I tried to debug them. There's also a lot more here, but squeaky wheel and all that.
NoVA (virtual) code camp is September 26th
If you have nothing to do that day (it's a saturday) and you want to learn some neat stuff, sign up novacodecamp.org.
Want to contribute to .NET but don't know where to start?
The .NET team has got you covered by listing what issues are up for grabs and their relative difficulty. Thanks to Tanner Gooding for the tweet.
Scott Hanselman compiled a .NET Team twitter list
Speaking of twitter, Scott Hanselman put together a list of all the members of the .NET team on twitter. If the intersection of twitter and .NET is your jam, two things:
And that's it for what happened last week in .NET. Overall a pretty light week. Iโm George Stocker, and when Iโm not following .NET, Iโm helping teams double their productivity through adopting TDD practices that donโt suck.ย
I'll see you next week.
ย
.NET 5 preview 8 has been released:
https://github.com/dotnet/core/releases/tag/v5.0.0-preview.8
If you want to use .NET 5 Preview 8 with Visual Studio, make sure you have the Visual Studio 2019 16.8 preview 2 release installed].
Speaking of Visual Studio 2019 16.8 Preview 2, it now supports editor config fileheaders and namespace settings. So if your company has a 1980s centric approach to file-headers, you can now offload that work to the editorconfig.
ASP.NET Core 5 Preview 8 has been released.
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-8/
Lots of Blazor updates and improvements, as well as ASP.NET Core now supports Model binding and validation for C# 9 Record types.
Entity Framework Core 5 Preview 8 has been released:
They fixed a metric ton of bugs, and there are a lot of small features that may interest you.
F# 5 Preview 8 is out
https://devblogs.microsoft.com/dotnet/f-5-update-for-august/
F# 5 now includes String Interpolation; a la what C# has had for a few releases now. F# 5 now also includes complete nameof implementation support, and more.
Is it .NET 5? Is it ASP.NET Core 5? Is it ASP.NET 5?
Jon Galloway gives us the answer:
ASP.NET Core name stays - you'll either see "ASPNET Core running on .NET 5" (blog post link) or "ASPNET Core 5".
Npgsql update for EFCore 5 Preview 8 has been released:
https://github.com/npgsql/efcore.pg/releases/tag/v5.0.0-preview8
I'm really glad people are pinning to the version of .NET Core they support. It's hard to keep up otherwise.
Is Blazor the future of development?
https://ilikekillnerds.com/2020/08/is-blazor-the-future-of-development/
Short answer: No, it's not going to replace JavaScript, but it will give the "We're a Microsoft shop, we use what Microsoft supports" crowd an adoption path for their aging Webforms implementations.
.NET 5 RC1 is coming soon
Ok so technically this isn't "released" yet but David Fowler of the .NET team shared this photo in a tweet that shows two interesting tidbits, .NET 5 preview 7 is the last preview (AKA 'alpha') release and .NET 5 (Version 5.0.100) RC1 is coming soon. The other interesting tidbit is the 'master' branch (poor naming choice) is .NET 6.0.x, and at least as of this moment .NET 6 is slated for November 2021.
Microsoft Ignite is September 22-24th, 2020, and is Free.
Sign up here: https://www.microsoft.com/en-us/ignite
DevIntersection is hosting a 2-day series of workshops on .NET:
https://virtual.devintersection.com/#!/ is hosting a virtual 2-day series of workshop for the corporate friendly price of $199 on October 26th and October 27th 2020. Speakers include some pretty big names in the .NET space, including the Gu (sigh. Fine, "Scott Guthrie"), Kimberly Tripp, , Carl Franklin, Michelle Bustamente, and Scott Hunter.
Each workshop is $199 and for that you also get access to the free keynotes. I signed up for the keynotes, and understand that if you do, you can be entered to win an XBox or a free workshop
Microsoft's Ignite conference is September 22-24, 2020, and is free. The subtitle of the conference is "Empowering the technical community to help customers innovate and rebuild in a changing world" which roughly translates to "Build new &$@#, get paid". Registration opens September 3rd, 2020.
Looks like CSharpForMarkup is staying in Xamarin Forms 5
do you ever see those fight videos on youtube that start just a few seconds too late so you don't know what caused it and you're left reading the comments to figure out what the hell is going on? This is like that, but on Github.
Anyway, turns out after the team was going to take out CSharpFormarkup support out of Xamarin Forms 5 and move it to .NET 6 (MAUI), the loud voices on Github convinced them to keep it in.
C# for Markup allows a programmer to write C# markup instead of XAML for Xamarin forms. Looks neat. Incidentally, it was the author of C#ForMarkup that let me know about this on twitter.
EFCore updates -- Many to Many is in the daily builds
You know an ORM is nascent when Many-to-Many support is justย landing. I remember when EFCore was billed as a lightweight alternative to EF6. There's no doubt that Entity Framework 6 was plagued by three different ways to do the same thing with teams ending up mixing and matching and driving each other crazy. The hope is the EFCore team keeps their eye on the ball and keeps a unified focus on what the API should look like for EFCore. Given that Microsoft's bread is buttered by large enterprises that hate change, I'm not holding my breath, however.
Emotions we have but don't can't explain
This is still messing me up.
Scott Hanselman releases a video explaining the .NET Ecosystem
If you're new to .NET (or even if you aren't) this video by Scott Hanselman explains the .NET ecosystem in all its 20 year sprawling majesty in a youtube video.
Tempted to make a TikTok. Let's GO!*.
The .NET Team releases a deep dive into how .NET is built and released
This is a follow-up to the public twitter statement that .NET daily builds aren't available when there are undisclosed security fixes; the .NET went through their entire build process. On a personal note, I made it through after a two-drink minimum. It also brings to sharp relief that .NET will always have Microsoft as its benevolent dictator for life.
Maoni Stephens releases a 3 part series on the .NET GC on Youtube
Maoni Stephens shares how the GC works in three parts. I love these sorts of videos. I had to learn about the GC from Jeffrey Richter's "CLR via C#" book (back when there was only 1 edition), and now we can learn this stuff on Youtube. There's a little bit of jealousy, but mostly I'm grateful for people who take the time to share this stuff.
Mads Torgerson addresses the viral "stuff I wish C# had but doesn't" tweet
Mads went to twitter to address the tweet that made it on the Orange Site that detailed some changes the author wishes C# had. Mads wrote:
ย This is a great list of useful features missing from C#. They aren't fundamental flaws and could all be addressed; many are already on the radar for future versions. E.g. primary constructors are planned for C# 10.0, and could then be a building block for object expressions.I'm not really one to ask about all these new features because I'd be perfectly happy with C# 5. Some of the newer features are rather nice; but I don't think fundamental tinkering with the syntax of a language is a great way to maintain language cohesiveness. Call me old fashioned.
Rick Brewster opines on what neat things you could do if we could get rid of the .Count property for certain collections:
https://threadreaderapp.com/thread/1295936199345844224.html
Did you know the ASP.NET community team holds a weekly Standup?
I'm not sure it's actually a standup but naming is hard. Anyway, you can check it weekly, here.
Proposal to allow Wildcard using statements
If you've used Python or TypeScript, you've seen this sort of approach when importing modules from a third-party library. Dave mentions it as a way to handle the fact that some types of utility methods (like extension methods) should really be at the top level, even though organizationally, Visual Studio loves it when your namespaces reflect your folder structure, and penalizes you with red squigglies when you don't. It's an interesting proposal, and I'm going to keep an eye on it.
System.Text.Json getting more love for .NET 5.
After Microsoft bought out Newtonsoft and its author, it immediately set to replacing NewtonSoft.Json with it's own System.Text.Json (incidentally, I'm not clear as to whether James Newton-King worked on System.Text.Json), and for .NET 5 it appears System.Text.Json is getting some much needed additions. It even has
My favorite sentence from a "That's interesting" perspective is: "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo" . With the flurry of patches for one CVE, I can only imagine someone at Microsoft is saying "Patch patch Patch patch patch patch Patch patch", to the same effect.
.NET Core 3.1.7 has been released
Release Notes
The big news here is another major CVE has been patched, this time against ASP.NET Core. CVE-2020-1597 which is a Denial of Service vulnerability that targets how ASP.NET handles unauthenticated web requests.
In typical CVE fashion there isn't a released proof of concept; so while it's unknown if there are any exploits in the wild, you should upgrade and patch your ASP.NET Core installations immediately.
Also released in .NET Core 3.1.7 is a change to how .NET Core applications are built; ASP.NET Core applications no longer generate a dylib on Mac, rather they generate a DLL; this is due to the new notarization requirements starting in Mac OS Catalina.
If you're running an Ubuntu image based on version 19.10; be advised that it has now fallen out of support for .NET Core. It's a brave new world folks where Microsoft takes a hatchet to OSes older than a year. Keep in mind Windows 7 just fell out of support, so you know what side their bread is buttered on.
Also included is a new .NET Core SDK update: 3.1.107
.NET Core 2.1.21 has been released
This is also a release that fixes the CVE for .NET Core 2.1; which is Microsoft's LTS supported version of .NET Core 2
Visual Studio 16.7.1 has been released;
Besides some IDE bugs fixed; the big news here is this also is listed as a product to update under CVE-2020-1597.
Visual Studio 2017 15.9.26 has been released:
Same for the CVE-2020-1597.
https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes
Also if anyone is wondering whether your release cycle is complicated, the Visual Studio team is supporting no less than three different versions of VS 2019 version 16.x in production. 16.0.17, 16.4.12, and 16.7.1.
Please reach out to someone at the Visual Studio team and ask them if they're feeling ok.
An overview of Statiq with Dave Glick
Cecil Phillip sat down with David Glick to talk about Statiq; a static site generation framework for .NET Core. I'm just getting into statiq (I want to use it to host the web version of these newsletters and make the generation process less... manual) and this is a great video to watch if you want to learn about Statiq.
https://www.youtube.com/watch?v=43oQTRZqK9g
Jetbrains announces release 2020.02 for Jetbrains resharper
The 2020.2 versions of JetBrains .NET tools and extensions are here
https://www.jetbrains.com/resharper/whatsnew
https://www.jetbrains.com/rider/whatsnew
and licensing changes:
https://blog.jetbrains.com/dotnet/2020/07/15/licensing-update-net-tools/?mkt_tok=eyJpIjoiT0RkbFltUmpaREF5TW1KaiIsInQiOiJGRTJMdEFFaDYybUNRWkVaeVpRY3lBTTQzczI3ODVCd1luNlpWSkxTR0xVeUZXaTNpMWpaTlpENEpEQkw2WEJuTjd1MDlRMjZ0YmRyWG5cLys0cFVUTmZVTkdXNGE0TnR1RWhpN1wvMzRHVlFiMEMzRG03RENDa0dYQWhKRCt2N2VGIn0%3D
There's another shoe to drop here somewhere, and I don't know what it is. I'm looking for it though, and when I find it I'll let you know. Between "Let's make things easy for our customers" and "licensing changes that increase revenue", I hope this action is at the center of that venn diagram.
NoVA Code Camp
NoVA does not stand for that fictional paramilitary unit in Short Circuit, although more's the pity. It stands for "Northern Virginia" which by all rights and politics should be its own state. Anyway, normally they have an in-person code camp; and that's not conducive due to the Virus That Shall Not Be Named, so here we have a virtual code camp. If you've got a talk you're working on, or you just want to hear some great talks; you should sign up for this event. It's free. I'm pitching a talk on Event Driven Systems, and I hope it's accepted (if the NoVA CodeCamp staff happen to read this; lemme know where to send the bribe).
https://sessionize.com/northern-va-codecamp-fall-2020/
Microsoft ranks #3 on OSS contributions:
https://twitter.com/gortok/status/1293566607986491394?s=20
I will give Microsoft credit here: 10 years ago they were nobody in the world of Open Source software. Literally not even on the radar.
That said, I've got some problems with this ranking. Yuu know the guy on youtube that sits in the forest and builds a house from first principles? It's pretty neat. Anyway, Microsoft is that guy, github is youtube, and we're the people who can watch but can't really force him to build a castle from first principles. Although there's a youtube channel for that too. Anyway, we're spectators. Microsoft pays the salaries of the .NET Maintainers (all of whom are Microsoft employees), and the .NET foundation's Executive director (And treasurer), are Microsoft employees. This isn't altruistic code contribution to OSS, this is "Watch us build our product on github and give us a cookie for doing that". You don't get a cookie for that. At least not a chocolate chip one. You can have an Oatmeal raisin cookie for that.
Microsoft is the benevolent dictator for .NET, at a time when benevolent dictatorship for Open Source is on its way out.ย
Microsoft releases site that touts its OSS
I guess they're just displaying their own set of cookies at this point?
Links:
Shahed Chowduri releases his ASP.NET Core 3.1 A-Z an ebook (twitter)
.NET Core fails to build from source:
https://github.com/dotnet/sdk/issues/11795
With commentary as to why (can't build nightlies when there are undisclosed security vulnerabilities?)
https://twitter.com/runfaster2000/status/1290363230322212866?s=20
.NET Conf "Focus on Microservices" Playlist now on youtube.
Microsoft let's employees sponsor open source projects at $10,00 a piece.
Microsoft's Ignite - September 22-24 2020
Just Finished a Not so awesome project here's what I learned
I about fainted at the "Was happy when I got people to stop deploying from Visual Studio .NET.".
PFCLofW
https://storyteller.github.io/ - It's a library that lets you write markdown to specify your tests; and then turns those into executable tests.ย I know, I know, customer written tests are snake-oil. They have been and always will be;ย Now if you could get your customer to specify your tests in excel? That might be the ticket.ย Still, this is a cool library to check out, purely from an engineering perspective.
Transcript (powered by Otter.ai)
George Stockerย 0:00 ย
I'm George Stocker, and this is last week in .NET for the week ending August 8 2020. If you try to build .NET core from source, you may get failures because of packages being removed from their internal feeds. Now, this is really important only if you find yourself needing to build .NET core from source, but be aware it can happen. There's an open issue on the .NET SDK repo. And for me, I didn't even realize you needed private Nuget feeds to build .NET core. Also, one of the people that works at Microsoft is quoted to have saying, We don't publish nightly builds that have undisclosed security fixes. And so if you get access denied for a nougat package source while you're trying to build .NETย core, it could be because there's an undisclosed security fixed somewhere in that dependency chain. It's really good to know .NET comp focus on microservices just released the playlist from their two day long .NET Focus on microservices conference. Now I live tweeted this. If you want to check out the videos for yourselves, they are now on YouTube. Microsoft has a free and open source software fund called a FOSS fund. And what it does, it allows Microsoft employees to vote on what open source projects should get $10,000 sponsorships from Microsoft. So if you're an employee at Microsoft, you go to this site, you pick which open source project you'd like to sponsor, and if enough employees pick the same one, it gets $10,000. Now this is not nearly enough for a project like apt get where Microsoft decided to take its underpinnings and how it worked and copy it without paying the author or anything but if you work at Microsoft, do us all a favor and vote for apt get and maybe the owner will get at least a little something for their time. Shahed Chowduri released a ebook on ASP.NET Core 3.1. It's an A to Z book. So it covers a topic. Well, from A to Z. Now we're all lucky they didn't deprecate ASP .NET 3.1 before the book was released, but a special shout out to Shahed for his work, and it's a good ebook, you should check it out. Microsoft's ignite conference is scheduled to take place from September 22 through the 24th of 2020. And it's gonna be launched as a complimentary digital event experience this year. I have no idea what it means by digital event experience, but we're gonna find out. I will be attending and probably live tweeting it. So you can catch my twitter @gortok if you want to hear my take on it. But otherwise, you should sign up and at least so you can get updates from the event as well as any of the videos that they released. Jeremy Miller just released a blog post titled just finished a not really awesome project. Here's what I learned. Now it goes through a two year project. That was waterfall based .NET project for a client, it details everything that he went through on this project. Now this is a good read and if you have done consulting, especially for long projects, you will probably feel his pain. And you know it's gonna be a good read when one of the lines is that he's happy that they got people to stop deploying in Visual Studio.NET and start deploying in Azure DevOps. And that's it for what happened last week in dotnet. I'm George Stocker, and I help teams double their productivity through test driven development. If you want to go home at 5pm you don't want to stay up late at night worried about bugs, give me a call. You can reach out at www.doubleyourproductivity.io
Transcribed by https://otter.ai
VB.NET "Not along for the ride" in .NET Core and .NET 5. Eject Mailman, eject.
For those of you that were hoping for VB.NET to get some love in .NET 5, it doesn't look like it's going to happen. This is of course causing some consternation; but overall I get it. Visual Basic was written for a time when we really thought we could make a language look like english and not be laughed out of the room. Now we know better. VB.NET has done good things; and I know a few products even today that are still written in VB.NET; but look, it's time.
Just look at the flowers, VB.NET.
Visual Studio 2019 version 16.7 Preview 6 is now available
Most of us are probably on the Visual Studio stable channel, but if you like to get the previews (they're free), you can install them. Interesting to me is that this version adds support for XCode 11.6? I don't even know what this means but here we are and that sounds cool as $#&@.
Microsoft .NET team is hiring
You can apply to become a Program Manager II on the .NET team. I thought about applying, but realized "allowing everyone to be their authentic selves" probably doesn't mean "Making fun of Microsoft on a daily basis". Seriously though, if you can move to Redmond, you should think about applying. .NET is entering its best years; and Microsoft is one of the better companies to work for.
Microsoft's Roslyn team (the compiler for .NET) released a blogpost detailing productivity improvements:
The Roslyn team released a new blog post detailing tooling fixes that are in Visual Studio 2019 16.6 that you may have missed.
My favorites are the DateTime formatting changes. You no longer have to Google which combination of MMDDYYYY gets you what you want; they now provide that information in the intellisense when you use DateTime.ToString(). This is a long overdue feature and I'm glad they added it. Their code refactorings are getting better, though I still prefer Jetbrains Resharper.
.NET Foundation "State of the Foundation"
The .NET Foundation released its State of the Foundation report for 2020. They have 800 members, which is a growth of 100% from last year, and 5 corporate sponsors, as well as its plan for the coming year. I'm glad to see this sort of transparency; and while I have some reservations about the .NET Foundation; this is a step in the right direction.
They also released their budget; and this will get better, but they spent a grand total of $558 dollars on sponsorships this year. You'd hope to see that get much better, and that's the metric I'll be using to judge whether or not they're having the right impact on the .NET community.
Stack Overflow infographic:
Stack Overflow (the company) released its performance metrics for its collection of Q&A sites on stackexchange.com (What the company used to be named, but then realized that was a terrible name and changed to the same namesake as its flagship Q&A site). So anyway, if you want to know how 300+ Stack Exchanges perform, you'll want to see this.
The sheer speed of the Stack Exchange network got the Hacker News folks all in a tizzy. Any day we can tout how well .NET performs and piss off hacker news is a good day.
.NET Conf - "Focus on Microservices"
.NET Conf held an all day conference to talk microservices; and I live tweeted it. I've got some pretty nasty scars (And a few fond memories) of working with Microservices; and if that sort of thing interests you, check my live thread on it. If your architect is practicing Resume driven development or you work with really large software teams, you should watch the videos with interest; for the rest of us, the conference probably isn't worth your time unless you really want to learn about some frameworks that can help you build Microservices in .NET.
Pretty Fricking Cool Library of the Week (PFCLotW)
This week's cool library is Bogus, which allows you to generate fake data for your application. It's a pretty neat library; and you should check it out. I've used it on quite a few occasions, and it's worth your time.
In today's podcast episode; I'm diving deeper into what the .NET Foundation is, and whether it's "good for us" as a community in its current form. The episode should drop by Noon EDT (-4 UTC) today; so give it a listen if that's a subject that interests you.
Transcript (Powered by otter.ai)
George Stockerย 0:00 ย
Hi, I'm George Stocker, and welcome to last weekend dotnet. Vb dotnet is not along for the ride in dotnet core and dotnet five. Now for those of you who are hoping to get VB dotnet in dotnet, five, it doesn't look like it's going to happen. So of course, it's going to cause some consternation among VB dotnet developers, and I get it. Visual Basic was written for a time where we thought we could really make a language look like English and not be left out of the room. Now we know better. dB dotnet has done good things. And I know a few products today, they're still written in VB dotnet. But look, it's time Visual Studio 2019 version 16.7. Preview six is now available. Now this is pretty cool. You can actually get advanced versions of Visual Studio whatever the next minor version is, you can get advanced versions of it for free without a license, their preview and so they might have bugs in them, but you want to check out what's coming up in Visual Studio. It's always an interesting install. Now this one is interesting to me because it adds support for Xcode 11.6 I really don't know what this means. But I want to find out because this is really cool. Microsoft dotnet team is hiring, you can actually apply to become a program manager for the dotnet team at Microsoft, I thought about applying, but then realize that allowing everyone to be their authentic selves probably doesn't mean making fun of Microsoft on daily basis. Seriously, though, if you can move to Redmond, you should think about applying dotnet is is entering into its best years. And Microsoft really is one of the better large companies to work for Microsoft's rozlyn team. That's the team that produces the compiler for dotnet. They released a blog post about productivity improvements and their latest push for Roslyn. Now, this was in 16.6. So you may have missed it. It's been out for a few weeks. But what I just noticed is that they've added changes that allow you to see how your date time is going to be formatted when you say date, time to string You have all those options, they now give you IntelliSense for those options, and they tell you what they m...
From the publisher's feed