Last Week in .NET Issue #15 – It’s not a Bug, it’s just a feature you didn’t expect!

Mostly community goodies this week. No releases, but that’s not surprising given the impending release on November 10th. Here’s what I found last week in .NET:

📢 Github now supports code navigation for C# repositories. If you’ve ever used OpenGrok, you may have wonder why services like Github never provided navigation between references. Well now they do. This is a phenomenol offering from Github; having the ability to click on a reference for an object and go to that class definition is… long overdue.

📰 Mads Torgerson, designer on the C# team, talks about where C# is going I love C#, and I love that it’s touted as one of the most popular programming languages out there. But, let’s be real here: It’s popular days are still to come. For a long time it was “Windows only” and firmly sucking on the Microsoft Teat. It’s still doing that, but now with a veneer of open source, and actual cross-platform compatibility. Let’s not kid ourselves: C# was good for businesses, but now it’s good for everyone. I just hope it isn’t too late.

📝 Did you know you could add AssemblyInfo attributes dynamically using the AssemblyMetadataAttribute (whew!) … attribute? This is from March 2018 so I’m sure the API has changed a little bit, but a tweet from James Newton-King alerted me to this feature in .NET Core. If you need to modify your AssemblyInfo.cs at build time, this provides a great way of doing that. At least until the Zoomers come and decide that version numbers are passe and we should just deal with CalVer instead. All hail the Zoomers. Also I’m watching way too much TikTok.

🐦 Speaking of TikTok, Microsoft is a little depressed that their acquisition of C# didn’t pan out so they’ve been releasing “One Dev Question, One day” videos, and this week’s ask “What is C#”? My go to answer of “A really fucking awesome programming language that is tainted by its association with Microsoft” was rejected, quite unfairly I might add.

📢 Microsoft Edge now supports Linux. In a “No really, we’ve changed” moment, Microsoft now supports Linux on Microsoft Edge. I don’t have a snarky thing to say about this, except perhaps to question if their marketing department understands who their customer actually is. Hint: It’s not people that use Linux on their desktop. I’d also like to add that the money they put towards the development of Edge on Linux, they could have very well paid off an Open Source author or two. You know, like the guy from Appget?

⛳ In what we will all undoubtedly regret in 5 years, there’s a new course out on how to do full stack development with Blazor and WebAssembly. This is of course a terrible idea, but my support goes out to the gentlemen who are profiting off the popularity of Blazor. I don’t have a dog in this metaphorical fight, but anyone who has worked with ASP.NET webforms knows how this works out: JavaScript does it easier and better, and you end up maintaining something the community has shifted away from.

Nuget.org has released a survey asking the community for its thoughts on Nuget. This survey closes soon, so take it now (I have no idea when it closes, but given that this is a weekly newsletter, we can safely assume it’s not long for this world). Microsoft has long ignored Nuget, so please take the survey so its issuers can keep their jobs.

🤚 There’s a github issue open that addresses the “MyMeth” problem in .NET Docs In the .NET Docs, (bless their hearts) they had documentation that referred to a “method”, and they called it “MyMeth” instead of “MyMethod”. It was of course noted and brought up, and sadly for the Breaking Bad fans among us, is going to be fixed.

📝 Apparently OData is still alive In what I will consider a “Holy Shit” moment, apparently OData 8.0.0 preview has been released. If you haven’t already jumped ship to GraphQL and still want a hella-insecure way to query your data, might I recommend OData?

📝 Choose a .NET Game Engine Microsoft is back on a “Tout C# for Game Development” kick and I am here for it. No, I do not forgive them for hurting XNA, but I’m going to give Microsoft their due Kudos: C# is viable to use for game programming, and they’re doing their best to make sure everyone knows it. Special thanks to Abdullah Hamed for the tweet that made me aware of this series.

🌎 The .NET team has released a site that shows their roadmap, pulled directly from their Github issues This is a good look into the Microsoft machine surrounding .NET, and well worth your time if you’re interested in the future of .NET.

📝 Attribute-Based Access Control With Blazor WebAssembly and IdentityServer 4 In what I can only characterize as a bad idea icecream topped with terrible idea sprinkles, there’s a series out on Codemaze on how to develop ABAC with Blazor WebAssembly. Personally, I’d be delighted to know if this fits a usecase you have and whether you’re going to implement it. Also, please send me a ‘before’ email so after your project’s launched we can commiserate over the idea and lost youth.

📝 Rick Strahl takes you into the process of creating .NET Custom project types with the .NET CLI Project Templates (whew!) Long story short, if you create microservices or otherwise want to enforce defaults and standards when creating a new project, this blog post is for you.

🐛 Jimmy Bogard found a bug in the .NET Core runtime, where string indexOf comparison fails or breaks depending on which runtime you use. As it turns out, Microsoft switched to ICU instead of using NLS (what they were using previously), and this change has the side-effect of breaking string comparison code that doesn’t specify a culture or StringComparison.Ordinal. Microsoft views this as the cost of doing business when they switched to ICU instead of NLS, which makes it not a bug, just a feature we didn’t connect the dots on.

🔉 Layla Porter, newly elected .NET Foundation Board Member, talks on .NET Rocks about… The .NET Foundation, specifically, it’s goals and how it needs to evolve.

📝 Jon Skeet takes us through the .NET Functions Framework If you’re trying to develop .NET applications that work on ‘serverless’ architecture, this framework and blog post are for you. It’s not for everyone and all usecases, but for some usecases, serverless functions are just what we need.

And that’s what happened Last Week in .NET. I’m George Stocker, and I help .NET teams build better systems faster, without the crankiness that inevitably comes from just slapping code together. To learn more, visit https://www.doubleyourproductivity.io and I’ll see you next week.

Last Week in .NET – Issue #12 – dotnet and .NET Please don’t do this to us again

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-pulls or Tuh-pulls? 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.

To subscribe to the Last Week in .NET Newsletter, go to https://lastweekin.NET. To listen to the audio version of the newsletter, subscribe at https://podcast.lastweekin.net.