[Last Week in .NET #102] – MAUIing Figma

Lies Developers tell themselves include, “I can get this done in a week, including testing”. Ouch. ๐Ÿ™ˆ


Dev from Twitter remarks unironically that one of the perks of working at Twitter is being able to turn off Ads. @Carnage4Life notes that that exact mindset is why Microsoft continually fails at Products. Dev deletes tweet. ๐Ÿ™Š


Javiar is working on integrating .NET MAUI with Figma This looks neat. ๐Ÿง 


Do you want to build apps for Microsoft Teams? Garry teaches you how. ๐Ÿ‘ฏโ€โ™‚๏ธ


Microsoft is looking for a Junior PM but they refuse to use the word Junior. Why?๐Ÿฃ


Maarten Balliauw writes about how to create an ASP.NET Core Rate Limiting Middleware in .NET 7 I have a similar approach; make all of your web service resources singletons. (I may have done this with a spell-checker when I was a junior developer, with disasterous effects). ๐Ÿ’ฅ


And that’s all I found last week in .NET. I did get to go camping and avoid civilization for a few days, so I’ll chalk the lightness up to that.

[Last Week in .NET #101] – Remodeling dotnet

I don’t know if I told you this, but Khalid Abuakmeh is on a mission to change the name from .NET to dotnet.

I get it. I do. .NET is hard to search for, people end up typing .net or dot net or dotnet anyway, so why not just make the name what the people type?

I can see their point of view. It’s not like the .NET name means anything anyway, I mean, heck, even Microsoft couldn’t explain it.

But ultimately, rebranding efforts are hard enough with a company good at (what amounts to) consumer marketing. And that’s an area of growth for Microsoft.

With that aside, let’s get into what happened Last Week in .NET.

There were a flurry of releases last week (speaking of, what do you call multiple releases? Is it a flurry?) with .NET 7.0 RC 1, [.NET 6.0.9](https://github.com/dotnet/core/blob/main/release-notes/6.0/6.0.9/6.0.9.md and .NET 3.1.29 all getting version bumps. All of these releases address a CVE with the model binder under the CVE Number CVE-2022-38013.

I give it about 2 years until Microsoft dumps version numbers entirely and moves to CalVer. This is simply an unsustainable Pace of version numbers. ๐Ÿ“…


Because we all need a little fun in our life; a joke design ended up making the N-Gage what it was. Also, if you’re of the demographic that doesn’t know the G-word in that article, I recommend… No, I strongly recommend… No, let me try again: DO NOT GOOGLE THAT WORD. There. I warned you. ๐Ÿ


The current work in progress to get Linux (?) controls working on MAUI. I want to believe. ๐Ÿ›ธ


The .NET foundation is removing its $100 membership fee. I’d rather they keep the $100 membership fee and act like an independent open source foundation instead of a mouthpiece for whatever antics Microsoft is up to in the .NET space. It’s not even subtle at this point. ๐Ÿ’ธ


Entity Framework 7 RC 1 is out, and I’m glad they dropped the ‘core’ moniker because this isn’t just the essentials any more, this rivals the size of EF 6. ๐Ÿ‘ฃ


Custom Dev Container Features for when you want to install development needs via Docker for VS Code. ๐Ÿšข


Uber was hacked in part because the attacker told them he was hacking them and they thought it was a joke. I can’t add a punchline to that. ๐Ÿ™Š


.NET 7 static AOT Initialization being demonstrated in drawing a circle, with … no code to compute the circle. I agree with Miguel on this one, that’s… impressive. ๐Ÿคฏ


Geoff Huntley explains why it’s legally problematic to use VS code. I’m not saying I agree with the viewpoint, but I agree we need to look at these things more critically. ๐Ÿคจ


Sorry for the lateness on this one, I’m currently going through a surprise Bathroom Remodel.

[Last Week in .NET #100] – Where’s the cool kids table?

We came off the tail end of a short week, so there are a few good things to read this week. Here’s what I found.


The Problem with Fighting Fires You’re likely a software developer if you read this newsletter, and so this blog should be at the top of your reading list for today. Or maybe tattoo it somewhere you can read it daily. ๐Ÿ”ฅ


What are some unanswered questions you have about the WinAppSdk and WinUI Me: Why are they two separate things. Why wouldn’t someone who is building an App want a UI? โ“


Scott Hanselman says upgrade to .NET 6 and while in the abstract I agree with him, the sheer problems I’ve run into even trying to upgrade .NET Framework projects to use the new SDK style (which admittedly is the first step in the process) is nuts. Write new stuff in .NET 6. Upgrade as you’re able; but the list of things that cleanly upgrade is very small. EF doesn’t cleanly upgrade, ASP.NET Web API doesn’t cleanly upgrade, ASP.NET MVC doesn’t cleanly upgrade, and Webforms definitely doesn’t cleanly upgrade. About all that does are class libraries, and that’s if you were lucky enough to stay up to date with the changes along the way. ๐Ÿคทโ€โ™€๏ธ


Writing Windows Application Services for Kubernetes I’m sure this is a great article, but it lost me after this premise:

In a traditional .NET distributed application, application services (not to be confused with the Kubernetes โ€˜serviceโ€™ object) would either be written as IIS hosted web applications or Windows Services.

Yea, in 2015 maybe. If you’re writing anything other than Windows Desktop applications today, I highly recommend using .NET 6 and Linux based server runtimes.

At least Mike’s advice about avoiding Windows Containers is spot on. โš™


Mads Kristensen walks through what’s new in Visual Studio 2022. I had a recent update that completely screwed the ability of VS 2022 to find the .NET 6 SDK that is installed on my system and reachable from multiple command prompts (no there isn’t a global.json in the way). Sooo while it’s much better, there’s still the easy slipups in play. ๐Ÿ†•


Have you been following the ASP.NET Community standups? As always there are good tidbits in there. ๐Ÿคผ


Developing Error Handling Strategies with asynchronous messaging, which is not about how parents with young kids coordinate, but rather about distributed applications. ๐Ÿ“ค๐Ÿ“ฅ


How Microsoft releases the Azure SDKs The promise was much better than the result. Sorry, they can’t all be winners. ๐Ÿคทโ€โ™€๏ธ


WebAssembly for .NET Developers: Introducing the Spin .NET SDK. Why do I as a developer want to develop a WASM application? Tell me in your post. Tell me why this matters to me. What will this enable to me? What will be the non-software-building effect? โ“


Microsoft teams is a terrible product with an amazing social team behind it which is so true. Teams is a way for Corporate America to seem like they are cutting edge while reinforcing all of the worst traits of working. As long as it’s pitched to CIOs, it will forever be a step behind and kind of icky when you look closely enough. ๐Ÿ™ƒ


Github Copilot is now available for teachers It bears repeating, but Copilot is code licensing money laundering. Use it on your codebase with that in mind. ๐Ÿ’ธ


And that’s it for what happened last week in .NET.

[Last Week in .NET #99] – NEIN NEIN Azure

It was a short week due to the US holiday Labor Day (A day in which some people take off to celebrate all people working, while some people work). Let’s get into it.

Microsoft launches 30 days of serverless September to keep you engaged with all the Microsoft Azure has to offer. I didn’t even look at that part of it, but I’m assuming it’s about Azure. *checks*… Yup. I was right. Azure Functions, Azure Container Apps, Azure Logic Apps, Azure Event Grid. Quick, without looking it up tell me the difference between a logic app and a container app (No cheating and saying one contains logic and the other does not). All jesting aside, if you’re into serverless,you can be guaranteed you’re getting 30 days of attention on your favorite subject on Microsoft’s Favorite Cloud. ๐ŸŒจ


Does someone ever share something online and you can’t fathom just how important it is but you file it away because you know it’s probably really important? I’m getting that vibe from Jamon’s tweetsheet of how you should work with TypeScript. ๐Ÿ”–


Performance Improvements in .NET 7 This is one of those ‘skim and read what you understand and file the rest away for later’ sort of Blog posts. There is a crazy amount of good information here, meant to be packed in on several readings. Hell, if it wouldnt’ be out of date by the time it was printed, this would be a great book. ๐Ÿ’จ


AWS asks the question, “Wouldnโ€™t it be awesome if an assistant identified microservice candidates from monolithic code for you? “ to which I say… NO. F%#$ing NO. Humans that do this for a living can’t get it right so what makes you think that machines trained on Humans doing it for a living can’t get it right? AWS at least has the decency to put the access behind an email address, which leads me to believe this may be a “Let’s see if people respond to us saying we’ll build it” sort of play. ๐Ÿ˜ฉ


Achieve Google like Autocomplete suggestions with the WinUI autocomplete Control (via @alvinashcraft). Someone at Microsoft, somewhere is going to have to write a Bing version of this and is probably a little miffed that no one ever calls it “Bing like Autocomplete”. There’s a reason for that. ๐Ÿ˜


And that’s it for what happened Lask Week in .NET.

[Last Week in .NET #98] – Ad-ing to Microsoft’s Product Line

No major releases, but a few cool trinkets being dropped, and Microsoft embraces ads. And when I say “embraces”, I mean “weds”.

Taytay shares tips on ensuring Windows Defender can update, even when networking is broken in a corporate environment. Taylor Swift and SwiftOnSecurity are national treasures. ๐Ÿดโ€โ˜ ๏ธ


Zoom appears to be in a battle with Microsoft Teams for the enterprise collaboration tool. Microsoft teams as a collaboration product is only slightly better than duct-taping Sharepoint, Lync, Yammer, and Outlook together. As a video conference tool, it’s not half bad. I literally tried to schedule a teams meeting in teams and couldn’t get it to give me a Video conferencing option. At this point, Microsoft’s biggest competition in this space is their own product ineptness. (Also if you work on the Microsoft Teams product, blink twice if you get a demerit every time you suggest a product improvement). ๐Ÿ‘€


Microsoft is putting more ads in Outlook on iOS and Android: Free users can avoid most of them by using Focused Inbox. I’ve been accused of putting Microsoft in a bad light, but I don’t even need to add any commentary to this one. ๐Ÿ™Š


In .NET 7, the .NET Runtime Windows IO Threadpool and Timer Queue are now fully managed code. One step closer to a completely managed code runtime (is such a thing even possible?) โฐ


C# 11 preview: Generic Math, required members, optional types, and more. I made one of those up, can you tell which one? ๐Ÿ™ˆ


EF Core Power Tools has had 250.000 installs! Why are they rounding to three decimal places for whole num— oh. Yea, 250,000 is much better than 250. Incidentally, I’ve spoken quite a few times in this newsletter about the lack of work-life balance on the EF team, and one of their members says the quiet part out loud. “How did your marriage end, dad?” “Entity Framework, son. Entity Framework.”

It’s also worth noting that no one has to say anything to know whether they have a good work-life balance or not. When you see a team churn out updates at a breakneck pace for years, you can look at the fricking commit log and see the problem. You don’t need anyone to tweet about it. ๐Ÿคฏ


Microsoft’s new tool let’s you see your systems like a hacker would I hope the hackers would remove the ads first. Seeing Office, Outlook, and Windows without ads would be a welcome change. ๐Ÿ˜


By default, Corporate Windows 10 can’t repair itself. Taytay (long may they reign) shares a registry key hack you should implement if you work in Corporate IT. ๐Ÿ› 


If you want a Batch script that sets up a new project, Eric Potter has got you covered. I would deduct points for it not being in Perl, but given that this is a windows system Perl is not available by default. ๐Ÿ“œ


Sharing because Kelsey Hightower’s work is good and not a reflection on Kubernetes abilities as a platform: Learn Kubernetes the Hard Way. ๐Ÿฆบ


Matt Damon provides insights in why they don’t make movies like they used to. I’m not a big fan of the whole “eat wings” part of the “eat wings and share insights”, but I’ll take the insights any day of the week. ๐Ÿฅ


The F# folks are a little upset that Microsoft isn’t pushing F#. Once Microsoft’s customers (CIOs) start to adopt F# for their applications, Microsoft will pay attention to it. Until then, the scraps from the table are as good as it gets. ๐Ÿ—‘


dodyg shares how to put anti-forgery tokens into a minimal API. Good stuff. ๐Ÿ•ต๐Ÿปโ€โ™‚๏ธ


TypeScript 4.8 is out Lots of goodies, but as always, even though TypeScript is installed via NPM and NPM asks that packages respect SemVer, TypeScript is special and does not. That makes any upgrade a breaking change. Good luck! ๐Ÿฅ‚


Built in Container Support in the .NET SDK I don’t quite see how this works; I’ll have to give a try to see what it does. But, it looks cool?๐ŸŸ


And that’s it for what happened Last Week in .NET. Should you see anything cool, share it with me @gortok on twitter.

[Last Week in .NET #97] – Swimming in Microsoftยฎ Irony for Life Preview 7 Extensions Core (CTP)

Not too many releases this week but we are swimming in irony. Let’s get into why.

Miguel de Icaza details what it’d take to get Microsoft based X-Plat UIs back into the fight, and it doesn’t look great, because there is a fight for Cross platform development, and Flutter is winning. Microsoft is hindered by their inability to develop controls for any other platform but their own, and to own the cross-platform developer experience. ๐Ÿฆ‹


In a belated attempt to improve the cross-platform developer experience, .NET 6 can now be installed natively on ubuntu 22.04. This is a great basic step, but the UI is where it’s at. The polish of the tooling is where it’s at. Being able to more easily install it? Table stakes. ๐Ÿฅฉ


Immo Landworth found the most poorly-named Microsoft Product: Microsoftยฎ Visual Studioยฎ 2005 Extensions for Windows Workflow Foundation Beta 1.2 for Microsoft Pre-Release Software WinFXยฎ Runtime Components – December Community Technology Preview (CTP); not to be confused with the worst Microsoft Product, Windows ME. ๐Ÿ‘†


Seinfeld talks Kubernetes. You see? I wasn’t lying. You should trust me more. ๐Ÿ™Š


You can now deploy your Azure Static Apps to a Named Environment. Wait, they didn’t have named environments before? ๐Ÿคทโ€โ™€๏ธ


So they got Azure App service moved off of IIS + nginx to YARP. That’s pretty impressive. ๐Ÿ‘


Meanwhile, in another corner of Microsoft, someone is getting a bonus every time you click on a fucking advertisement displayed in your Office toolbar. ๐Ÿคฆโ€โ™‚๏ธ


Microsoft “Dev Box” is in Preview. I’m sure this is an amazing technical feat, but I’m still not over the fact that in 10 years no one will have control of their own computer any more. Every computer’s OS will be in “the cloud”. ๐Ÿ‘ด ๐ŸŒจ


The CFP for .NET Conf is now open. Submit your talk today! ๐Ÿ”Š


On August 25th, the ABP Framework folks are giving a webinar on ABP. Now, I’ve got opinions about ABP, but they’re uninformed opinions, so I need to spin it up before I roast it. ๐Ÿ 


How to Regain Work-Life Balance in the Age of Hybrid this is a well written listicle from Microsoft that both advertises its office products and lacks any self-awareness as to how Teams and Outlook detract from work-life balance. I’m rather impressed at this level of dimness. If Microsoft was really about ‘work-life balance’, they wouldn’t have “presence” settings auto-change when someone is near their computer, and they’d make it non-negotiable that each person can choose their own settings instead of having it chosen for them by their organization. ๐Ÿ‘‰๐Ÿ‘ˆ


And that’s it for what happened last week in .NET.

I really should dive deep into the problems with developer tooling in the Microsoft .NET Ecosystem. If that’s something that interests you, let me know.

[Last Week in .NET #96] – Light Guerilla Warfare

We’ve got a few new releases this week, some light corporate guerilla warfare at Github, and the third kind of lie, Statistics. Let’s get into it.

.NET 7 Preview 7 is out, and this will be the last Preview. The next release will be an “RC”. ๐Ÿ†•


.NET 6.0.8 has been released and it fixes CVE-2022-34716 a .NET Information disclosure vulnerability. ๐Ÿ†•


.NET 3.1.28 has been released and it fixes this same vulnerability. ๐Ÿ†•


Announcing .NET Framework 4.8.1 and the big thing they’re announcing are accessibility updates. If there’s more, it’s not being broadcast very loudly. ๐Ÿ†•


Kevin Jones (@vcsjones on twitter) continues his thread on new happenings in System.Security.Cryptography. I tried to punch up that sentence as much as possible, but writing about Cryptography can be as boring as it is important. Luckily Kevin makes it interesting. ๐Ÿ”


Microsoft Teams has 7x the Daily Active Users that Slack has. In completely unrelated news, Teams starts up automatically when Windows loads and there is no way on God’s Green Earth that affects the DAU count at all. Ok, so I lied. They are related. โ™Š


Powerpoint now offers Dark Mode because we’ve completely lost the plot and do things because we can, and not because of their original meaning. ๐ŸŒƒ


Kevlin Henney writes an article for O’Reilly on ML and Scaling False Peaks. It’s worth your time.๐Ÿ”


Virtual Formatter in ReSharper 2022.2. I’ve read the blog post twice and I really don’t understand what this thing does. ๐Ÿคทโ€โ™€๏ธ


Visual Studio for Mac 17.3 is now available Lots of Goodies here, and I didn’t know the StringSyntaxAttribute was a thing but I think I’m going to use that going forward. ๐Ÿฌ


Nothing like a little light insurrection for a monday morning. Lucas Garron from Github shares a tweet warning that Github is changing their policy on non-essential cookies. Github used to have a policy of not tracking their users (the only used essential cookies) but now they’re making a switch and adding non-essential cookies to the list of cookies they ‘offer’. Frankly I’m surprised that Microsoft’s KPIs allowed them to even make it two years without reversing course, and I hope we see more of these corporate guerilla tactics. Of course for every action there is an equal and opposite reaction, and I’ll just leave that there for you to think about. ๐Ÿ˜


The “Multi-Platform” part of MAUI has a giant asterisk, of course, and that is if you want Linux support, it’s gotta be supported by the community. Here’s where the “What’s good for the open-source platform is bad for Microsoft” tussle comes to a head. It’s great for open source to have Linux as a first class citizen, but that’s bad for Microsoft. ๐Ÿง


So if you know what %2f means in URL land, you’re gonna want to know about this change in behavior for Kestrel. I seemingly had to deal with this same sort of problem way back in the .NET 4.0 days and unfortunately never got it resolved. ๐Ÿ›


#OnDotNETLive talks about a new open source data processing framework for .NET. I love the smell of ETL in the morning. ๐Ÿต


Rider 2022.2 includes some new features for C# 11 and this reminds me I really ought to give Rider a try. Even with VS 2022 Resharper is still indispensible (especially vs. that weird AI/Intellisense thing Microsoft is trying out). โœจ


Apparently Ready Player One was wrong about the first easter egg proving that if you want to get the right answer on the internet, just post the wrong one. ๐Ÿฅš


And that’s it for what happened Last Week in .NET.

[Last Week in .NET #95] – Azure Honey is Free

We’re coming out of the summer haze slowly but surely, with the impending doom of school and the wonder of Autumn coming towards us here in the Northern Hemisphere.

Something that is near and dear to my heart (as I am currently working on refactoring code to pull out the exceptions as flow control and replace it with something that is a bit… saner is this talk on doing just that in ASP.NET 6. Don’t let the 6 part fool you, these are good examples whose pattern fits older .NET applications as well — but you don’t get a conference talk accepted if you talk about removing Exceptions as Flow Control in .NET Framework 4.8. ๐Ÿšฟ


Microsoft has a rationale for disabling 3rd Party UEFI certificates by default and that rationale is indistinguishable from “we don’t want competition.” Don’t get pissy on me, there are lots of other explanations, but even simpler is that Microsoft doesn’t really see the independent PC market as a customer, and their solutions therefore ignore the independent PC market. ๐Ÿ‘จโ€๐Ÿ’ผ


A New Linux Downtime podcast has dropped and this one talks about the Windows Subsystem for Linux (WSL) and spends some time saying “Microsoft has changed.” I’ll listen to the episode before I cast judgment, but see my above statement about ‘independent market’.๐Ÿ‘›


Matt Warren has a talk up from NDC London 2022 about performance in the .NET Runtime. If you’re like me you watch this sort of stuff with pure fascination. โฉ


There’s a blog post out from Sadukie about Free Azure Services This “free” is not to be confused with a Van parked on your street with the words “Free Candy” spray-painted on the side. ๐Ÿฌ


XUnit v2.4.2 is released Go little rock star. ๐ŸŒŸ


So it looks like someone is forking repositories on Github, adding malware, publishing those repositories on NPM, and hoping people download them. In other cases they’re hijacking accounts with commit rights and using those to push malware. Be careful out there folks. ๐Ÿ“›


In the “holy shit that’s cool how do I ever get Windows Terminal to be the default”, it looks like you can set WSL2 as your default shell in Windows Terminal. Ok, now can someone make a Winget package that just does all this for me? I’m getting too old to want to spend time customizing my terminal, sorry. ๐Ÿง“


Winget package manager 1.3 is out I’m still salty about the AppGet Debacle though. ๐Ÿ“ฆ


If “Microsoft first” is your rallying cry when developing in .NET, here’s a blog post that tells you the best Microsoft technologies to use in your stack. If “Microsoft first” is not your rallying cry, we should be friends. ๐Ÿค


A visual aid to understanding why Queueing theory is a thing with cheeseburgers. If your WIP limit is the same size as your teamsize, you will run into this problem. Try halving it and see if that doesn’t get stuff out of WIP faster. ๐Ÿ”


Force HTTPs in your ASP.NET Core applications. I won’t even talk to my wife over HTTP. (If you’re reading this, honey, I love you and this is a joke, please don’t kill me). ๐Ÿฏ


And that’s all I found last week in .NET. If you’ve got something to share, hit me up on twitter @gortok, or via email at george at george stocker dot com all one word lowercase and no I am not using voice to text to do this newsletter

[Last Week in .NET #94] – The Summer of .NET

@foone on twitter takes you de-compiling Skifree in an epic twitter thread. If you’re bored at work (or work is just boring) give this a read, it’s worth it. โ›ท


Pluralsight Flow’s tries to quantify producitvity. Since we all know that’s a fool’s errand, there’s a twitter thread on what to use instead. ๐ŸŒŠ


The 780th Military Intelligence Brigade (Cyber) links to a Microsoft Research paper about BlackCat. The research paper is actually interesting and linkable on its own but I’m not above making fun of the fact that in 2022, we still refer to the Internet as “Cyber”, and that there’s an Army Unit out there that are literally known as Cyber Warriors non-ironically. ๐Ÿค–


Microsoft promises to be all-in on ARM Development. Contrary to their promises of UWP, WPF, XNA, and Linq2SQL, they’re going to keep it this time. And in all seriousness, ARM isn’t going away; and it’s the future, so I do believe they’re going to keep this promise. Still, if I’m wrong, [we can always reference this blog post about ARM Development on Windows](https://devblogs.microsoft.com/visualstudio/arm64-visual-studio/ as evidence. ๐Ÿ’ช


I get flak at times for being persistent in holding Microsoft to account. “If you don’t have something positive to say, don’t say anything at all” and all that. But, the lack of forthright discussion about Microsoft’s flaws is what got us into the mess where Azure’s Security team talks less than a cop under criminal investigation. If you think I’m being facetious, just remember that we still don’t have a full accounting of the ChaosDB incident, and the little they have said leaves a lot to be desired in the disclosure space. What concerns me is that this week’s newsletter is going to have more words in it than their supposed accounting of this incident.

What would solve this?

  • A deep dive into the technical part of how this was allowed to happen in the first place.
  • The extent of their security and logging practices that leaves them confident that this vulnerability didn’t go further than they say it did
  • Hiring someone who speaks like a frigging human when they write and doesn’t sound like they went to Harvard Law School, graduated with honors and then was accepted into the Washington State Bar, where they practiced and honed their craft of saying absolutely nothing that may have a detrimental effect on their legal liability or accidentally sound like they care about their customers.

Put simply, it appears to the outsiders that Microsoft’s Legal department has to OK all their communications, and their legal department airs on the side of extreme caution, to the point that it makes Microsoft seem less trustworthy because you know you’re not getting the full story.

Also, any time a company releases a blog post with the word “update” in it, the news is bad. โš–


David Fowler takes you through Microsoft Orleans; a project that seeks to make Distributed Computing look like Monolithic Computing. I love this dive, even if I’m on the fence about Orleans itself]. ๐ŸŽท


Microsoft’s Windows Diagnostic Tool had a Vulnerability and a patch released for it, under the CVE categorization of CVE-2022-30190. ๐Ÿฉบ


Barry Dorrans (he’s the Beans Guy) reminds you there are sometimes non-apparent reasons to update your .NET SDK, like a nuget publishing vulnerability being patched. ๐Ÿ†•


Scott Holden takes you through running .NET 7 ASP.NET Core Minimal APIs with top-level statements in a scratch container, with AOT enabled. It’s a beautiful thing, even if we’re still hoping for our killer app. ๐ŸŒ‡


Microsoft Security Research Center’s Barry Dorrans (Again, he’s the beans guy) reminds us that it’s up to the Product Groups to do their jobs, and it’s not MSRC’s fault if the product groups don’t do their jobs (also, see above). ๐Ÿ™ˆ


Ory puts the “security” in enterprise cloud security, and apparently it’s easy to use. I raise awareness for this; not because I think Ory solves that problem (I honestly don’t know), but because until we get more eyeballs on these things, we won’t know what actually solves the problem. The problem? Enterprise Identity is still a mess. An unmitigated mess. ๐Ÿ”’


Incidentally, I stopped writing Last Week in .NET in part because I needed time to calm down about the issue of Microsoft once again retreating into closed source territory with .NET. You see, once you proclaim to the world that you love open source, you’re going to have a bad time any time you go against the open source world’s interpretation of that statement. Microsoft could have meant “We love to use Open Source, and we love that people think we’re in love with making our stuff open source”, and that is indistinguishable from their current actions.

For developer tooling, being Open Source is critical to having acceptance. Every single step that Microsoft takes in the other direction is a step that harms the already fragile .NET ecosystem.

As an aside, I had my suspicions about why Miguel De Icaza left Microsoft, and this tweet all but confirmed his reasons for leaving: Microsoft is reneging on its open source promises with the Debugger Licensing issues, Hot Reload, and now this.

Because words are free, I also gave my two cents on reasons for these issues at Microsoft in twitter thread form. ๐Ÿค‘


Microsoft Terminal is now integrated with Visual Studio, increasing the number of shells that you can access in Visual Studio to 6. You’d think at some point they’d consolidate, but I’m guessing there are 6 different teams who would be very upset if that happened.

There’s the Package Manager Console, the Visual Studios Tools Command Prompt, the Command Window, the Developer Powershell Window, the Developer Command Prompt, and now the Terminal. There’s also the Immediate Window that is terminal-like. 6๏ธโƒฃ


In .NET 7, error messages are getting better. More of this please. โœ…


Cloudflare owns a wall full of LavaLamps that they use to generate randomness. The Computer industry holds up the lava lamp industry. ๐Ÿช”


SQL Server Management Studio 18.12.1 has been released Honestly SQL Server Management Studio should have been folded into Visual Studio a long time ago. Let’s just go ahead and do that and not pretend they’re different SKUs. ๐Ÿ‘ฌ


Rick Sthrahl takes you through how to render ASP.NET Core Razor Views to string. ๐Ÿงต


There’s an ACL visualizer for Active Directory that looks pretty interesting. I’m not in this part of Windows, but if you are, give it a try and let me know how you like it? ๐Ÿ’โ€โ™€๏ธ


.NET Conf “Focus on MAUI” is August 9th. ๐ŸŒด


Finding some middle-ground between Old School .NET Framework apps and Self Contained Deployments. I hope this gets legs. ๐Ÿฆต๐Ÿฆต


Dave Glick wrote a piece for Twilio on Razor Templating. If you know Dave Glick you know it’s good, and if you don’t know Dave Glick you should read it anyway. He’s also the guy behind Wyam. ๐Ÿ‘


Speaking of Microsoft breaking promises, OneNote’s web version is getting updates, but not their UWP version. Update it or Sunset it… Or Merge it?๐Ÿคทโ€โ™€๏ธ


Switching Git Branches in Visual Studio is getting faster, which is welcome (although being the old that I am I’ll probably always stick to the git-bash command line because you really can’t get faster on Windows than a linux based shell. Don’t believe me? Try to delete your bin and obj folders in Explorer or using cmd.exe vs an rm -rf in git bash). ๐ŸŒฒ


No, C# is not dying, but no language lives forever. Perl would like a word. ๐Ÿ˜


And that’s mostly it for what happened since the last time I published Last Week in .NET. I am rethinking whether to continue this newsletter, if I’m being honest. There are plenty of .NET link dropping newsletters, and while I like to think I’m offering something different, if it’s not what people want then I should spend my time doing something else. How can I prove this is what people want? More newsletter subscribers. So use the share URL at the bottom, and let your .NET Team know on slack that this is around. If they like it and I get subscribers, that’s a sign I should keep doing it.

The Green Boxes of Burnout

I was doomscrolling through twitter when I noticed Github was trending. While checking out why it was trending I noticed this tweet:

And, nothing against Eddie, but my entire being cringed at that image. It shows (on an otherwise entirely shades of green image) 5 days out 77 days as time where Eddie didn’t make a single ‘contribution’ on Github. No commits, not wiki edits, no issues, nothing. For 5 days, out of 77, and he claimed this is the time needed to recharge and come back stronger.

Let’s pump the hustle brakes for a moment.

f

Source image from original tweet. Mirrored in case the tweet is deleted.

All else being equal, in 77 days, we can roughly expect there to be 23 non-working days (including holidays, on average), so if we just kept to the capitalist maxim of ‘putting in 40’, you should see 18 more grey days than exist on that image.

Even if Eddie followed the Protestant work ethic and worked every day but Sunday, you still should see ~10 grey blocks on that image.

But instead, what we see is that absent a few days (not even consecutive), Eddie went full tilt. I tried visiting his github profile to see if I could match it up, but none of the years of contributions matched the image, and incidentally it’s not relevant to my larger point, which isn’t about Eddie.

It’s about us and about the myths we cling to as reality.

Writing Code isn’t valuable. Writing Lots of code less so.

Github profiles optimize for writing code, not solving problems.

Hustle culture optimizes for being busy over solving problems.

The irony is that to solve problems, we have to step away from the code, and step away from the outward signs that we’re hustling.

Hustle leads to burnout, and to quote Carl Richards: Time off is a prerequisite for good work, not a reward for it.