The virtues of Autonomy

Pretty often when teams start out with microservices; they split up a monolith and make the intra-monolith calls into remote RPC calls. Or, in every day terms: They put an HTTP API over those old function calls and now call that instead.

Why would anyone do that? What do you gain?

You’re still coupled to that service being available.

You don’t have request autonomy.

You’ve added extra network latency and another point of failure.

Sure you can scale that new service; but the same problems remain.

That’s one of the reasons why if you’re going to pursue microservices; you should pursue an architecture that allows each service to stay autonomous.

Event Driven Architecture does just that.

I’m hosting a webinar on August 18, 2021 at 12pm EDT titled “Event Driven Systems: Bringing Order to Chaos” that helps you understand what Event-Driven means, and how it’s a good choice for microservices.

[Last Week in .NET #52] – TwinCVEs

Several Zero-Days, and some more pontificating on the future of Programming as it relates to CoPilot. It’s been a busy week, so let’s see what happened Last week in .NET:

๐Ÿงฑ Next-generation firewall capabilities with Azure Firewall Premium. Microsoft is literally charging a premium for better security. Not a great plan.

๐Ÿ”“ Let’s make Visual Studio even more accessible together This is a wonderful shift in focus, and I hope Visual Studio accessibility continues to improve.

๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐ŸผCecil Philips and David Pine talk positional pattern matching in C# and how it works and true to the internet there’s at least two commenters who thinks they know better than the language creators.

๐ŸŒƒ๐ŸŽKevin Beaumont validates that Microsoft made the SAM database (user passwords) accessible to non-admin users on Windows 10 which is… problematic, to say the least. Kevin followed up with a blog post that goes deeper into how #HiveNightmare works.

I would like one week. Just one week where it doesn’t feel like the sky is falling in info-sec.

๐ŸŸฅ Speaking of the sky falling, Windows Hello bypassed using infrared image. We call it science fiction because it isn’t realistic — and that’s true: They put more effort into security than real life.

๐Ÿ•ต๏ธโ€โ™‚๏ธ DevSecAI: Github Copilot prone to writing security flaws Microsoft’s designs of monetizing CoPilot seem like it’s fading. The problem with artificial intelligence is that it mimics our own intelligence.

๐Ÿ—ƒ Jonathan Blow, creator of the Braid and The Witness, says Don’t use fopen() on Windows turns out there’s a bug when you do file stuff in multiple threads where file flushes don’t happen at predictable times.

๐Ÿ”ฎ Github Copilot: Fatally Flawed or the Future of Software Development? Yes.

โœŒ Ars technica writes: Two-for-Tuesday vulnerabilities send Windows and Linux users scrambling Exploit #1 was the aforementioned SAM Database vulnerability; and the second is a vulnerability in the linux kernel, by creating, mounting, and deleting a deep directory structure with a total path length that exceeds 1GB and then opening and reading the /proc/self/mountinfo file.

๐Ÿ’ป๐Ÿซ The ML.NET Community standup happened last week, and they talked about ML.NET 1.6 and more.

๐Ÿ” Christo Matskas has a blog post out on how to Secure Open API (Swagger) calls with Azure Active Directory.

๐Ÿ˜ด Azure SDK Release (July 2021) and yes, the word Azure is in the title but not much else, which means it is definitely an azure blog post. The Azure SDK includes new App configuration settings, features for iOS in Azure Communication Services, and releases Azure Cosmos DB for Java, Azure Data Tables, and Azure Metrics Advisor for .NET, Java, JavaScript, and Python, and more. Yes. And more. I’m going to fall asleep if I have to type all these services out. So if you use the Azure SDK, check this post out — but pour yourself some coffee first.

๐Ÿ†˜ Miguel Ramos tweets that if you do Windows UI development, they’re going to want to know what you think.

๐Ÿ“ข Visual Studio 2019 16.10.4 has been released. This update includes several bug fixes and performance improvements, as usual.

๐Ÿพ There is a new System.Text.Json source generator in .NET 6. This allows you to have System.Text.JSON serialization classes auto-generated for you and results in more optimized serialization and deserialization.

๐Ÿ’โ€โ™‚๏ธ Github Policy releases Minimum Viable Governance: lightweight community structure to grow your FOSS projects. It’s a document that gives some… sensible defaults for open source project governance on Github.

๐Ÿšซ๐Ÿœ Michael Peรฑa (not that one) gave a talk to the Philippine .NET Users Group on the state of .NET on Mac OS and it’s well worth your time.

๐Ÿ“ƒLooking for the 20 best C# and .NET Blogs? Seb Nilsson has you covered. It’s my personal opinion that Eric Lippert’s blog is criminally underrated.

There is a self-reported Intuitive Gudie to Understanding Closures in C# and while I won’t pass judgement on ‘intuitive’, I will call it informational.

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

Event Driven Systems: Bringing Order to Chaos

I’m hosting a free 1-hour webinar on August 18, 2021 that is titled Event Driven Systems: Bringing Order to Chaos.

This webinar is for you, if:

  • You’re contemplating Microservices
  • You already have Microservices that communicate over HTTP or gRPC
  • Your monolith is driving you nuts and you’re looking for a way to make the transition to Microservices easier

In this hour long webinar, we’ll go through the boring sounding “Finite State Machine (FSMs)”, and the features of FSMs and event driven architecture that power everything from embedded firmware to the largest web applications. We’ll work through how Event Driven architecture works at scale, and the benefits and challenges you’ll face.

You’ll be introduced to how different software applications use FSMs and Event Driven Architecture, where they make the most sense, and how those principles can bring order to chaotic systems and de-couple parts of your system from each other, making debugging and solving painpoints your customers face easier.

By the end of this webinar, you’ll have a good high-level understanding of Event Driven Architecture and you’ll be able to decide if it’s right for your system.

Sign up here!

[Last Week in .NET #51] – The Next Three Zero Days

๐Ÿ“† July 29th is .NET “Focus on F#” Day. You can sign up to watch a whole day of videos on F# at I haven’t ever seen a CFP for these “Focus” events so I’m unsure of how they pick their speakers; but it looks like a good lineup.

๐Ÿช Microsoft publishes its own applications through the Microsoft Store, making it about 95% of the Microsoft Store.

๐Ÿ“น On July 8th, Kathleen Dollard, Rich Lander, and Immo Landwerth ‘sat down’ on youtube to talk about What’s new in .NET 6 Preview 6 & 7, and how they handle “breaking changes”. Which they can handle now that they aren’t wed to “Don’t break anything at all costs” .NET Framework.

๐Ÿ’โ€โ™€๏ธ Bill Wagner and Beth Massi talk to .NET Notts about what the .NET Foundation does, and that’s important because

โ˜‘ The .NET Foundation 2021 Board Nominations are open but don’t get your hopes up because there’s a nomination committee who will decide who actually gets voted on. There’s also a job description of what board members do, if you’re interested.

โฉ The ASP.NET Community Standup – Building with Blazor happened last week and it shows how was built using Blazor.

๐Ÿ“ข .NET 5.0.8 has been released. The interesting bit here is that now you can use Windows Forms and WPF are supported for Arm64. This was initially in .NET 6 Preview 1 and backported to .NET 5.0 with this release.

๐Ÿ“ข .NET Core 3.1.17 has been released. Several non-security bug fixes are in this release.

0๏ธโƒฃ Microsoft Patches 3 Under-Attack Windows Zero-Days the big news here is that if you have Windows Systems, you’ll have already wanted to patch them. If not, patch them now. One of the three Zero-days includes a drive-by attack via web browsers. Second to that is that there are 117 vulnerabilities patched, with 17 labeled ‘critical’.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ You know you can run multiple projects when you hit ‘F5’ in Visual Studio, right? I love the gif method of teaching; and because of that I’ll forgive the horrible experience we’ve taught ourselves is adequate with debugging multiple projects via F5.

๐ŸŒŽ Global Usings are in .NET 6 and this seems like something that will in no way ever be abused or lead programmers to wonder what namespaces are avialable.

โ˜ Microsoft introduced the Windows 365 Cloud PC last week and the interesting bit here is that now you can build Windows applications without needing windows. You’ll never have to worry about zero-days plaguing your personal computer, and you’ll get to snobbishly remind people that you use linux all at the same time! As usual the licensing situation with Windows 365 is inscrutable to mere mortals.

๐Ÿ“ข Announcing .NET 6 Preview 6 with the previously mentioned Arm64 support, Apple Silicon support.

๐Ÿ“ข Visual Studio 2022 Preview 2 is out and it includes Web Live Preview for ASP.NET? Wait a second. ASP.NET… Webforms? That’s still a thing? There’s doubling down on an old technology, and then theres… this.

๐Ÿ“ The Microsoft Windows Developer Team has their ‘notes’ publicly visible for Windows Development and these pages are chock-full of interesting tidbits. If you find yourself doing native Windows development, you’ll want to bookmark this.

๐Ÿ“ข ML.NET 1.6 has been released and it now supports Apple’s Silicon, along with several other fixes.

๐Ÿ˜œ Microsoft released a new emoji introduction video and whatever team did this needs to be responsible for the Windows Experience in general. I have a feeling they could do better than what we’ve got.

๐Ÿšซ๐Ÿง System.Drawing.Common will be Windows-only in .NET 6. While a good move, it feels like ‘Common’ isn’t. Programmer hubris comes for us all in the end.

and Lastly,

A helpful tip for debugging, you can use Debugger.IsAttached as a way to catch Exceptions, but wouldn’t you just click the ‘Break on All Exceptions’ checkbox in Visual Studio? How is this different from that?

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

[Last Week in .NET #50] – Copilot or JEDI?

๐Ÿ„ Jetbrains’ Simon Cropp is hosting an “OSS Power-ups: Verify” event and I have no fracking idea what any of these words put together means. Which, if you think about it is entirely on brand for OSS, where marketing is shunned.

โณ Rick Strahl has a lengthy blog post about converting the Desktop application Markdown Monster to use C#’s Async/Await. This is as an indepth dive into real-world async that you’ll ever see and worth your time.

๐Ÿ–จ๐ŸŒ™๐ŸŽ Microsoft released a patch against the PrintNightmare vulnerability and lo-and-behold it doesn’t actually mitigate the vulnerability, writes Brad Sams. Who among us hasn’t had a patch that “Worked on my machine”? Now none of us are worth 2.09 Trillion, but does that really change things?

๐Ÿ—ฃ .NET Conf “focus on F#” is July 29th, and you can sign up here Now’s your chance to learn about F# and tell the world about it.

๐Ÿšซโš” The Pentagon has canceled the disputed JEDI cloud contract with Microsoft and in order for the project not to spend the next ten years in litigation will pursue a multi-cloud strategy — with Amazon, Microsoft, and possibly other cloud vendors. We are in the “Too big to deal with” stage of capitalism decline.

๐Ÿ‘ฎโ€โ™€๏ธ Did you ever want to check to see if if the app is being run as sudo or admin on linux? This code snippet will help you do just that.

๐Ÿ•ต๏ธโ€โ™‚๏ธ Several Netfilter Rootkits — signed by Microsoft — hit the wild today. In case that sentence didn’t sufficiently scare the shit out of you; a rootkit is bad. Microsoft signing rootkits is about as bad as it gets. It’s like your spouse giving a crook the keys to your house and letting them know when you all will be gone.

๐Ÿ”Ÿ Wassim Chegham writes about 10 Things to Know about Azure Static Web Apps and this is a good write up and a reminder that Microsoft is very late to this party but markets as if they created sliced bread.

๐Ÿซ Oskar Duycz has you covered with an updated readme and tutorial on event sourcing in .NET (Core). If you think of event sourcing like that annoying kid in your 6th grade class that reminds the teacher when she forgot to assign homework and when the teacher forgot to give a scheduled quiz, it makes a lot more sense.

๐Ÿ• Scott Carey of Infoworld talks to developers about their reactions to Copilot Surprisingly none of them were upset at the lack of lubrication involved in getting ‘Copiloted’ by Microsoft. Yes, that is a euphemism now.

๐ŸŽฅ On Friday, July 16th, 2021, Jon Skeet will be talking about the .NET Functions Framework that is available for Google Cloud Functions. Google has a better name for it (.NET Functions) than Microsoft does — and no shit the name Microsoft gave it (according to the website title) is “Azure Functions Serverless Compute”.

๐Ÿ“ข The June 2021 (version 1.58) release of Visual Studio Code came out on July 8th. It includes the ability to move terminals to the editor, the Debugger now remembering your previous environment choices, Jupyter code improvements and debugging, and Workspace trust — which sounds vaguely enterprisey but really means “browse code without worrying about the 25 years of macro-exploits that made Microsoft Office synonymous with getting hacked”.

๐Ÿ’ธ This next one is a commercial plug I didn’t catch; but I’ll own that. If you’re still on silverlight, support ends in 101 days and Mobilize.NET wants to help you modernize your silverlight application through this webinar. Honestly at this point if you’re still using Silverlight you need a commercial partner to get you out of the hole you’ve dug yourself into. Also, this webinar talks about “Reserving your seat” but does not specify a date or time so I can only assume it’s a marketing trick to get you to sign up and it’s actually an on demand webinar. In related news I have found the an extra category for the 9th circle of hell.

๐Ÿ’ฏ Last week i shared Part 1 of how StringBuilder works; and Steve Gordon is back this week for Part 2 of how StringBuilder works. I applaud the effort Steve put into this post; I love the visualizations and it’s a good overview.

๐Ÿ”ซ For the InfoSec (and cyber security, sigh @ govies) folks among us, Zac talks about a CobaltStrike hunting tip. I refuse to read the contents of the tweet into this newsletter because it is functionally indistinguishable from the contents of a hex editor. For the people who know, it will make sense though.

๐Ÿ‘ฝAs a bonus for making it through last week, here’s an oral history of movie Independence day titled โ€œYou Canโ€™t Actually Blow Up the White Houseโ€: An Oral History of โ€˜Independence Dayโ€™ — which turned 25 last week.

And that’s it for what happened Last Week in .NET. It was Independence Day / listen to fireworks at midnight all week here in the States, so that could attribute to the lack of releases. Stay frosty and I’ll see you next week.

Put That Microservice Down.

We need to have a no-shit moment, you and I.

Put that Microservice down.

Microservices aren’t for you, yet.

Let’s reach over to the well of software development conventional wisdom and draw out a slogan we all live by. Here, I’ll pick a random one:

Do the simplest thing that can possibly work.

Are Microservices really the simplest thing? Really?

Hell, I’ll pick another random slogan from the well:

You Ain’t Gonna Need It.

Maybe these aren’t random; but they are our best known slogans. In fact, going through all of the truisms I can think of in Software Development, none of them advocate for something remotely like Microservices.

I’ve tried, but I can’t find the “purposefully break up one piece of software into independent and autonomous collaborating systems that none of our tooling is really built to support and that the tooling that tries to support it tries to treat all of it like a monolith anyway (Hi to Dapr, Thrift, et. al.).” truism in our industry.

So why the hell are we creating microservices like our livelihood depends on it?

We don’t even know what the word “microservices” means. At least with its former name, Service Oriented Architecture, the name gave us an idea what direction to head in.

So putting aside for the moment that we don’t even know what that word means,

Have we gotten to the point where these slogans are necessary, but no longer sufficient?

Is there a point where YAGNI, TIMTOWDI, Worse Is Better, Don’t Repeat Yourself and the rest just fall flat on their face as truisms?

Have we reached that point where we have built so much complexity around software development that the old ways of building software are windows into a past we’ll never see again?

I remember starting out in Web Development in 2000 with Perl, and it was simple. It wasn’t easy, but the steps were simple. Looking back, we also didn’t know what we didn’t know, cross-site scripting, XSRF, click-jacking and the like were barely known industry wide. Whether it’s because of the fragile nature of the internet or because those living history don’t have time to write it down, it was hard for me to find the original online first mention of cross-site scripting. It’s hard even today finding what was representative of web development in the year 2000. You can still do it; but the flavor isn’t quite right.

Instead, today, we have lots of moving parts: Webpack, npm, nuget, MVC, API, caching, varnish, pubsub, the myriad of services you would use from a cloud provider: Elastic Beanstalk (is that still a thing?), Elastic Container Service, Elastic Kubernetes Service, API Gateway. Fargate, EC2. And that’s just Amazon’s. Microsoft’s Cloud is similarly situated, except they stick “Azure” before everything because how else can they meet their marketing KPIs? Azure DevOps, Azure Container Instances, Azure Kubernetes Service, Azure App Service, etc.

Once you’ve survived those sets of choices, you still have to decide what front-end you would like to use, if any: Angular, React, Vue, Vanilla JavaScript With Server Rendered Views. And that front end doesn’t even take into account the visual — Bootstrap, Tailwind, Bulma, and dozens more I don’t even know about.

I recognize it’s boomer-ish to pine for the good ol’ days; and in this case, the pining is for a simpler software development model, but I have to ask: Is it gone, never to be here again? Are we just stuck with all this complexity to make anything useful for our customers?

Put another way: Monoliths are a way for us to hold on to the last remaining vestige of our development stack in the year 2000: The code that does the work lives in one place, together. Of course it’s in one repo; but the entire thing is deployed together.

Monoliths may be the last simple thing we have in a world where a new developer needs to understand several disciplines to get a website to work. And now, unceremoniously, we’ve decided that new work should be done in small chunks, deployed separately, collaborating with other small chunks of functionality, and that somehow we’ll be able to make all of this work without going insane.

Microservices tear apart that last remaining bit of simplicity. We shouldn’t do that lightly. Gall’s Law comes to mind:

A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.

John Gall, Gall’s Law.

Success comes from simplicity. You keep success by managing that complexity and keeping it as simple as possible.

And that’s what moving to microservices has to be about. To be successful, it has to be a transition from simplicity because of a small problem set to managing complexity as that system grows. It becomes a way to manage complexity using another dimension — with hopefully better outcomes than other discarded methods.

What discarded methods you ask? Well, how many teams do you know of that strive to put code under test before it’s written (TDD)? Or teams that relentlessly refactor code to reduce technical debt? Or teams that practice loose-coupling and high cohesion of code? Or teams that keep slack in their sprints so they can focus on ensuring they’re adding value without adding in accidental complexity?

How many teams do you know that practice one of those things more than 20% of the time, let alone all of those things?

And that’s just development team practices; ‘agile’ delivery methods like kanban or scrum seek to reduce complexity on another axis: making it easier to deliver value on a regular cadence.

Those are all methods to manage complexity, and microservices attack a combination of delivery and maintainability: breaking down parts of the system into its discrete pieces; allowing developers to reduce their cognitive load, to only think about the part of the system they’re changing without the rest of the system creeping in; but that has a cost.

Before you pick that Microservice back up, why do you want to move to microservices?

Is it because that’s what the cool kids are doing?

Is it because that’s where software development is going?

If so, don’t. Stay in the world of the monolith as long as possible. That’s the only way to escape the complexity you’re about to encounter.

But, if you’re pursuing microservices because:

You want to manage the complexity and cognitive overhead of your system, and other approaches haven’t worked.
You want to open up new lines of business without modifying existing parts of your system.
You want to scale your system and make it easier to adopt cloud native services.
You want to replace your aging monolith in a graceful fashion, without a big-bang rewrite.

Then you’re doing it for the right reasons, and you’ll get the most out of the move to microservices.

But let’s be real: It’s not an easy road, but it’s worth it if you are solving the right problem.

8 Reasons to Adopt Microservices, in fewer than 100 words

  1. You find yourself copying and pasting code to enable new lines of business.
  2. “We don’t know why this happens” becomes a familiar refrain.
  3. You have at least one ETL or ELT process.
  4. Enterprise customers want you to segregate their instances from your standard multi-tenancy practices.
  5. You’re on .NET Framework, but you want to embrace .NET Core while keeping your production .NET Framework instance working.
  6. You’re on .NET; but want to develop new features in another stack.
  7. You want to make work streams independent.
  8. Easier to adopt cloud-native services.

[Last Week in .NET #48] – Windows 11 price? A new PC.

The Windows 11 livestream happened last week, and the big news there is just about every computer older than 2017 will require you to upgrade your hardware to use Windows 11. This is bad news and I am unhappy about this turn of events.

โ˜  Barry “I love tormenting people with pictures of beans” Dorrans reminds all of us that .NET Core 2.1 is End of Life at the end of August. I’m impressed support for .NET Core 2.1 lasted this long.

๐ŸšœR# and JetBrains Rider will support “Create from usage” for C# Records, which is pretty neat if you ask me.

โšก Let’s Learn .NET – Blazor” free Livestream happened June 25th so if you want to learn Blazor, this is your chance to catch up on the video.

๐Ÿ› David Fowler And Damien Edwards talk about ASP.NET Core’s Architecture (Part 3) in this youtube video. This is a very informative series, and I’m looking forward to watching the recap.

๐Ÿ’ฐ .NET Nanoframework received $10,000 (USD) from the Microsoft FOSS Fund. This was from a vote held by Microsoft Employees that work on FOSS projects.

๐Ÿ“ข Releasing Windows 10 Build 19042.1081 (20H2) to the Release Preview Channel and it’s clear that no one ever speaks these blog titles out loud. They could at least name them funny names.

๐Ÿ“ข Remote Desktop Connection Manager v2.81 has been released and there are no release notes so I just have to assume everything listed is what’s new. It seems… packed.

2๏ธโƒฃ Blazorday happened on 17 June 2021 and I can only find one video so I have to assume this one is it.

๐Ÿคทโ€โ™€๏ธ The Azure Static Web Apps Launch is June 30th. The amount of press this event has gotten leads me to believe this is something more exciting than static web hosting launching, so I have to assume it’s something more than that.

โ™ฅโ™ฆโ™ โ™ฃException Not Found (the blog, not the exception) has a Part 3 to their blog post Solitaire in Blazor, Part 3 – Drawing, Discarding, and the Stacks I’m loving this approach to teaching blazor.

โš”Attack Surface Analyzer is open source and I’m mentioning this because Barry “I wish I had married Beans” Dorrans did not realize it was open source and so it’s news to at least two of us on the internet.

๐ŸŽฉ Microsoft is now a $2 trillion dollar company and there is positively no excuse for them to need ICE’s money at this point.

๐Ÿ“† The .NET Oracle Team is looking to release ODP.NET support for EF Core 6 ‘by the end of 2021’.

๐Ÿช The Microsoft Store now supports PWA, Win32, and UWP and oh yea, Developers can use their own commerce engines and keep their profits. This is one way to get people to adopt the Microsoft store, although I have a sinking feeling if it does get adoption, this will change.

๐ŸŽฒ XBox Game Pass will be built into Windows 11 and I have no idea what XBox Game Pass is because I have three kids and no time to game.

๐Ÿ™‡โ€โ™‚๏ธ In what I consider a kindness, Kevin Gallo blogs about What Windows 11 means for developers, my thanks to Kevin.

โฏ The Windows 11 Livestream is available for replay in case you missed it. I did.

๐Ÿ“ Project Reunion has been ‘renamed’ to Windows App SDK and this is quite possibly the least Microsoft Name it could have been given. It’s clear the marketing team was not involved in the naming of this, and we are all the better for it.

๐ŸงฏIf you enjoy gambling and want to try out Windows 11 Insider Preview, Here’s a handy blog post that will take you back to Windows 10 if and when you hate it.

๐ŸคผIt’s Official, Windows 11 Is just a reskinned OSX… 11.

โฉOk fine so it’s not really a reskin, apparently, as updates are 40% smalle and happen in the background, so something is going on under the hood.

๐Ÿ˜žWant to see if your PC can be upgraded to Windows 11? Use this tool and prepare for disappointment

๐Ÿ‘ And No, .NET 6 will not be bundled with Windows 11 because that’s a terrible idea.

.NET 6 Preview 5 is now on Azure App Service and Byron is clearly not following Microsoft’s Marketing KPIs because Azure appears no where in the blog post title.

And that’s it for what happened in .NET. This coming weekend is a holiday weekend (Independence Day here in the states); so there will be no Last Week in .NET Next week, and I’m starting to regret the title.

[Last Week in .NET #47] – 11 follows X

๐Ÿ Windows 10 supports ends On October 14, 2025 according to a Microsoft support document. We’re expecting Microsoft to unveil Windows 11 this week, but I gotta say: It’s not going to be hard to get me off Windows 10 if Windows 11 promises less ads and less ‘synergy’. Appropos of nothing I bet this article on how to Disable OneDrive will be as useful to you as it is to me.

1๏ธโƒฃ Uno Platform 3.8 – New WinUI Calendar, Grid controls, 2x performance, new Linux scenario and more is the tale of a headline that doesn’t know what it wants to be when it grows up. Regardless, if you use Uno, a new version is out.

๐Ÿ”บ Visual Studio teaches you how to use the updated C# language features and this is pretty neat to watch. I maintain, of course, that if the Egyptians had access to gifs they would have used them to communicate instead of emojis.

๐ŸŽ New data access benchmarks for .NET 5 and .NET Framework 4.8 This benchmark covers all major ORMs (and Microsoft data access strategies like ADO.NET) and has been updated for .NET 5 and .NET Framework 4.8. Enjoy.

โšก Migration of Bing’s Workflow Engine to .NET 5, by Ben Watson The only fault I have with this blog post is that they never tell you what XAP stands for. If you know, could you do me a solid and let me know, please?

๐Ÿคผ Richard Lander talks with folks from the .NET team about “diagnostics” in another “Conversation” series The format is neat, even if the title is a little boring.

๐Ÿฆœ Microsoft continues its tradition of parroting Mac by parroting Mac OS X for Windows 11. I’m not even mad. That does look better. Here’s another article on Windows 11 updated look, if you’re interested in that sort of thing.

๐Ÿ“–๐Ÿ–จSo good I’ll share it twice. You wanted a .NET Repl, right? Well now you’ve got one.

๐Ÿ‘Thanks to Khalid Abuakmeh I’ve learned that Entity Framework Core Exceptions are pretty nice. It tells you the problem and how to fix it. We’re in 2021 folks, so this shouldn’t be revolutionary, but it is.

๐Ÿšซ๐ŸŒŒMicrosoft had an outage related to its Ubuntu repositories because of… Diskspace issues. Ok, first off, #hugops to the team that had to deal with this outage. Second: You’re the #2 cloud provider in the world. You don’t get to have diskspace issues, especially when you have invaded my desktop with “OneDrive”. Those are the rules.

๐Ÿ“ขVisual Studio 16.11 Preview 2 has been released and this release includes lots of little fixes plus improvements for Git in Visual Studio.

๐Ÿ“ขYou can now try out Visual Studio 2022 Preview 1 (64-bit edition) for free.

July 29th you can hear F# developers drone on about how much better F# is because it’s .NET Conf “Focus on F#” Day. I can’t wait.

โš– July 21st Microsoft wants its employees to learn more about racial justice and inequality.

๐ŸฅณAnd finally, Juneteenth (June 19th) was passed into US Law as a national holiday last week. You learn that not all of the confederacy surrendered on April 9, 1865, and that some (like Texas) decided to keep on until Union soldiers arrived on their doorstep. June 19th, 1865 is the day that union soldiers arrived and told Black slaves they were finally free. Long overdue and a small step towards righting the wrongs of our history.

And that’s it for what happened Last Week in .NET. If you’re pursuing microservices, take my five day course before making the move.