[Last Week in .NET #71] – We’re all fine here now, thank you. How are you?

Github’s COO exits a month after their CEO left, Github gives a ‘status update’ to their downtime over the past month, and a battle over Microsoft’s corporate culture is being waged internally.

๐ŸšขAnti-Patterns when Building Container Images There are a lot of little paper-cuts when using container images (docker images, the Xerox of Containers), especially if you want to host your database in a container image. So, read this and file it away for when you invariably run into a problem.

โŒ๐Ÿ—Uno aka “MAUI that’s available right now” 4.0 has been released If you want cross-platform .NET UIs, you want to use Uno. They’re not a sponsor, but their business is cross-platform UIs, and Microsoft is still stuck in the 90s image of Microsoft being Windows only, more on that in a minute.

๐Ÿฐ2๏ธโƒฃCake 2.0.0 has been released Last week they released Cake 2.0.0rc0002, and the number of leading zeros on the RC had me a bit worried, but not to fear, they’ve just said f*ck it and released Cake 2.0. There are a ton of breaking changes (not what you want to hear) and feature improvements, particularly around supporting .NET 6. No one really wants to upgrade their build tooling, but they do want their build tooling to support their framework up-to-date.

๐Ÿ“ขฮฒRider 2021.3 goes Beta The Debug UI gets a new ‘fit (that’s what the kids say, right?), and it supports more C# 10 features, like file-scoped namespaces (Which felt like it should have been in C# 1.0), and global usings (which I maintain shouldn’t exist) and string handling changes as well as lambda changes for C# 10.

๐Ÿ™ˆGithub Availability Report: November 2021 You know Github has fully integrated into Microsoft when their blog post titles about bad news are a milquetoast as possible. In this case, Github was down on November 27th, for almost 3 hours. I can hear you saying this now, “That’s unfair, George”, but if we go back to Scott Sander’s release in 2016 from a similar issue (Github was down for 2 hours and 6 minutes that time), Scott starts out by saying:

Last week GitHub was unavailable for two hours and six minutes. We understand how much you rely on GitHub and consider the availability of our service one of the core features we offer. Over the last eight years we have made considerable progress towards ensuring that you can depend on GitHub to be there for you and for developers worldwide, but a week ago we failed to maintain the level of uptime you rightfully expect. We are deeply sorry for this, and would like to share with you the events that took place and the steps weโ€™re taking to ensure youโ€™re able to access GitHub.

Contrast this with the first paragraph of the November 27th 2021 outage:

In November, we experienced one incident resulting in significant impact and degraded state of availability for core GitHub services, including GitHub Actions, API Requests, Codespaces, Git Operations, Issues, GitHub Packages, GitHub Pages, Pull Requests, and Webhooks.

No apology, no personal touch. Not even active voice — did Scott change his entire writing style in 4 years? It’s possible, but the active to passive voice switch and the lack of all humanity leads me to believe the blog post was wordsmithed by Microsoft Legal or Marketing… Or both.

๐Ÿช’Introducing the new Razor editor in Visual Studio 2022 This is a welcome addition. Editing Razor files in Visual Studio has always felt like a high school senior submitting their final a night before it’s due with a ‘f*ck it I’m graduating anyway’ attiude. I’m hoping this continues. Razor is nice enough that it shouldn’t have any rough edges.

๐Ÿ’ธMicrosoft has open sourced their “FHIR” implementation with FHIR Server for Azure. FHIR stands for Fast Healthcare Interoperability Resources, and this is a wonderful thing to open source. The fact that this code is designed for Azure and is not portable between cloud vendors (yes, Between) means it’s the equivalent of getting an in-store credit; but I’ll take it. I wouldn’t be surprised if an AWS implementation pops up forked from this code.

In what has become the Song of my People, Mark Rendle says “Don’t upgrade to Windows 11. Wait for SP2”. I don’t have to hear any more. This has been the case since Windows 3; with a minor exception of Windows 7. Always wait for the first major ‘fix’.

๐Ÿ—ฃGithub Copilot has an experimental feature that explains code to you And this is wild, and the usecase is for those of us that write write-only code. You know, people that use Perl. I bet it doesn’t support Perl, though.

๐ŸฆกMicrosoft Edge’s marketing team is its own worst enemy This is a common thing that happens at Microsoft, so much so that I’m convinced their org chart isn’t accurate. It doesn’t show the giant gun a business unit points at itself. Edge is not a half-bad browser. It’s probably the best browser to ever come out of Microsoft. The problem is they want you to use it, and so they resort to dirty tricks to get you to use it. Someone’s bonus is tied to the usage rate for Edge ticking upward, and it shows.

“This is from months ago, George, how the heck are you bringing this up now?” Well the latest trick is for the Chromium-based Edge browser to call Chrome “so 2008”.

๐Ÿ›คMicrosoft backtracks on windows 11’s controversial default browser changes. They are back-pedaling from the “Let’s make it hard to change the default browser” strategy towards getting their yearly bonuses, however.

๐ŸงชAlba 6.0 is friendly with .NET 6, Minimal API, and WebApplicationFactory fun fact, I spent a few months reproducing Alba because I didn’t know it existed. If you want an easy way to test your HTTP APIs, use Alba.

โžฟAzure Friday: The year in retrospect These are Rob’s favorite videos from this year in Azure Friday, and since it’s getting close to the holidays and you want something to listen to while you’re pretending to work, this is as good as anything you’ll see in the Azure space.

๐Ÿ™…โ€โ™‚๏ธ๐Ÿง™โ€โ™‚๏ธStop Telling me Trust Fund Kids are Finanical Wizards BillG makes an appearance, but it’s an Elizabeth Holmes and Elon Musk hit piece (There are no self-made billionaires).

๐Ÿ™ƒMicrosoft announces an employee only survey on… Twitter Not Yammer, Teams, Sharepoint, Github or Skype for Business, but… Twitter. Even Microsoft doesn’t want to use their own products to collaborate.

๐Ÿš’Create a chaos experiment that uses a Chaos Mesh fault to kill AKS pods with the Azure portal Chaos engineering, already built into Azure, is now available on purpose.

๐Ÿ‘‹Erica Brescia steps down as COO of Github about a month after Nat Friedman left as CEO. This is not great, as planned departures are typically planned months in advance and multiple C-level executives are planned to depart a lot further apart than one month. This typically points to some sort of internal political struggle. Since Github is now underneath the same President that instigated the Hot Reload debacle, is is probable that the old Microsoft is battling the new Microsoft, and the old Microsoft is winning. Github reflected a culture shift; and as they become more integrated into Microsoft, it’s natural for the old guard to want to sink their synergy-laden teeth into the developer network on Github.

With this, Hot Reload, the Core Debugger License issue, and the Edge back and forth, I have no doubt there is an internal struggle being waged inside of Microsoft between the old guard, where everything had to synergistically work on Windows and for Microsoft’s commercial advantage, and the new guard, that understands the best way to get people to buy your products are not through synergy, but through making good products and caring about *their* desires as customers, and not trying to juice the numbers for your own products. The world has changed around Microsoft, and not everyone inside has gotten that memo.

๐Ÿ‘Build Web applications with Blazor a free, gamified experience from Microsoft for learning Blazor.

๐ŸŽจHow to take better screenshots of Visual STudio on Windows 11 using Paint.NET This is good content for those of you that put screenshots of code into your presentation (which is probably better than the alternative).

๐Ÿ’กโš–Jetbrains Fleet is in preview and some people have gotten to try it out. It’s the Jetbrains equivalent to Visual Studio Code, and there’s a video about it. Microsoft folks got a little snippy about the fact that it’s closed source, which is not punching down at all. At all. Totally appropriate for employees of a company that made $143 Billion last year to throw shade at employees of a $398 million company. Totally appropriate.

And that’s it for what happened last week in .NET. I am out next week on vacation, and so next week you’ll be getting the greatest hits — yes, the links you were interested in the most in 2021. Thank you, and see you next week.

[Last Week in .NET #70] – It’s *only* Five Bad Things

.NET Has been forked, .NET Framework 1.1 does run on Windows 11, and Microsoft’s Board of Directors supports Bad Things, apparently.

๐Ÿดopen-dot.net, a fork of .NET, has been created by Geoff Huntley This is one of those meme moments where someone following the directions on the tin and yet it’s as if they’ve adopted tinfoil as their chief clothing accessory. .NET is open source, open source projects can and should be forked when you want to change governance models, ergo .NET can be forked. My unease here extends across many levels, not the least of which is financial: Microsoft has a budget of probably around $25 million for the .NET team (including overhead that’s probably low, don’t @ me) per year and .NET is… well.. free. So we know off the bat that “new” development won’t happen in this fork; likely only tooling affordances and changes, but second to that is the extreme culture shock to the .NET community about anything open source. Oh sure, we like open source, as long as we don’t have to pay for it, or hear from it, or it does exactly what we want, and Microsoft hasn’t yet tried to compete it out of existence. So this something to watch, certainly, but I’m not so sure the cart and horse are in the right orientation yet.

๐Ÿ›ฃ19 lines of code for a ‘functioning’ ASP.NET Web App with OIDC Auth and GraphAPI support in .NET 6 Cool, no doubt; but we still haven’t learned that fundamental problem with trying to make everything concise: The road from ‘this is a beginner app’ to “now let this scale to an entire enginerring team” is bumpy as hell and no one talks about the problems this format will cause those teams. Do we have too much ceremony? Yes. Does eschewing all structure to somehow win the hearts and minds of the node.js crowd make sense? No.

๐ŸซReal World .NET 4.8 migration to .NET 6 performance regarding Garbage collection As always your mileage will vary because no two apps are designed the same way. It won’t vary enough that I’d say “don’t pursue .NET 6”, but it will vary enough that you may not see the whopping 3x reduction in pause times.

๐Ÿ”ฅBecause some people like to watch the world burn, @vcsjones got .NET Framework 1.1 working in Windows 11 It was a holiday week afterall, and apparently this is ‘fun’.

๐Ÿ“The Changelog gives a nice visual as to what ‘iteration’ and ‘agile’ and ‘MVP means. It’s a neat 2 minute video; and although not explicitly stated, the table gap moving is a nice metaphor for the goal-post moving that managers inevitably do in our own projects.

๐Ÿ•ถ.NET Virtual Conference 2022 is looking for speakers This is your chance to give that talk you’ve always wanted to give on why we’re bags of meat water rotating around a nuclear explosion towards our eventual doom. Or maybe on .NET?

๐Ÿ˜ฒMicrosoft supports pay gaps, hiding reports of sexual harassment, selling facial recognition technology to government entities, racial discrimination, and is against transparancy for their lobbying activities. The board recommends voting against 5 resolutions that at least on their face seem like good resolutions to support. If you’ve heard it from me once, you’ve heard it a thousand times, but I’ll make this number 1001: Capitalist institutions are amoral. If it increases their bottom line, they’re for it. It’s how they’re structured. They may be bad people but they’re creating shareholder value. And in a capitalist society, that is the goal. It’s really almost not fair to pick on Microsoft for this, except they’re a 2.5 Trillion dollar company and they are filled with leaders who by all rights should be better moral agents than they are.

๐Ÿ›๐Ÿ’ฐThe .NET Bug Bounty Program now covers Preview Features which apparently took some doing. It never made sense to me not to reward someone for finding a bug before you release a “GA” version. You would rather have that Zero-day be an actual zero-day? OK.

๐Ÿ™Š There’s a whole lot of words I don’t understand here but Expanding Azure Confidential Computing with new AMD-based confidential VMs Shhhhh. I guess?

๐Ÿ—Have you heard of CliWrap? It’s a library allows you to safely execute a .NET console program with redirected I/O and handle its signals This has always been a frustrating part of building Microservices in .NET; but now I’m going to slap CliWrap on and give it a try.

๐ŸฅฉWhat’s new in C# 10: Easier Lambda Expressions Action and Func always felt weird compared to JavaScript’s approach to delegates, and it’s nice to see this improvement.

โ˜In that vein, have some lambda optimization tips (kinda). This is the intersection of performance and lambda geekery. Enjoy.

๐ŸฐBecause they don’t eat Pumpkin Pie, the Cake folks released Version 2.0.0-rc0002 of Cake. I’m a little frightened there are that many leading zeros in rc2.

โŒšAppropos of the meat bag filled with water rotating around a nuclear explosion, Jason Resnick posted a tweet with the quote, “Time isnt’ change, you aren’t going to find it in the couch. You have to prioritize it.”

And on that note, that’s it for what happened Last Week in .NET. Thank you and I’ll see you again, next week.

[Last Week in .NET #69] – Our Commitment To .NET News

If there was an award for ‘blandest headline describing really bad things’, Microsoft’s comms team would have won it. Let’s see which story I’m talking about, shall we?

๐Ÿšซ๐Ÿ›  In EF Core 6.0, you can configure a join entity in a many-to-many relationship without any additional conifguration It wouldn’t be .NET without a billion documented ways to do something.

๐ŸŸกHighlights from Git 2.34. Do you work with large git repos?, or repositories with lots of blobs? In the past I’ve always set a git-clone depth=1 to checkout so it wouldn’t try to pull the whole repository over my 4G phone. For a second, I thought the new ‘sparse index’ was about that. But it turns out, it’s not. To put it something closer to what I would use it for, it’s a way to split out parts of a large repository to the parts you care about vs. the parts you don’t really care about. You know, like a mono-repo that houses microservices. You may not really ever deal with a particular set of services, and thus don’t really want to keep track of their history/updates/etc. This gives you a way to set a sparse-index around the boundaries you care about.

The other ‘big thing’ we’ve talked about on this newsletter previously is the new merge strategy, ort. It’s ostensibly recursive‘s twin.. Get it? One day someone will stand in judgment of the names developers give things and that won’t be a pretty day. But anyway, ort is recursive, but faster and better and without the problems recursive had.

๐Ÿ’‰New dependency injection features in .NET 6 AsyncDisposable makes its debut with a new AsyncServiceScope that makes it possible without breaking existing DI container providers. I say this just about every time something changes, but there’s a long tail of outdated information out there on the ‘net, especially in the different versions of .NET Core, and this adds to it. We still haven’t figured out how to deprecate old information, and that doesn’t help new people learn .NET.

๐Ÿ’1.0 stable release of Windows App SDK is now LIVE! The Windows UI story has always been confusing, but apparently this is the App SDK to rule them all, (except where it isn’t).

1๏ธโƒฃUno Platform 3.11: Support for .NET 6 RTM, VS 2022 17.1 Preview 1. Uno is what MAUI wants to be. If and When MAUI ships, that is.

๐Ÿ“‰Monitoring a .NET application using OpenTelemetry If you write distributed applications in .NET, you’re going to want to implement OpenTelmetry; after all you don’t believe in “Not Invented here”. Right? RIGHT?

๐ŸพAnnouncing TypeScript 4.5 This brings with it a lot of goodies, and TypeScript is what C# would have been if they had said “Fuck it” to backwards compatibility.

๐ŸพAnnouncing dotnet monitor in .NET 6 .NET Monitor is a tool that exposes a .NET HTTP API to access all those diagnostics from your application no matter if it’s running locally or in a Kubernetes cluster. This has a ‘this is neat’ and also a ‘Oh god what hell have we unleashed on future generations by making Distributed Applications The Way’?

๐ŸŽThere’s a Dotnet-Boxed template for Orleans I like the name ‘.NET Boxed’ and it makes sense: It provides templates that are opinionated and are optimized to get you up and running as quickly as possible. More of this, please.

๐Ÿ—ฃIf you want WinUI 3 to be Open Source, let the team know I’m torn here. On the one hand, it is ostensibly easier to adopt something if it’s OSS. On the other hand, Microsoft’s recent track record with Open source is more of the “I want a cookie” model, and I’m not sure I can stomach more of that.

๐ŸšขCascade of doom: JIT, and how a Postgres update led to 70% failure on a critical national service This is an in-depth read on a frightening technical scenario, and yes this pushes me closer to the “I’ll just find a deserted island and live there, k thanks” mentality.

๐Ÿ™…โ€โ™‚๏ธRemove MS Contributors from .NET Thanks Website. No. Microsoft contributors are people too.

๐Ÿ™‰๐Ÿ™ˆ๐Ÿ™ŠCorey Quinn reminds us that the Azure security team (there is one, right?) still hasn’t explained how the ChaosDB vulnerability happened. I recommend reading this link in the early morning if you want to sleep at night.

๐Ÿคฆโ€โ™‚๏ธI give TypeScript a lot of crap for breaking changes, but every version adding a new way to do something is not fun. Like adding another way to add a DBContext.

๐Ÿคทโ€โ™€๏ธGithub’s commitment to npm ecosystem security Yes these bullshit milquetoast headlines are normal at Microsoft, where the chief concern with optics is to not have a headline that sounds bad. It doesn’t matter if the news is bad, as long as the Headline sounds neutral. In this case, Microsoft has no fricking clue whether or not anyone ever exploited and npm vulnerability that would allow an attacker to publish new versions of any npm package using an account without proper authorization. I’ve seen these sort of headlines way too often at Micrsosft for it to be a one-off. They must have a corporate comms team that neuters any attempt to convey actual information in the headline. This does not improve trust, Microsoft.

๐ŸซWe need to have a talk about making life easier for newcomers to the .NET ecosystem Yes, Yes we do.

Why is it so hard to write C# in VS Code compared to Visual Studio Because of their org chart, of course.

And that’s it for what happened Last Week in .NET. It’s Thanksgiving week this week, so I expect next week’s issue will be rather light. I’ll probably be rather heavy from Thanksgiving, but that’s how it goes. I’m thankful for you. Yes, you.

[Last Week in .NET #68] – .NET 6 Passionate Programmers

.NET 6 was released last week; .NET 5 has 6 more months of support, and Chrome decides “view source” is bad.

๐Ÿš„Announcing .NET 6 — The Fastest .NET yet new features include Minimap APIs, Hot Reload for Visual Studio and the .NET CLI, C# 10, better performance, a “Unified platform” for development, and lots, lots more.

๐ŸงฅAnnouncing ASP.NET Core in .NET 6 Hot Reload makes an appearance, of course, as done Minimal APIs, and lots of improvements for Blazor, and as I said at the top, lots more.

๐Ÿ’ผThe Case for C# and .NET Charles Chen compares JavaScript and .NET 6, and makes a case for why you should choose C#.

๐ŸŽ‚Cake v2.0.0 RC 1 released Lots of bug fixes in this one, and the cake is not a lie.

๐Ÿƒโ€โ™€๏ธ.NET Everywhere – Windows, Linux, and Beyond Scott Hanselman demos .NET across platforms, as the title indicates. It’s super weird for Microsoft to have a “Windows Visual Studio only” mentality on one hand and a “but you can run .NET anywhere” mentality on the other.

๐Ÿšซ๐Ÿ› Chrome allows admins to disable “View Source” and this has started a bit of a brouhaha. On one hand, people on the internet are mad that this feature exists, on the other hand people on the internet say it’s no big deal. It’s both. You don’t improve internet literacy by giving in to companies that put the answers to their exams in the HTML, and you certainly don’t lend credence to the idea that View Source is some sort of crime.

๐ŸŽธEF Core 6.0 hops on the minimal API bandwagon. Don’t worry, the kitchen sink is still there.

๐Ÿ•ธOrleans supports .NET 6 with release 3.5.1 Orleases is Microsoft’s approach to ‘distributed .NET’ on public cloud servers. It’s fascinating (and used by Microsoft) and it now supports .NET 6. No word yet on who outside of Microsoft needs this, however.

โŒšEF Core 6.0 has been released. It includes temporal tables, pre-convention configured models, and more.

๐ŸงฏThe Hot Reload docs are live. Microsoft is a bit late to this party, so maybe that’s why they’re all in on the docs? In other stacks, it’s just the way.

๐Ÿ”ฎPowershell 7.2 has been released and it includes bug fixes plus predictive intellisense (if you use PSReadLine), which seems pretty neat.

๐ŸŽญNuget 6.0 has been released Includes Sourcemapping, Package Vulnarabilities…. wait. Package Vulnerabilities? Oh, it can show you package vulnarabilies in Visual Studio. NuGet is a major part of .NET and is still pretty tightly coupled to Visual Studio. Until Microsoft fixes that issue, I don’t see the claims of ‘.NET everywhere’ coming to fruition. If you want a first-class experience with Nuget, you’re still limited to Visual Studio.

๐Ÿ™ŠThe EF Core team fixed 545 issues for EF Core 6.0. The EF Core team is 5 engineers, 1 manager, and a PM. Let’s say they started on work for .NET 6 / EF Core 6.0 On January 15th, 2021 (.NET 5 was released in november of last year; but you can imagine they had to work on patches for that, and hopefully took some time off for the holidays). .NET 6 was released on November 8th, 2021. That means there are 203 work days (excluding weekends and holidays). With 545 issues fixed, and 5 working members of the team, that’s an issue resolved every 2 days per person. That is a frantic pace; and given what we saw for .NET 5; that means the EF Core team has not had a break in over 2 years from a frantic pace. Their manager explains this as “passion”:

Or we’re just that good. ๐Ÿคฃ๐Ÿ˜‰ (Joke)

Five engineers, a manager, and a PM. And we mostly just chug along. We don’t do heroics. What fits, fits. What doesn’t gets punted. That being said, there’s a lot of passion on the team, and it’s more than just a job for some of us at least. (emphasis mine)

I have to say I’m a bit concerned about the work/life balance for the EF team, and it raises a whole lot of red flags to see this sort of pace for the last 18 months.

๐ŸฆJeremy Sinclair livetweets the .NET 6 release .NET 6. Now .NET 6 is the LTS version of .NET that finally sheds the Framework mantle (.NET 5 wasn’t LTS), and so you should see .NET 6 as the first major .NET Version that legacy companies migrate to.

โ‰Steve shows off implicit global usings One of the major problems I’ve had with code samples on the internet is the namespaces not being included in the code sample. This makes that worse, and easier to happen. I like the idea, but the implementation doesn’t help our current set of problems with getting code off the internet.

๐ŸšขNativeAOT coming in .NET 7 This will allow for a statically linked ‘single file’ deployment to all platforms, a la Go.

๐ŸงฅFull-stack .NET 6 Apps with Blazor WebAssembly and Azure Static Web Apps Since Blazor can support WebAssembly, and Static web apps are just that; you can now deploy Blazor apps to Azure Static Web Apps. I’m interested to see what sort of frameworks around Blazor pop up.

๐Ÿ’ธCSharpFritz (Jeff Fritz) plays Pitchman for Mobile.NET’s product that convert’s Webforms to “Native Web App”. This is interesting inasfar as Jeff works for Microsoft on the .NET team, and Mobilize.NET (as far as I know) is a third-party vendor — why is Microsoft pitching other companies’ products?

๐Ÿ“นVisual Studio 2022 has been released and Scott Hanselmen (and friends) take you through what’s new. There’s also a blog post if you aren’t the ‘watching videos on the internet’ type.

โณYou have 6 months before .NET 5 is End of Life and you can read Microsoft’s support policy here.

It was a busy week last week with the release of .NET 6; and hopefully the folks at Microsoft are going to take a bit of extra time off for Thanksgiving. See you all next week.

[Last Week in .NET #67] – Microsoft’s “Valued” Professionals

.NET 6 is coming this week, Emojis are the harbinger of the end times, and Nat Friedman leaves Github.

๐ŸŽ ‘Trojan Source’ Bug Threatens the Security of All Code. Turns out rules for handling unicode in source code include the ability to inject code into the compiler. If the first attack using this method doesn’t use the new Goose emoji, I will be disappointed.

๐Ÿ” Server side ALPN support for SslStream on Mac Someone out there reading this understands the implications, the only thing I understand is that this fix will not be in .NET 6. One other thing, when you reply to make me smarter on this subject, please let me know if ALPN is pronounced “Alpine”. If it isn’t I can’t take that much disappointment in one day.

๐Ÿ”— Learn how to integrate npm and webpack into the build process for your Razor Class Library And people say masochism has no analogue in technology.

๐Ÿ”Š Episode 84 – ASP.NET Core 5 Design Patterns with Carl-Hugo Marcotte This is a newsletter link about a podcast about a book about ASP.NET Core Design Patterns.

๐Ÿ’พ Session highlight: Running .NET Workloads on IBM Z This will be at .NET Conf, and while my talk on Event Driven Architectures in .NET was declined, you get to hear about IBM Z workloads, which impacts virtually no one in the .NET Industry. IBM sponsored .NET Conf, didn’t they. checks https://dotnetconf.net front page. yes, yes they did.

Two extra swipes at this because a bad move requires more snark:

  1. Losing sucks, losing to IBM sucks even worse.
  2. It’s hard to say you’re looking for “widely applicable” talks when you accept a talk about running on IBM.

๐Ÿ“ CODE Magazine – Essential C# 10, Making it Simpler In the context of ‘simple’ adding record structs and mutable record structs to record classes does not seem like it’s making things “simpler”, but that’s just me.

๐Ÿ—บ Microsoft rolls out Visio to Microsoft 365 Commercial users I have a soft spot in my heart for visio, and while I won’t purchase Microsft 365, I applaud this move.

๐ŸฅคMicrosoft created a full Notion clone using its Azure Fluid Framework. If you haven’t heard of Fluid, just visit its website and be even more confused. “Data Sync Reimagined: real time. Web first. Open Source”. The good news is that those are up to date buzzwords, the bad news is that I have no idea what they’re trying to say. But it’s cool, right? That trumps clarity.

๐ŸŸฆ โ˜Azure Container Apps now available as a serverless offering on Azure Allows you to write microservices without any ceremony.

๐Ÿ“ฑWhat’s new In Mobile device Enrollment and Management for Windows 11, Version 21H2.

๐Ÿ’ตUnderstanding the cost of C# delegates This is cool from a technical perspective but from a realistic perspective: If you don’t want to use delegates you may as well only use C# 1.0.

๐Ÿ™‡โ€โ™‚๏ธThank you, Github Nat Friedman writes about his departure as Github’s CEO.

๐Ÿšช Github CEO Nat Friedman is leaving, Thomas Dohmke named new CEO The new “CEO” reports to the DevDiv president, who orchestrated the Hot Reload debacle.

๐Ÿ‘‹Thomas Dohmke fills out this trifecta by writing “Building the next phase of Github, together”. It’s filled with the usual fluff and doesn’t address the fact that the org chart changed and Tom (can I call him Tom?) is a glorified VP in Microsoft’s DevDiv. Maybe Nat left because he didn’t want to dance to this new tune?

๐ŸŒ Windbg 1.2110.27001 Preview has been released and the new Windbg now uses WPF, and has a sleeker look, or so I’m told.

๐Ÿ™Š๐Ÿ™‰๐Ÿ™ˆApple argues Sideloading is too big a risk. If we’re going to say installing apps is too big a risk, we might as well say users are too big a risk.

โŒšVisual Studio is now on TikTok Hello fellow kids.

๐Ÿ˜ดMicrosoft Publishes New Documentation for Blazor, ASP.NET Core I hope the documentation isn’t as boring as the article title.

๐Ÿค‘Native AOT Is coming in .NET 7 Let’s hope they don’t make this Visual Studio only.

โ‰David Pine asks you to please use Microsoft Q&A for .NET Please clap.

๐Ÿ™Thanks Microsoft for open-sourcing VS Code Server I’m interested to see what comes of this. Microsoft initially declined to open source VS Code Server, so Gitpod launched its own OpenVSCode Server, and now Microsoft is open sourcing VS Code Server so they don’t appear as if they were caught with their pants down.

๐Ÿ†•The F# docs have been improved and the tweet thread does a far better job of explaining document updates. Visual Studio Magazine, take note.

๐Ÿ˜’Microsoft MVP told to give up award because they work for Microsoft’s cloud competition. This did not use to be true, but now it is. I guess “Valuable” here relates to “Valuable to Microsoft” not “Valuable to the community”.

and lastly,

Microsoft employees are upset about all the “.NET Drama”. As a personal reflection: Anytime someone uses the word ‘drama’ to describe another person’s lived experience, it’s always in a derogatory and dismissive fashion.

.NET 6 is being released this week, so we should have a lot more to talk about next week in .NET.

[Last Week in .NET #66] – Halt and Crash Intellisense

The .NET Foundation held their “Tell me Anything” last week, Visual Studio 2022 no longer crashes when using intellisense, and ‘hacking’ is apparently as easy as decoding base64 encoded ViewState. Let’s get to it.

๐Ÿ•ธ WebAssembly Beyond the Browser: Running WASM in .NET Core Applications With WASI & Wasmtime Anytime someone says something is ‘future proof’, I wince. The rest of the post is even more out there.

๐Ÿงต A thread of System.Text.Json features in .NET 6. Which is more memorable: “System.Text.Json” or “Newtonsoft”? Hit reply and let me know.

๐Ÿซ Tutorial: Create a minimal API in .NET 6 with Visual Studio. It’s hard not to think that the writing is on the wall for Visual Studio, after all, these same steps in a VS Code / .NET CLI interface are a lot easier to both take in and do.

๐Ÿงต A thread on WindowsAppSDK Frequently Asked Questions Good thread, good info.

๐Ÿค” Covariance & Contravariance in .NET C#. Co[|ntra]variance: the ultimate compiler “well, actually”.

๐Ÿ”“ Turns out the reporter who ‘hacked’ the Missouri Government Website, did so by… inspecting ViewState. ‘Hacked’ of course is in scare quotes; and Viewstate is Base64 encoded. In 2021 you should already know this, but if you don’t: Anything you don’t want the user to see should not go in Viewstate.

๐Ÿ’ฅ Visual Studio 2022 version 17.0 RC3 and Preview 7 Good news, Visual Studio no longer crashes when using Intellisense.

๐Ÿ™Š Microsft Rankles some by limiting discussion on Cordova shutdown for the AppCenter. If you’re going to retire a technology, at least let people know about alternatives. Otherwise you reinforce that you aren’t there to help the community, you’re there to help yourself.

๐ŸŽจ Github has a command palette (CMD+K on Mac or Ctrl+K on Windows).

๐Ÿ‘ซ Duende Identity Server (formerly IdentityServce) vs is out and it includes BFF support, which does not, I’m told, stand for Best Friend Forever. I am disappointed. BFF is “Backend for FrontEnd Support” and it helps you secure SPAs.

๐Ÿ˜ฒ WindowsAppSDK 1.0 Preview 3 is LIVE, and the full release notes are here, and it’s bad when the release notes start with the limitations and known issues.

๐ŸŒ Did you know there are powershell modules to administer Microsoft products like Teams and Exchange Online? Now you do.

๐Ÿ™…โ€โ™‚๏ธDeveloping for Windows with the Windows App SDK The “latest” on what’s going on with project reunion. No UWP in .NET 5 or .NET 6.

๐Ÿง“Terminal.Gui 1.31 has been released Get those old-school terminal-user interfaces for your Console application as God intended.

๐Ÿ“† .NET Conf 2021 is November 9-11, 2021. I will livetweet some of it; but a three day virtual conference that spans timezones is a bit much.

๐Ÿ”’Encrypt/decrypt data with .NET 6 and Azure Key Vault , it starts with using Azure; which at least 69% of you use.

๐Ÿ‘€ And lastly, I talk about the fundamental problem the .NET Foundation board has, which dives into the problems plaguing the board and stems from their “Tell me Anything” last week.

The fundamental problem the .NET Foundation Board has

The Hot Reload debacle happened last week, and the .NET Foundation Board held a “Tell me Anything” (TMA) Thursday on youtube. I livetweeted that event here.

I should point out that while the “Tell me Anything” is fortuitous in that it came in a timely fashion after an epic screw-up, that the purpose of the TMA was not Hot Reload, but rather to address the many recent screwups that happened prior to HotReload .

In case you haven’t been keeping up (and that’s to be expected, as it is a lot):

Now, did the .NET Foundation try to explain why any of these subjects happened — except for the last? No. Have they promised to conduct an investigation into all of these subjects and issue a report? No. Have they been forthcoming with what ‘contributing code’ to the .NET Foundation means? No. Have they even backtracked on their misleading news on why a Director of the .NET Foundation Board left? No.

With those facts in mind, it’s rather hard to explain what the .NET Foundation was hoping to accomplish with the TMA. Maybe they thought a good substitute for answers to these pressing issues was the ability to have a moderated chat for an hour? Again, it’s hard to say.

On the github side, members of the .NET community took to the Discussions on Github to ‘start discussions’ on these areas; but since those discussions started, there’s been no followup from the Board to the questions asked, or even a timeline for when the questions will be answered. Much like the “Tell me Anything” yesterday, the discussions seem to be an outlet valve for the community’s frustration rather than a means to get the .NET Foundation and its community back on the same page.

And that is the fundamental problem the .NET Foundation has: Its board members don’t see the disconnect between why the community thinks the Foundation exists and why the board thinks the foundation exists. We even asked that question and were met with “We have to have discussions” to get on the same page about that. The irony here is that if you asked the Board members why the Foundation exists, and if you asked the community, you’d get different answers — but over and above that, if you pull up the articles of incorporation (and even their amendments that came 5 years later), you get a completely different answer!

Now when you think about something so fundamental as the purpose of a legal entity, you gotta figure it’s crystal clear, right? Apparently not. Luckily we can use the .NET Foundation articles of incorporation to suss out its purpose:

Article III – Purposes

The Corporation is organized to promote the interests of the .NET programming community, including developers, independent software vendors and platform providers, by: fostering open development and collaboration of open source technologies for .NET developers to strengthen the future of the .NET ecosystem and wider developer community by promoting openness, community participation, and rapid innovation.

The original incorporation document for the .NET Foundation.

At the risk of creating a rather juicy straw-man for myself, it’s clear what the .NET Foundation is for: It’s an interest group designed to promote .NET and the interests of the .NET community.

What are the interests of the .NET community?

Well, if more developers don’t’ pick up .NET, we’re going to continue to be seen as an “Enterprise Only” product. That’s fine for making money, but you need new blood; and new blood — especially in this generation — is interested in what gives them joy and what aligns with their moral and ethical principles. And maybe I’m wrong there, after all plenty of developers see the evil that is Facebook1 and yet love React and React Native. Plenty of Developers see the evil of Google2, and yet love Go. I can’t explain it.

The dangers of an ‘enterprise only’ product is that it naturally excludes hobbyists, startups, and external sources of inspiration. Say what you will, but I’ve never heard anyone refer to enterprise software as inspirational. But this is not a critique about enterprise software, this is a critique on the current path of the .NET Foundation, and that path leads to enterprise only software.

So if the .NET foundation doesn’t want to be known as the ‘enterprise only’ foundation, they’re in a particularly well-suited place to change that outcome. After all, their entire mission is to change that outcome. The last part of the legal purpose of the .NET foundation even says so:

…to strengthen the future of the .NET ecosystem and wider developer community by promoting openness, community participation, and rapid innovation

Last clause of Article III in the .NET Foundation incorporation documents

What does the Board think the .NET Foundation does?

I’ve been trying to answer this question, and it’s hard because no one at the board will give a definitive answer as to the .NET Foundation’s purpose. They each focus on a microcosm, or a tactical implementation of that purpose, but not on the purpose itself. You’ll hear things like “fund meetups” or “promote open source projects” or “give open source projects legal tools to help them administer their projects”, but these are all tactics, none of this is a strategy.

First Steps to a better .NET Foundation

To make the foundation better, we have to change the direction of the Foundation. That means figuring out the mission and purpose, and here’s where the Board should spend its time first. Read the incorporation documents, and decide if they as board members want to promote .NET in the way their own incorporation documents stand for, and if they don’t, to step aside and allow others who want to carry out the purpose to do so.

I can provide my own vision for the .NET Foundation, but to be clear: it’s a group project. We need different voices, and one voice will only result in the same myopia that got us into this mess.

The .NET Foundation should:
1. Create and encourage the conditions for .NET to grow and thrive outside of an ‘enterprise only’ environment.
2. Zealously defend .NET against any entity that goes against the ideals of the Foundation, regardless of whether the victim is a .NET Foundation project. You’re an interest group. Be an interest group. Take an interest. Take a stand.
3. Put together a strategic planning committee to use those first principles and the state of .NET to put together a plan for where we should be in 3-5 years, with finance, communications, and sustainability.
4. Complete the by-laws; they’re incomplete, they reference documents no one has access to, and they’re legally a mess.

In that future, where the .NET Foundation has done these things, I can see a future .NET Foundation reacting very differently to these crises we had.

To me, here’s a piece of what that would look like:

If the .NET Foundation’s purpose is to promote openness and rapid development, they should absolutely have an opinion when a member project or corporate sponsor goes against that. Note that ‘have an opinion’ is different than “tell the member projects what they can and cannot do”. If you’re an interest group, you should have an interest. In the case of the Debugger License change, AppGet, and HotReload, the board should have absolutely issued a statement. After all, .NET is their baby, and anything that harms the .NET Community should be by definition be something they talk about.

What would these statements look like? The typical “We’re not mad, we’re just disappointed.” statements, like this:

The .NET Foundation exists to promote openness and rapid innovation on .NET. Actions like changing the license for the .NET Debugger, and removing Hot Reload from the CLI only to make it a “Visual Studio only” feature — and then shutting down discussion, do not promote openness and rapid innovation in .NET. These actions reinforce age old stereotypes about .NET, that it is the commercial province of Microsoft. We at the .NET Foundation are working hard to change that view so that .NET can thrive, and these actions hurt that progress. We ask that Microsoft, a founding member of the Foundation and a Corporate Sponsor, rethink its actions and to continue to promote innovation and openness in .NET as it pledged to do when it helped found the .NET Foundation. We believe each member project has the authority to conduct its project as it sees fit, but we would fail in our duty as guardians of the .NET community if we did not speak up when a member project acts contrary to the .NET Foundation’s ideals.

It’s got some rough edges, but that’d be my first draft for a .NET Foundation statement on the debugger and hot reload changes.

The .NET Foundation is salvageable, but it takes leadership and vision. Right now I see board members trying to step up, but without a vision, and without a common mission articulated, they’re all just bailing water out of the sinking boat, without plans for patching the hole and getting us all to dry land.

End notes

1: If you want to argue the many ways Facebook is not evil, this isn’t the place to do it. Either you accept the argument, or you don’t. (I can actually see HN Commenters spending thousands of words on defending Facebook and Google because they have nothing substantive to say on this subject otherwise).
2: See 1, just substitute Facebook with Google.

[Last Week in .NET #65] – Let’s Skip To the Part Where You Don’t Do this Again

Here we go, again.

On October 19th, the PM For “Hot Reload” (which honestly sounds like an urban dictionary term of art), showed off Hot Reload to internal stakeholders. On October 20th, Hot Reload was removed from the .NET 6 RC2 CLI in favor of a Visual Studio only release. On October 22nd, the news broke in the Register and the Verge, with the Verge stating the reasoning was a “business-led decision” by the CVP of Developer Division (DevDiv), Julia Luison. On October 23rd, Microsoft put it back in saying “we inadvertently ended up deleting the source code instead of just not invoking that code path”, and it was also reported by The Verge.

Since then, an internal communication has leaked with the DevDiv rank-and-file up in arms about the decision.

There is ample evidence to draw conclusions that this was not inadvertent, and that Scott Hunter’s blog post is to maintain political cover for the CVP that made the decision:

  1. If this were ‘inadvertent’, then there would have been no reason to close and lock the PR to prevent discussion.
  2. If this were ‘inadvertent’, then the myriad of developers that make up .NET’s online twitter presence wouldn’t have been radio silent on the subject for days.
  3. If this were ‘inadvertent’, then someone from the .NET team would have spoken up to explain what the reasoning was behind removing a working feature from a Release Candidate.

I could go on. But unfortunately if I point to the back-channel ways the .NET Team was trying to show that it wasn’t their call, I would get them in trouble with their corporate overlords.

The .NET Community was largely pissed off (a technical term) at the removal of this working feature from the .NET CLI and making it ‘Visual Studio only’, and I can’t say I blame them.

The problem here is the same problem the .NET Community has with the .NET foundation’s governance: Microsoft.

One the one hand, Microsoft would like to be known as a steward of open source; going so far as to showing “We โ™ฅ Open Source”, but on the other, each time it comes down to making a hard decision that would benefit the open source community but potentially harm Microsoft’s business interests, it chooses its business interests, every time.

It happened with the Debugger License Change.

It happened with MonoDevelop.

It happened with Hot Reload.

This is a pattern of corporate interests at Microsoft wanting to lock down development ecosystems to enhance their product’s bottom line while hurting adoption that ends up hurting Azure’s bottom line. It’s like the 90s called and said “Hey, get in, we’re going shopping for Fanny packs, Lowrise Jeans, and Vendor lock-in”.

And that’s the rub. Visual Studio is great — I personally love it, but I also love not having to boot into Windows to write .NET. .NET Core saved me from leaving .NET. Seriously. I like a console-first workflow, and the developer affordances in a *nix based environment outweigh any improvements Microsoft has made, and I go so far as to say that a console-first workflow respects how I work.

So that’s how Microsoft shat the bed last week in .NET. Let’s see what else happened.

๐Ÿ—ฃ The .NET Foundation invites you to come talk to them with their “Come Talk to Us – A .NET Foundation Face-to-Face. This is happening October 27th, 12pm EDT, and a second session on October 27th, 8pm EDT.

๐Ÿ“น The .NET Docs Show talks “EF Core Power Tools and Nuget Packages, oh my!” with Erik Jensen. I agree, both are scary.

๐Ÿ–‡ There’s a new Data Structure in .NET 6 which is ironically to our conversation about Hot Reload, a “Priority Queue” where elements of the lowest priority get Dequeued first. Like free CLI tools? (I will not apologize. It is not too soon.)

๐Ÿšซ๐ŸššSorry folks, UWP Is not being moved to .NET 5/6, which all of this has been confusing to follow from the start, but isn’t the purpose of Project Reunion to… you know, reunite everyone? Also, this is about the 10th time Windows developers have had the football pulled away, and they’re starting to notice.

๐Ÿง“Announcing Apache Cordova Retirement from the App Center. If this impacts you, Ionic Framework has your back.

๐ŸšชDeveloping for Windows with the Windows App SDK this would be the other team in Microsoft that’s locked in to the 90s.

ฮป What’s new in F# 6… It now supports Task from C#. That’s the only feature I can recognize, all the rest look positively greek to me.

๐Ÿ’ช If you’re having problems with Windows, curl, and self-signed certs, Jamie Phillips has your back.

๐Ÿ˜ถ I can’t vouch for its efficacy, but there is CoreWCF, that is a .NET Core port of WCF. WCF sounds like a nightmare, and I hope it isn’t your reality.

๐Ÿ“‘ Because hope springs eternal, I’ve been keeping tabs on Windows Terminal, and a new preview release (1.12) is out. Slowly but surely Windows Terminal is getting features available to Gnome users 10 years ago.

๐Ÿฅ„๐Ÿฅ„Microsoft Fends off 2.4Tbps DDoS Attack, Second Largest on Record. They did not fend off 2.4 Tablespoons, much to my dismay.

โ˜• Announcing the 1.0 release of Language Support for Javaโ„ข on Visual Studio Code. Does Visual Studio even support Java? Asking for a friend.

โ—€ Microsoft’s YARP (That’s Yet Another Reverse Proxy) 1.0.0-RC.1 has been released. The .1 signifies that if there’s one constant at Microsoft, it’s that every team has their own versioning structure.

๐Ÿ‘Œ๐Ÿ’‹ Jetbrains Rider team called out Microsoft’s Hot Reload debacle with their own subtweet. Perfection. Also Rider now supports Hot Reload.

๐ŸŽ Reed Copsey has a must read on the .NET foundation’s bylaws. It’s not as boring as it sounds, I promise. Bylaws are boring, but Reed makes it approachable and spells out the consequences of the current governance structure of the .NET Foundation. As I said, a must read.

๐Ÿ•ธ VS Code + Live Share: Putting the “We” back in “Web” Live Share works across Visual Studio and VS Code and on any computer. Even my wife knows that’s a big deal*.

โ“ Dusted Codes asks Can we trust Microsoft with Open Source which is a rather in-depth piece on the whole Hot Reload saga.

๐Ÿค— How we shipped PostgresSQL 14 on Azure within One day of its Release. The “Embrace” part still holds true.

โฉ There’s a new RandomAccess API in .NET 6 so you can read and write files without using a FileStream. Apparently it’s faster and better? I’m less familiar with this and would love to hear from you on it.

๐ŸŒฒI Used Cypress as an Xbox Web Scraper and I regret Nothing Yes. Using Cypress to buy a new Xbox? This is good. This is very good.

So that’s what happened Last Week in .NET. If you’re still reading this and haven’t started drinking heavily, I salute you.

*Joke courtesy of my wife.

Internet meme blink (at scale, of course)

So Expensify released their S-1, and this section caught the internet’s eye:

Here, I’ll embed the picture too:

Expensify’s Global scale blockchain based Software stack.

This was my reaction:

If any of this seems normal to you, I feel for you. Lemme know where to send the fifth of Jack, because God knows you need it.

Now let me start off by saying there could be an entirely logical chain of events that got us to this point with Expensify. Bad decisions — at least how it looks to the outside — are often the result of a lot of little decisions stacked up. No one that should be practicing in tech gets up one day and says, “I Know, I’ll build a tech stack that would make Hacker News — the place that seems to adore nonsensical architectures — to go, ‘Hrm. That’s a bold idea. A bit too bold for us'”.

What’s wrong with this architecture? I’m going to assume for a second that selling this architecture in this way in the S-1 was the goal from day one, and not just the most innane bullshit written in the first draft that somehow looked good to the CEO and it was kept in even though the CTO wrote it as a first-draft joke to stave off writers block talking about architecture. The architecture itself is way too complicated for anyone’s needs, let alone Expensify’s. It’s like going to the grocery story and buying all the chocolate candy from the checkout lane to melt down and make chocolate ganache from. Sure, you can do it, but why would you want to?

SQLite is a very fast database. It’s very fast because it’s a single writer database. That’s how it’s so fast. It doesn’t have to worry about all those sticky little problems of multiple users and multiple results sets and locking because there should only ever be one connection with one thing happening at a time. It’s meant to be used in situations where an embedded database is a really good idea, and that’s not in a high-volume internet application where billions of dollars is managed in expenses daily.

and so the architect (Again, I really bet this was an accidental architecture, but in case it wasn’t) likely knew this, and knew this little prototype needed to be rewritten, but the business folks said “no”, and so they decided to… shard it. Literally. Shard the unshardable database using Paxos.

There are lots of problems I have with this description of their stack, but not the least of which is that they are heavily susceptible to job lock-in. How many people in the world have experience with Paxos and Sqlite in this setting? For my money, I bet it’s just the folks at Expensify — because, and I’ll say this again, this architecture is unmoored from reality. Let’s say the chief architect leaves for greener pastures. You can’t just hire off the street for this. No one has 1 year of experience trying to make Sqlite and Paxos work together in this manner, let alone several. You’d better hope you have a good succession plan in place and every single part of this system needs to be documented to the nines and out of anyone’s head to even have a hope against a critical person leaving. As of this writing, there are 99,000 total results from Google about the words “Paxos” and “Sqlite” together. For comparison, DB2, a database that hopefully isn’t still in use in the tech industry for new projects, has 27,300,000 hits.

At some point, any successful business needs to scale its tech. This is normal: V1 isn’t meant to last, it’s meant to get money in the door, either through VC or customer adoption, and the problems you’re solving with Version 1 aren’t the same problems you have when you’re filing for your S-1. Scaling isn’t easy, but if you pick a path no one else has ever taken before, that’s not a competitive advantage, that’s a risk with lots of long term bagged you now carry. A rewrite may not be viable, but if you want to be a world-class chef, making ganache from the checkout aisle isn’t an alternative unless you want to be the checkout-aisle ganache chef.

Does Expensify want to be a public company or do they want to be that quirky “we doubled down on bad decisions and make them sound good” company? It’s hard to say.

[Last Week in .NET #64 – Xamarin? What’s Xamarin?]

This newsletter is a day late because Monday, am I right? With that aside, let’s get into what happened Last Week in .NET:

๐ŸŒ‡ Sunsetting of .NET Framework and .NET Core runners in Cake 2.0 Cake now requires .NET Core 3.1 or higher.

โ— Marten V4: Hard Deletes, Soft Deletes, Un-Deletes, All the Deletes you Meet Marten is a Document DB that sits atop Postgres; and 4.0 now has softdelete support and support to undelete softdeletes. Which.. is what makes them soft.

๐Ÿƒโ€โ™€๏ธ ML.NET Updates & Announcing Notebook in Visual Studio I’m impressed that Microsoft chose to publish the painpoint “Afraid Microsoft will abandon the [ML.NET] framework”. Silly users, don’t you know that they don’t abandon it, they just stop developing for it? Secondly the answer to that painpoint doesn’t actually address the painpoint.

๐Ÿ‘€ Webview UI Toolkit for Visual Studio Code This finally puts the ‘visual’ in Visual Studio Code.

๐ŸŒŸ๐Ÿฆ—Migrating our trusty ol’ .NET Framework applications to AWS, I couldn’t believe it So A Senior Specialist Solutions Architect at AWS (Franรงois Bouteruche) put together this “story” about fictional migrations to AWS for .NET Teams, as an amalgamation of experiences he’s had… working for AWS. Migrating .NET customers to… AWS. The first paragraph makes it seem like this is an actual story, but it’s not. Disclaimer doesn’t come until Paragraph 2. I see you, AWS. This comes suspiciously close to astro-turfing, AWS.

๐Ÿš€Join us November 8 for the Launch of Visual Studio 2022 Visual Studio 2022 launches on November 8th, as it states on the tin, but today you can download the Release Candidate.

๐Ÿ˜ถUse of Github Enterprise Rob Prouse, Board member of the .NET Foundation, explains what happened with all member projects for the .NET Foundation. In case you missed last week’s newsletter, it was discovered that the .NET Foundation required member projects to allow a service account, dnfadmin to have owner rights on the repository, and then secretly went in and transferred ownership of those projects to the .NET Foundation on Github Enterprise. Rob refers to this as a ‘mistake’, as in “the current board thinks it should not have happened”. That response, of course, tells us nothing about why it did happen, which they’re convienently silent on.

๐Ÿ‘‰Reed Cospey gives his Detailed thoughts on the State of the .NET Foundation. Reed is the Executive Director of the F# foundation, (Once again, someone that uses F# can’t resist telling us that), and he gives a great overview of the structural problems with the .NET Foundation — far better than my incoherent ramblings on the subject. It’s worth your time to read if you care about .NET adoption.

๐Ÿ—ฃThe .NET Foundation is holding a “Tell me Anything” session on October 27th. This is your chance to tell them how you feel about the .NET Foundation’s recent actions.

๐Ÿ™…โ€โ™‚๏ธ Visual Studio 2022 for Mac Preview will now sport a native Mac UI, and not a cross-platform UI. It’s good — we like performance, but it’s also bad because it feels like an offering like Xamarin shouldn’t have these issues.. Oh yea, and Microsoft purchased Xamarin, so they won’t even use their own product?

๐Ÿ“ด Microsoft says it is shutting down LinkedIn in China Which seems weird because the Chinese Government and LinkedIn have something in common: They both want to know who’s been looking at your profile on LinkedIn.

๐Ÿ‘จโ€๐ŸŽ“ Governor Mike Parson threatens Jail time for reporter who right-click and Viewed Source on Missouri Government website and saw Social Security Numbers. He has since doubled down on being a moron.

๐Ÿ“ข.NET 6.0 RC 2 has been released This release has a Go-Live license, so use it in production.

๐Ÿ“ข.NET 5.0.11 has been released This release fixes CVE-2021-41355 which is a .NET Core Information Disclosure Vulnerability.

.NET Core 3.1.20 has also been released and it has that CVE fix as well as other bug fixes.

With Indigeonous People’s/Columbus day, it was a short week last week. There’ll be a lull before November when .NET 6 officially launches, and of course when it does so I’ll be there, to let you know what’s going on.