Afleveringen

  • Two years of simmering discord came to a head last week as the .NET OSS maintainers openly revolted against the .NET Foundation for years of non-communication, the Executive Director resigned, and newly elected board members are left to pick up the pieces.

    It was a wild week.

    First, there was some discord due to the .NET Foundation saying a board member left ā€˜for personal reasonsā€™ when in reality they left due to the nature of the .NET Foundation itself.

    Second, during this brouhaha and when finding out the Executive Director merged a PR without communicating, the .NET community learned that their projects were moved to the Foundationā€™s Github Enterprise account without their consent, that the DNFAdmin service account was basically a trojan horse (an actual Trojan Horse, not the virus variety), and that even if they signed the ā€˜contributor modelā€™ contracts, they may not own their own projects.

    As I said, it was a wild week.

    So, the Executive Director apologized, not for the lack of communication, or moving the projects to the .NET Foundationā€™s Github Enterprise account, or misstating why Rodney Littles II left the board, or for the fact that the foundation has not been up front with what it means to have a project join the .NET Foundation, but forā€¦ forcing through a PR on a project that the foundation ostensibly owned.

    Naturally members of the community asked for the Executive Directorā€™s resignation, and they got it. And we sit, a few days later, watching more communication from a single member of the board than we had from entire previous Boards of Directors, particularly around most of the painpoints the community mentioned previously. One of the board members spoke up during the incident but said nothing of consequence, except to say, ā€œLikewise, I think that the community and projects may have not understood what they were agreeing to when they were brought under the .NET Foundation umbrella.ā€. Thatā€™s what we in the biz like to call an understatement. Iā€™m also not the only person to call this entire thing a brouhaha.

    And since Iā€™m writing this newsletter, I get to have my say.

    I donā€™t think Claire Novotny should have resigned as the Executive Director of the .NET Foundation. I believe her to be a scapegoat for the structural issues the .NET Foundation has, as Iā€™ve written about and spoken about previously. Weā€™ve had entire Boards of Directors come and go from the .NET foundation with nary a peep from them in public about their work, no after-action review or postmortem, nothing outside of their initial interview to become a member of the Board of Directors.

    I believe if anyone should resign, it should be the Boards of Directors. They ultimately are responsible for what the Executive Director and what the .NET Foundation does, and while half the board is fresher than a prince from Bel-air, the other half arenā€™t, and in some form of irony, itā€™s only the new people who are speaking out. I think theyā€™re Good People, but they either have no idea what theyā€™re doing or they havenā€™t seen and felt the issue simmering for the last few years, in which case they most assuredly shouldnā€™t be representing the community in the .NET Foundation.

    It really all comes back to a single question: What does the .NET Foundation do? or, taken further: Why does the .NET Foundation exist?. We havenā€™t really gotten an answer to that question yet; especially the vague ā€œcommercially friendlyā€ mission statement.

    Iā€™m willing to bet the Board of Directors havenā€™t been taking minutes for their daily meetings over the past week, even though the bylaws require them to, and so Iā€™ve taken to asking that the bylaws be amended to require that the minutes are shared for review by the membership of the foundation.

    If the .NET foundation is going to exist, then itā€™s going to have a vision and a purpose. If you care about .NET and the future of .NET, you should be right there, holding their feet to the fire. Otherwise weā€™re going to get what weā€™ve always got, a mono-culture that seeks to fulfill Microsoftā€™s whims about .NET; not what the actual OSS community wants or needs of .NET.

    With that bit of news in the can, letā€™s see what else happened Last Week in .NET:

    šŸ“ššŸ”„Facebook went down, and of course since it wasnā€™t DNS it had to be BGP. Honestly I canā€™t explain BGP to you. Iā€™d like to, but I canā€™t. Back in the day when I was building a product to discover and map legacy networks, a network engineer took me aside to explain BGP to me and the nightmares didnā€™t stop for weeks. Iā€™ve since blocked out most of it except for ā€œitā€™s a way for networks to tell other networks how to route to themā€. Itā€™s astonishing that anything works and that we arenā€™t all finding a desert island to inhabit, away from people and technology.

    šŸ§“ Maybe because of, but certainly related to in some form, I learned what a Basil Hayden Old Fashioned was from Adam Rackis, and it sounds delicious. Also if youā€™re making Old Fashioneds in your kitchen and you have a gas stove, you can use the burner to burn the inside and outside of the orange peel, which apparently helps with the flavors of the orange.

    šŸ¦„ Either SQL is old or SQL is new again and I canā€™t figure out which because C# 9 loves some SQL keywords like is, or, and and. If a C# developer fell asleep between 2013 and 2022 theyā€™re gonna be really confused as to the language they came back to.

    šŸ“… I did it before it was cool, but Jetbrains released their .NET Annotated Monthly for October 2021, and if you really want a list of links in a monthly format, you could read this list, or just wait and not read LWiDN for a month and read it all at once.

    šŸ“ž The iPhone 13 can finally photograph dark-skinned folks. This is why diversity in tech matters. 14 years of phone-based cameras for non-white people to get good photos. Thatā€™s far too long.

    šŸ“Ø The Register covered Rodney Littles resignation from the .NET Board. They have also previously covered other tech issues like the various Stack Overflow community brouhahas. Itā€™s still weird to me to see inside baseball topics show up in ā€˜traditional journalismā€™ that I have to assume that they just have people devoted to these topics.

    šŸŒŸšŸ¦—The CVP for the Windows Developer Platform writes a blogpost on Developing for Windows 11, and because irony is dead, writes that ā€œWindows 11 was built to unlock the full power of the PCā€. Because Windows 1 through 10 werenā€™t?

    ā£ Did you know there was an alternative to Windows Explorer? I did not. Well version 2 of this alternative is out.

    šŸ§€ They moved your cheese in .NET 6 New project templates wonā€™t include the ceremony you remember. Theyā€™ll just have the new Minimal API templates because some people just like to watch the world burn.

    If you want the old style templates, select .NET 5 when looking for Templates to get the ā€˜oldā€™ templates back.

    šŸ§ŗ Implicit Usings in .NET 6 With this change you can now use a namespace that isnā€™t referenced by your .cs file; and so if you want any hope of figuring out where a namespace is from youā€™d better use an IDE because a text editor canā€™t tell you. This is a brilliant idea if your goal is to reinforce the necessity of an IDEā€¦ like Visual Studio.

    šŸ¤Æ A look at the upcoming improvements to LINQ in .NET 6. Thereā€™s Chunking, Range Support, a new Zip Overload, and much, much more.

    šŸ“ The WinAppSDK team is actively looking for developer input. Better give it while the giving is good or youā€™ll just have to go back to Microsoft Connect and wait for them to ignore your issues for years until they finally just shut down the platform.

    šŸ“¹ Dotnetos Conference 2021 carried a talk by Jared Parsons on performance features in C#. I donā€™t know how to pronounce Dotnetos, sooo. sorry.

    šŸ“¹ Maoni Stephens does a deep dive from A .NET Object from allocation to collection. Any time Maoni speaks, you should watch it. Itā€™s good stuff.

    šŸ”‰ Mads Torgersen talks C# 10 and Iā€™m starting to feel MCUā€™d out on the whole C# version number thing.

    šŸ„Œ And because we need a little fun in our lives, Corey Quinn shares ancient SysAdmin wisdom. Remember when SysOps were a thing? Those were the good olā€™ days.

    I hesitate to say thatā€™s it for what happened Last Week in .NETā€¦ But thatā€™s the standard way to close this thing out, so there you go. See you next week.


  • VC that sells attention for NFTs wants you to buy NFTs. The .NET foundation decides to force its operations on member projects, and the Microsoft Store really really wants you to use the Microsoft Store. Please. Thank you.

  • Zijn er afleveringen die ontbreken?

    Klik hier om de feed te vernieuwen.


  • Patch Tuesday gets delayed for more fixes, the word 'themes' now means 'new color schemes', and Microsoft releases a video called that's two minutes long filled with 8 new products... Or two minutes of 8. Not a really bright idea, that.


  • The 20th anniversary of the September 11th attacks is commemorated, Minimal APIs bet maximum attention, and technologies as old as it gets should be Good Enough For Everyone, says Linux Torvalds.

  • The biggest news this week (and will likely trump any sort of news for the next couple of weeks in the Microsoft space) is that Azure has a vulnerability dubbed ā€œChaosDBā€ that exposed its customers keys to the world, leaving every single CosmosDB customerā€™s database data exposed for the taking. Thereā€™s a technical deep-dive into this vulnerability as well. I hope the Azure team is wearing their brown pants.

    This is as bad as it gets. Good news though! They gave out a bounty of $40,000 to the finder of this vulnerability. Which values this vulnerability as akin to a Tesla Model 3 ā€” and not even a fully decked out one.

    Apply rounded corners in desktop apps for Windows 11. In some cases, rounded corners will be applied to your applications automatically, in others, hereā€™s what you can do to make them rounded. As Apple intended.Razer Bug lets you become a Windows 10 admin by plugging in a mouse. This is a pretty easy exploit toā€¦ well.. exploit, so if youā€™re using Razer mouses in a corporate context, you may want to rethink that decision.The real names of features in Visual Studio. Itā€™s a bit inside baseball, but still a wonderful walkthrough.David Fowler writes to tell us that New .NET 6 APIS [are] driven by the developer community. In this blog post, David details new APIs available in .NET 6, and highlights the fact that well, they were authored by members of the community. Iā€™m a fan of Parallel.ForEachAsync, as that seems rather useful for my needs.This is your warning: Get out of the Dev Channel for Windows 11 unless you want to experience some turbelance. If you want stability, use the beta channel or get out of the insider program entirely. If you want to see new builds of Windows 11 that may have the stability of Windows Vista, stay in the Dev channel.Nicole Miller-Abuhakmeh is the new Community Manager for the .NET Foundation. This is a wonderful choice for CM, congrats Nicole and the .NET foundation.Looks like thereā€™s another tactic available to exploit Proxyshell vulnerabilities. A few weeks ago, a researcher showed off an exploit of Microsoft Exchange Server dubbed ā€˜ProxyShellā€™ and it seems like the gift that keeps on giving to attackers. Bottom line: keep your Exchange servers up to date.In .NET 6, FirstOrDefault(), LastOrDefault() and SingleOrDefault() now letā€™s you specify a default value. Sadly it has to be a compile-time constant so you canā€™t have something like new Random().Next() available.Microsoft Ignite is November 2-4, 2021 and is virtual again this year because people canā€™t bother to vaccinate.Githubā€™s Copilot can get you in trouble 40% of the time and if youā€™re the type to use AI to write code, maybe you deserve to have problems.Using SignalR in your Blazor applications This is an nice pairing of technologies. Like Chardonnay and Brie, or Hotdog and Chili. Ketchup is forbidden, Mustard is recommended, however.

    And I say this with a twing of irony, but thatā€™s it for what happened Last Week in .NET.

  • No releases this week; but lots of interesting tidbits nonetheless. If you read just one article this week, check out ā€œThe Myth of the Treasure Foxā€. Link below, of course.

    Get the Drop on Sorting. Kevlin Henney does a deep dive on the drop-sort, a sorting algorithm that sorts by dropping elements in the collection. This is not as useless as it immediately appears, and Kevlin explains why. Itā€™s engaging and informative.In a screenshot that is strangely alluring Maarten shows off what VB looks like in the brave new world of .NET 6, with a pattern based XML Literal. If I were to rate VB on this screenshot alone, Iā€™d give it a 12/10. Having worked in VB, I give it a 4/10. Itā€™s slightly ahead of the readability of JavaScript 5, and slightly behind Python. These ratings are final.Chat Wars! How microsoft tried (and failed) to keep MSN compatibility with AIM. If AIM and MSN were still alive, theyā€™d have graduated college by now and be grumbling about the state of the job market. I mean, they unemployed, strictly speaking, with AIM having been retired in 2017, and MSN Messenger having been retired in 2014..NET 5 Support of Azure Functions OpenAPI Extension Yes, now Azure Functions support .NET 5 for OpenAPI Extensions. If you, like me, have no idea what that is, then this blog post isnā€™t for you! (Itā€™s becoming increasingly clear that these blog-posts with keyword laden titles are there to help hit some sort of internal Microsoft KPI related to pushing Azure). ā€œGeorge, youā€™re being unfair!ā€, I can hear you say. If Iā€™m being unfair, then why arenā€™t these blog post titles telling you the outcomes they can help you acheive, instead of keywords of processes related to their own products?No, NVidia Didnā€™t Fool Everyone with a Computer-Generated CEO In case you missed this, NVidia used a Computer Generated capture of its CEO for a short scene in its presentation, but their initial blog post on the subject made it seem like they used the CGā€™d CEO throughout. Itā€™s still impressive, bu tnot nearly as impressive as initially made out to be.Microsoft revamps Visual Studio JavaScript projects in forthcoming version. Visual Studio will now rely on whatever the ā€˜systemā€™ has installed for JavaScript frameworks when creating a new JavaScript-ish project in Visual Studio 2022. I assume it will work seamlessly with things like nodeenv and other virtual environments, and if it doesnā€™t that would be a bit embarassing, wouldnā€™t it?.NET Optional SDK Workloads This came about because I saw the word ā€˜workloadā€™ in reference to .NET, and had no idea what it meant. It means a way to extend the SDK to do other things than itā€™s meant to. I canā€™t figure out if this is a public thing (you too can write extensions for the SDK) or if this is a Microsoft Only addition, or who this is even for.A Decade Later, .NET Developers Still Fear being ā€˜Silverlightedā€™ by Microsoft. Killing Silverlight was the closest thing .NET Developers had to experiencing the Red Wedding. An entire developer stack killed overnight. I donā€™t claim thereā€™s any sort of ā€˜guest rightā€™ when it comes to Technology Stacks, but thereā€™s a certain amount of creative destruction taking place that Microsoft was not known for previously. They have several hundred projects to kill to even get close to Googleā€™s bloodthirstiness. There are, of course, differing views, as is the norm on Twitter.Async code has signficantly less overhead using .NET 5 compared to .NET Core 3.1. Screenshots of the benchmarks in the link if you like that sort of thing.The myth of the treasure fox in Skyrim. This is why I love twitter. You learn things youā€™d otherwise never hear about. I wonā€™t spoil the story for you, but itā€™s worth your time to read.Introducing DevOps-Friendly EF Core Migration Bundles. DevOps here means ā€œDeploying your code easilyā€ and has nothing to do with Azure DevOps (either Azure DevOps On-Prem, or Azure DevOps on Azure ā€” and no, Iā€™m never letting Microsoft live that atrocious naming down). Anyway, The EF Core team has made it easier to run database migrations in a CI environment.Highlights from Git 2.33. The news here is that git now has a new rewritten and faster merge strategy called merge-ort. To try it out (itā€™s not the default yet), you can use the command git merge -s ort when merging two branches in git. The -s ort is some sort of a cruel joke, I think. Or at least proof that no one talks their way through commands any more. Can you imagine telling someone with your mouth-words how to do it? ā€œType g i t space dash s space o r tā€.Performance Improvements in .NET 6. If you like performance blog posts and you tolerate IL, this blog post is for you. As deep a dive as youā€™ll get on just what performance improvements have been made in .NET 6, and what it looks like under the covers.Visual Studio 2022 Preview 3 offers a new breakpoint context menu to set advanced breakpoints more easily. If you donā€™t use advanced breakpoints, theyā€™re quite magical to improving productivity when debugging ā€” like setting a breakpoint after a specific number of times, or setting conditional breakpoints.In the ā€œWe canā€™t help being evilā€ department, Itā€™s harder to switch default browsers in Windows 11. Besides the tweet, thereā€™s an in-depth article about it on the verge, and what that means for us. Since 90s clothing is come back in style, I suppose 90s monopoly practices should too? You can now have global using static <class>.. This is a great idea. I mean, globals are already a time-honored programmer tradition, and of course seeing methods being called that you have to have an IDE to trace is a wonderful idea.

    And thatā€™s it for what happened last week in .NET. It was a light week; but as we get closer to November (and .NET 6), we should see more releases.

  • Releases

    šŸ”® Magick.NET 8.2.0 has been released which is an image manipulation library for .NET.

    šŸ“¢ Windows App SDK 1.0.0-experimental has been releasedand Kevin Gallo attended the App Development Community STandup to underscore why itā€™s an important release. The release notes tout several experimental features, push notifications and windowing improvements.

    šŸ“¢ Visual Studio 2022 Preview 3 now available! This preview release includes improvements to the Dark Theme, added new JavaScript and TypeScript project types, and because of course they did, easier one click publishing to Azure DevOps.

    šŸ“¢ Announcing .NET 6 Preview 7. Thereā€™s new .NET SDK templates that use the latest C# features and now thereā€™s literally a one line console application template. Everyone wants to be like Perl.

    šŸ“¢ .NET 5.0.9 has been released. There are several CVEs resolved in this release, including CVE-2021-34485, an information disclosure vulnerability related to crash dumps, CVE-2021-26423, a Denial of Service Vulnerability, and CVE-2021-34532 which is an ASP.ENT Core Information Disclosure Vulnerability, this time areound logging JWT tokens that are unparsable.

    šŸ“¢ .NET Core 3.1.18 has been released and these same vulnerability were backported from .NET 5 to this release.

    šŸ™Œ Github Codespaces has been released and you can access it from any repository by pressing the period key. Yes, launch a Visual Studio Code instance, in your browser, already targetting a repository with a single keypress. Thatā€™s pretty remarkable and allows me to forgive the many sins JavaScript committed.

    News and Notes

    šŸ™‹ā€ā™‚ļø Microsoft abandons semi-annual releases for Windows Server. Opting instead for the ā€˜You can have frequent updates if you want to use Azureā€™ which already fills this weekā€™s bingo for requiring Azure needlessly because itā€™s on someoneā€™s KPI. Joking aside, this is a dive into marrying frequent Windows Server updates with using Azure HCI (Hyper Converged Infrastructure), and it appears that Windows Container updates will now be married to that same infrastructure. Just as well, I suppose since outside of Azure, Windows containers are as rare as an honest politician.

    ā“ Microsoft deprecated the Snipping Tool, and asked everyone top move to Snip/Sketch and now they renamed Snip/Sketch to Snipping tool, and weā€™ve once again been reminded that naming is hard for Microsoft.

    šŸ“¹ Aaron Stannard is hosting a webinar called ā€œIntroduction to Akka.NET Streamsā€ on August 27th. If youā€™re interested but your dance card is full on the 27th, you can register and watch later.

    šŸ—£ .NET Conf is November 9th-11th, 2021 and the CFPs are open. As usual Iā€™ll be live-tweeting the interesting bits of the conference.

    šŸŽ‰ Jetbrains is celebrating the release of 2021.2 of Resharper and Rider with a ā€¦ party? This ā€˜partyā€™ is being livestreamed on August 17th, 2021 at 10:00 EDT (-4 UTC).

    ā€¼ One of the more interesting bits of Visual Studio 2022 going 64-bit is that ReSharper can now use more memory. Previously it shared the max 4GB of memory with VIsual Studio. Will performance improve? Weā€™re given a vague ā€œit dependsā€, which isā€¦ fitting.

    šŸ¤·ā€ā™€ļø Windows 11 FAQ: Hereā€™s everything you need to know says ZDNet. If youā€™re looking to upgrade, hereā€™s what you need to know: Buy a computer with a new processor.

    šŸ„” CodeMash 2022 CFP is open, and closes August 31st, 2021. I havenā€™t been to Codemash myself, but Iā€™d love to attend.

    šŸ¦· .NET Core 2.1 is end of life at the end of August. Itā€™s getting pretty long in the tooth so migrate now.

    šŸ„ˆšŸ’” Getting off Microsoft Silverlight for Good Silverlight goes out of support in 57 days, and Mobilize.NET, a consultancy that helps companies migrate off of it want you to know this.

    šŸ„‡ For the F# Folks, Don Syme, one of the language team members for F#, talks about active pattern matching in F# and why itā€™s superior to alternative forms of matching. I mean you wouldnā€™t expect an F# person to ever say it isnā€™t superior, would you?

    and lastly, and because Iā€™m obligated to report it but not because I care:

    šŸ¤‘ Microsoft and Amazon battle over yet another $10 billion U.S. government cloud contract. Last time Amazon protested Microsoft winning a DoD Contract worth $10 Billion, and now the shoe, as they say, is on the other foot. However, this time itā€™s the NSA, and I canā€™t find the words to care about the plight of the trillion dollar companies.

  • Microsoft sunsets OneNote, only to expand OneNote, and the .NET Compiler has a bit of chaos inside of it. Letā€™s get to it.

    ā›”āœ… David Fowler, member of the .NET team, writes that ā€œnull checking in C# has gotten out of handā€. Davidā€™s right, of course, and a follow up tweet in that thread narrows it down to merely three methods to checking for null. Another day, another chance to tap the sign: Just because you can doesnā€™t mean you should. Itā€™s felt like that ever since C# was de-coupled from the .NET Framework, the language has exploded with new syntax; and yes, while newly divorced people sometimes do go through a sowing phase, you reap what you sow.

    šŸ‘Øā€šŸ¦Æ Adam Lein breaks down the user experience and human centered design problems with Windows 11.

    šŸš«šŸ† Announcing Code of Conduct Enforcement Services for member projects!. The .NET Foundation now provides CoC enforcement across all .NET Member projects. If youā€™re a dick in one place, youā€™re going to get banned from all the places. Donā€™t be a dick.

    šŸ’³ Techbash Tickets are now onsale Appropos of the current delta variant issues, Techbash has also kindly responded to my request for information about cancellation:

    If we cannot hold the event due to safety concerns, weā€™ll work with the Kalahari to handle the event cancellation and refunding as we did in 2020. However, our current plan is to continue to have a safe and fun event for all in October.

    šŸ“¹ Humans of Microsoft S02E01: Abel Wang You may know that ABel Wang passed away recently; but we are lucky enough to live in an age where we can hear his words even now. In this video Abel talks about life, health, and his favorite software project ever.

    1ļøāƒ£1ļøāƒ£Top 11 things you can do to make your app great on Windows 11 This is a good list and it dovetails nicely with the design issues in windows 11 we spoke about previously. We never successfully got Winforms applications to be updated to WPF, and now suddenly weā€™re expecting three generations of old Windows applications to get updated to Windows 11. So long as software backwards compatibility remains paramount to Microsoftā€™s business arm, design will suffer.

    šŸƒā€ā™‚ļø Install WSL with a single command now avialable in Windows 10 version 2004 and higher Now dropping Windows is just a command away. This reminds me of using Internet Explorer to install Chrome back in the day.

    šŸ¦ One thing I missed last week is that Random.Shared is available in .NET 6. Yes, a threadsafe Random API, as opposed to a threadsafe random API.

    šŸ“ƒ Thereā€™s a List of Features available for all the C# versions; including whatā€™s coming in C# 10 and C# Next and with no hint of irony at all towards the ample ways to check for null in C#, thereā€™s a parameter null checking proposal.

    āš” Thereā€™s word that LINQ statements will be twice as fast in .NET 6 than they are in .NET 5. David focuses on performance so I have no reason to doubt his word, and apparently the benchmarks will be coming soon.

    šŸš— Rider 2021.2 has been released and it now includes Blazor WebAssembly debugging, support for removing redundant suppressions, support for refactorings in source generators, and lots more.

    šŸ“¹ The monthly .NET MAUI Community Toolkit Standup was last week.

    šŸ™ƒ A helpful safety tip: Stick to the Beta channel if youā€™re on Windows 11 Preview, with the Dev channel you canā€™t go back.

    šŸ§µ Infoworldā€™s SImmon Bisson talks about project Coyote: a way to unit-test multithreaded asynchronous C# Code You can learn more about Coyote on its project site.

    šŸ”“ Some Infosec folks looked into the ā€˜baseā€™ level security in Windows 365 and wereā€¦ not impressed. From cleartext password dumps, and making everyone admin, itā€™s a little embarassing what the out of the box settings are.

    šŸŒ‡ Microsoft to Sunset OneNote for Windows 10, OneNote is the Future That sentence is not a typo. Apparently there were two different applications called OneNote, and now in the future there will be one. Also, Microsoft clarified that they are not building a third application called OneNote. Just ā€˜evolvingā€™ the current applications.

    šŸ’„ There seem to be no end to the ways pistachios can kill, suffocation, explosion, and fire, to spoil the lede.

    šŸ’ā€ā™‚ļø If youā€™re running ASP.NET Core on IIS, make sure youā€™ve enabled the UriCacheModule. Itā€™s recommended for ASP.NET Core deployments but is not enabled by default. Letā€™s pour one out for everyone still running ISAPI.

    šŸ’ā€ā™‚ļø Marc Gravell reminds us that not even the compiler in .NET can reliably tell he declaration order of types or members. If your product depends on that being knowable, youā€™re in for a world of pain. Itā€™s also worth noting that this knowledge is about as inside baseball as it gets; and yet at least one of you has written a hack to deal with it.

    šŸ„“ Semver doesnā€™t mean MAJOR.MINOR.PATCH, it means FAILS.FEATURES.BUGS. No, this has nothing to do with .NET, but it is insightful and funny.

    And thatā€™s it for what happened Last Week in .NET. Iā€™m giving a free webinar on August 18, 2021 about Event Driven architecture: Bringing Order to Chaos. If youā€™re thinking about breaking up your monolith or moving to microservices, this talk is for you.

  • šŸ•µļøā€ā™€ļø Using Secrets in .NET Core Console Applications Console applications remain one of the least documented parts of the .NET Core experience (compared to ASP.NET), and Iā€™m always happy to share content on that topic. Why are console applications important? If youā€™re in an event-driven microservices world in .NET, using a Console application to connect to your message queue and receive messages and put them into a database of some sort is an integral part of the work; as are services that respond to events but donā€™t necessarily expose HTTP APIs.

    šŸ”Ø Erik J markets his EF Core Power Tools Visual Studio Extension I did not know this existed. I mean, I vaguely had heard of it, but had no idea what EF Core Power Tools would even do. Luckily Erik shared a link to his extension, which according to the download page, lets you Reverse engineer a context and classes from an existing SQL Server Database, has diagramming support, right-click migration support in Visual Studio, and more.

    šŸ”Œ The .NET Download Site had an outage last week and there is not, and I quote, ā€œThere is no workaround using Azure DevOps.ā€
    Can you imagine the protocols Microsoft put in place to push Azure at all times?

    šŸ‘Øā€šŸ’¼ ā€œMention Azure.ā€
    šŸ‘Øā€šŸ’»ā€But sir, this is an outage on our public website.ā€
    šŸ‘Øā€šŸ’¼ā€MENTION AZURE.ā€

    šŸ¦œ David Fowler tweets about some new additions to ASP.NET in C# 10 and .NET Core 6: Default Global Usings, File Scoped Namespaces, and a ā€œminimalā€ Hosting API.

    šŸˆ Nicole Express blogs about the cause and fix for a long standing ALF Bug. Yes. That adorable animatronic 80s TV star that had its own movie and video game, and liked to eat cats.

    šŸ§Ÿā€ā™‚ļø What if Github Copilot worked like a real programmer Not listed: Copilot engaging in a flame war over whether The Last Jedi was the worst Star Wars movie ever made, and reminding other programmers that programming is a meritocracy, while failing to see how self-serving that statement is. This is satire, of course. The Last Jedi is arguably the best Star Wars movie ever made.

    šŸŖ If You use Chocolately, a fresh install of Visual Studio can inadvertantly nuke your nuget package source configuration oops.

    šŸ¢ How To: Use Azure AD Powershell to Work With Extension Properties (User Attributes) This blog post does what it says on the tin, but for you the use case here is you need to use Powershell to retrieve and set extension properties from Azure AD. If you know what that sentence means, please reach out and let me know. Thanks.

    šŸæ On July 27th, 1993, Windows NT 3.1 was released. I know it wasnā€™t NT, but Windows 3.1 was glorious, but only for me because thatā€™s the first OS I played Chipā€™s Challenge on. Also Chipā€™s Challenge and its sequel is available on Steam. Youā€™re welcome.

    ā¤ļø Brent Ozar has released an update to his First Responder and Consultantā€™s Toolkit. Ok, naming aside. If you use SQL Server, and youā€™re a DBA or even a C# developer that needs to interact with Sql Server,you will want to download, install, and run these scripts. Theyā€™re very useful in understanding performance issues in SQL Server, in understanding if your table structure and indexes are optimal, and helping you resolve emergent issues with SQL Server. These scripts should be in every teamā€™s toolkit that uses SQL Server.

    šŸ­David Lee Roth retells the famous ā€œbrown M&Msā€ story that Van Halen used in its Rider. The reason they used it is not what you think. Itā€™s well worth your time to listen to. Thanks to @textfiles on Twitter for sharing a link to this.

    šŸ†™ Visual Studio 2022 will not be able to build .NET Applications that target anything in .NET 4 before .NET 4.5.2. The writing is on the wall: Upgrade your framework, folks.

    šŸ“¢ Dapr v1.3 has been released and this minor update includes several minor updates but still no explanation of why drop-in-replacement architecture is such a ā€˜winā€™. Developing to the Lowest Common Denominator gets youā€¦ The most boring and undifferentiated features of all of your options.

    āœˆļø I asked the CEO of Jetbrains for an update to the Solarwinds/Team city mess and he obliged. If youā€™re new to this, the NYTimes ran an article that claimed ā€” anonymously, of course ā€” that TeamCity was why the Solarwinds attack happened. Because of that, some companies and organizations have dropped using Jetbrains products. We hadnā€™t heard from the CEO of Jetbrains since their ā€˜updateā€™ several months ago, and I asked them to let us know if anything ahd changed. They obliged by reinforcing that the NYTimes article probably shouldnā€™t have been published in the first place.

    šŸ”ˆ .NET Conf Call for Speakers is Open I have submitted a session that will undoubtedly be turned down because I donā€™t mention Azure in the abstract at all.

    šŸ¤Æ C# 10 will also support var as a lambda expression initializer, and Iā€™ve hit the point where Iā€™m now souring on var. I have no idea what that type is or well be, and I canā€™t see how thatā€™s a good thing. @ me @gortok on twitter if you think Iā€™m wrong, and why.

    šŸ’ø Marten, the Generic Host Builder in .Net Core, and why this could be the golden age for OSS in .Net. Jeremy Miller spells out why the addition of Generic Host Builder has made his life better as an OSS Maintainer. Personally I think the problems with OSS in .NET are mostly commercial interference by Microsoft; and Iā€™m not so sure we can fix that.

    šŸ˜„ Abel Wang passed away last week He was a Principal Program Manager, and Technical Assistant to the CTO of Azure. Take a moment and read the accompanying link to learn more about Abel and his life.

    Is your .NET Team thinking about transitioning to microservices? Take my free five day course at https://movetomicro.services.

  • 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.

    If your .NET team is thinking about moving to microservices, check out https://movetomicro.services first.

  • šŸ“† July 29th is .NET ā€œFocus on F#ā€ Day. You can sign up to watch a whole day of videos on F# at focus.dotnetconf.net. 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 Powered4.tv 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.

    Moving to Microservices? Sign up for a free 5 day email course at https://movetomicro.services

  • šŸ„ 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.

  • I swore up and down I would not release a newsletter this week owing to the July 4th holiday (Treason day for the Brits out there), and then Microsoft's Github announced and released Github Copilot, and my promise fell apart.

    CoPilot is an ML trained code snippet generator. What is it trained on, you ask? All the public code on Github, GPL'd or otherwise. This has angered the internet lawyers and is generally considered to be a Dick Moveā„¢ by everyone else (except those that have read the parable of the Scorpion and the Frog). And since there really isn't any magic in ML, that's led to some interesting bugs... like reproducing the inverse-sine function from Quake to include the PG-13 rated comments. Or giving internet randos the API keys that Sendgrid users put in their source code on accident, or even reproducing the GPL in its entirety in a source code header file and none of this includes the mundane but possibly Office Space plot inducing every day bugs present in CoPilot.

    It's almost trite to call these 'bugs', these aren't bugs. These aren't misunderstandings of product requirements, or bad coding. No, these are Ian Malcoms:

    Your scientists engineers were so preoccupied with whether or not they could, they didnā€™t stop to think if they should. (original source)

    AI and ML have given us a new class of software defect: the Ian Malcom, and we can thank Github for playing the role of movie villian here.

    With that out of the way, here's what else happened last week in .NET.

    šŸš‰ In Windows 11 you can now specify which Terminal you want to use and not have to have cmd.exe launch all the time. I don't want to be cruel; but would anyone willingly choose cmd.exe as their terminal? @ me if you would, and why.

    šŸš… ZDNet's Jason Berlow says he'll bite the bullet and buy a new PC for Windows 11 and it's important to note that 'more secure' here means "less likely to get taken down by ransomware". Microsoft's usual track record for security post-boot-up still applies.

    šŸ‘” Adam Storr has a blog post out titled Test Your .NET HttpClient Based Strongly Typed Clients Like a Boss, and I'm not clear from the title if he means the every day "exploit them" or if there's a more sinister meaning, like "gaslight them into believing working 60 hours a week means you're a team player".

    šŸŽ­ There was a LinkedIn Breach announced on June 29th, with the field "Inferred Salary" included. Since no one knows what "inferred" means here, we'll just go with the face-value interpretation that LinkedIn calculates what your salary should be based on your experience and roles and local market and that is exactly why naming is so important in software.

    šŸž I got a little flak last week for suggesting that Azure Static Web Apps were mundane but being touted as The Next Great Invention After Sliced Bread, and here's just another example. Now, I get that if you work at Azure, you should be touting Azure products -- but my concern here is that treating something mundane like Static site hosting as revolutionary in your verbiage (awesome, awe inspiring? Really?) is overplaying the marketing angle without understanding that a crucial part of marketing is credibility, and it's easy to lose it if you overplay your hand.

    šŸ–ØšŸ˜² There's a new CVE out for Windows dubbed "Printer Nightmare". CVE-2021-1675 allows an attacker to take over your system through the windows printer spooler service. and this is reason #2 why I had to release a newsletter this week. Holy forking shortballs Microsoft.

    šŸ–ØšŸ˜² Kevin Beaumont gives us an indepth report on "Printer Nightmare" including most importantly how to mitigate this zero-day. Also important to note there appear to be 2 CVE classifications for "Printer Nightmare", the aforementioned -1675, and CVE-2021-34527. 1675 covers Privilege Execution, and 34527 covers Remote Code Execution. Happy Monday.

    šŸ–ØšŸ˜² There's a POC out for Printer Nightmare that was promptly deleted but still available via caching sites if that's your thing. I'm not going to look and see whether or not my old Livejournal is cached somewhere, thanks.

    šŸ–ØšŸ˜²šŸ“Š Interested to know if you're affected and you like Flowcharts? @StanHacked has you covered.

    šŸ–ØšŸ˜²šŸš‰ Interested in seeing if your machine is exploitable for "Printer Nightmare"? Try this powershell one-liner (please don't).

    šŸ“¢ YARP Preview 1.0.0-preview12 has been released and we are promised that this is the last 'big set of API changes'. I admire their optimism.

    šŸ“¢ The Pull request for finishing out W^X support for .NET is open and the problem with naming it W^X is that I can't find -- either on github in my old releases or on google any reference to what this means. My memory seems to recall it means Write Xor Execute; which means that a piece of memory is either writable or executable, but not both. I could be way off on this, and I take corrections @Gortok on Twitter and via email at [email protected].

    šŸš«šŸ‘“šŸ’» Windows 11 will leave millions of machines behind and Microsoft is struggling to explain why writes TheVerge. I guess "We're getting hammered by side-channel attacks and ransomware attacks because we have the most popular operating system of all time and we're sitting on a long legacy of a single-user disconnected operating system vs an internet connected system" is hard to say?

    šŸ‘©ā€šŸ’»šŸ„Œ There is a Fortnite VS Code theme and I have not played First Person Shooters since Battlefield 2 so I don't really know what the hype is. Fortnite really just looks like Team Fortress 2 meets Starseige:Tribes Without the Jetpacks, he says, yelling at the kids to get off his lawn.

    šŸ’‰ā˜ AT&T is moving its 5G Network to Azure for Operators and now I guess the COVID Vaccine will give you Azure interopability as a side-effect?

    šŸ‘‹ Valid Kubernetes YAML that also happens to be AT&T x86_64 assembly code and I need a shower after seeing that. Ew.

    ā˜• Leslie Richardson and Cecil Phillips have a .NET video out on Exception Filters and I promise if you catch System.Exception and don't filter it, bad things will happen (also please don't filter on System.Exception, just pick the execption sublcass and filter on that. Your maintenance programmer and I will thank you).

    šŸ“– dotnet-wtrace Command Line Tool has been released and it captures .NET traces. No, I don't know anything more than that and Open Source Projects aren't exactly known for their Marketing.

    šŸ”§ The .NET team has a blog post that covers the Object allocation tool in Visual Studio. Think of this tool like dotMemory or ANTS Profiler, just built into Visual Studio.

    UWP Projects will not have ongoing support in the new WinAppSDK World, according to a Youtube video by the WinUI team, and the longer discussion that alerted me to this fact is here.

    And that's it for what happened Last Week in .NET. I'm especially interested to see if there's any legal action around CoPilot (ha), and how bad PrintNightmare turns out to be, so if either of those get more press, you'll hear about it here.

  • 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

    ā˜  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 tooland 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; so there will be no Last Week in .NET Next week, and I'm starting to regret the title.

  • 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.

  • Weā€™ve come down from build and gotten back to the grind. Two releases this week followed by a ton of interesting stuff thatā€™s happening in the .NET Space.

    .NET 5.0.7 has been released and itā€™s a small release that fixes CVE-2021-31957. In the same vein, .NET Core 3.1.16 has been released and it fixes the aforementioned CVE.Microsoftā€™s Kate Crawford says ā€œAI is neither artificial nor intelligent and Iā€™ve never agreed with a headline more.End to End encryption coming to Microsoft Teams which will send corporate legal compliance teams into tizzies. So Iā€™ll assume that itā€™s ā€œEnd to Endā€ but your employer will probably have keys to decrypt and record it, because thatā€™s whoā€™s paying the tab.Thereā€™s a design proposal to make Directory.Build.targets just work and as someone who is still very scared of MSBuild, I hope this is means fewer nightmares.MSTIC helped the FBI confiscate the hackerā€™s wallet from the Colonial Pipeline ransomware hack and theyā€™re being mum on what ā€˜helpā€™ means. Some commenters note that Windows 10 has a built in keylogger; and Iā€™m seriously reconsidering linux.Visual Studio now supports deep links for git pull requests and the 1990s called and asked for royalties on this tech.First known Malware targetting windows containers but everyone is safe because no one uses windows containers. Also if you are forced to use Windows Containers I have to assume thatā€™s about the 20th worst part of your job.Jet Brains Rider ā€˜Must Useā€™ Plugins. Selling Microsoft based developers on a better IDE is like selling shoes to the cobblerā€™s kids. I respect Jetbrains here but itā€™s always going to be an uphill battle. JetBrains has another blog post just released titled ā€œImport settings from Visual Studio and Visual Studio Code to JetBrains Riderā€ In case you wanted more evidence of that uphill battle.The .NET Community Standup asks ā€œWhatā€™s new with Blazorā€ in this video. Whatā€™s new, Blazor?Do you need to inject text into an ASP.NET Core Response? Rick Strahl has you covered this is over a year old but still the best resource if you need to rewrite the response in ASP.NET Core.Immo Landwerth wants to make Exception.ToString() useful and if accomplished Iā€™d like to have Immoā€™s babies. Only one of these statements is a joke and Iā€™ll leave that to you to decide which one.Azure App Service supports .NET 6 Preview on Linux and Windows Early Access according to Byron Tardif (@bktv99 on twitter).Visual Studio Code 1.57 has been released and there will come a tipping point where new features gives it a similar bloat profile to Visual Studio. Itā€™s like the Wilford Brimley line for software.Rediscovering Implicit Casts or as I like to think about it ā€œMore than you ever wanted to know about implicit casting in C#.Christina Warren shows us that comic sans makes a pretty good mono-spaced font and I hate myself for how much I like this.

    And thatā€™s it for what happened Last week in .NET.

  • Itā€™s a light week this week; everyone is coming down from Build. If you missed that, check out last last weekā€™s newsletter. Now on to what happened Last week in .NET.

    Jared Parsons, member of the Roslyn core team, talks about string vs. String. That is, for those of you listening to this instead of reading it, the keyword string vs. the class String. As it turns out, theyā€™re not the same thing. There is also a special circle of hell for people who override String. @ me on Twitter @gortok if you think Iā€™m wrong about this. Not about .NET but relevant to our interests, Michele Hansenā€™s preorder for ā€œDeploy Empathyā€ is open. Michele is the founder of https://geocod.io, which is, as the name says, a geocoding API. She does a lot of customer interviews for Geocodio, and previously she was a product manager for The Motley Fool, where she ā€” you guessed it ā€” did a lot of customer interviews. Anyway, sheā€™s written a book (and she has a newsletter!) about customer interviews that will give you the feedback that you need for your product or service. I donā€™t do sponsored content here, and if you work on a product or are a consultant trying to sell a service, you need to read this book. Periodt. Benefits of the preorder is you get rough drafts of the book. Seriously, buy it.This is one of the best produced virtual keynotes Iā€™ve seen ever Scott Hanselman ā€œand friendsā€ bring you a Build keynote unlike any other. I mentioned this last week, but itā€™s worth noting again. Watch it. Itā€™s that good.Raymond Chen talks about Arm32 If this is your introduction to Raymond Chen, youā€™re one of todayā€™s lucky 10,000. Feel free to peruse his back catalog and be amazed and entertained for thousands of hours. Today he talks about Windows and Arm32.Microsoft is partnering with Morgan Stanley to provide reference cloud architectures for highly regulated industries (like the financial industry). This is akin to Las Vegas partnering with Satan, but I get it. This is corporate synergy.C# 9ā€™s blazor ā€˜colorizationā€™ and appropriate C# 9 syntax highlight and documentation is live If this sentence is confusing to you Iā€™d like to point out I present the links; I do not vet them for sanity.Paint.NET Is smackdab in the middle of its migration to .NET Core and some parts are already live. If you arenā€™t aware of Paint.NET. Itā€™sā€¦ Paint. In .NET. Thatā€™s it, thatā€™s the hook. All joking aside, itā€™s a rather wonderful paint program and it just happens to be written in .NET ā€” now .NET Core. Microsoft.IO.RecyclableMemoryStream 2.1.0 is released Could someone explain to me how a .NET 4.6.2 targeted application can now use Span<T>? email me at [email protected].

    Microsoft wants to be twitterā€™s main character for a day by censoring the ā€œTienanmen Square Tank Manā€ image on the anniversary of the Tienanmen Square massacre. rubs head with handsā€¦ Do you see how this is bad, Microsoft? Do you? I canā€™t rub a companyā€™s nose in their own mess, but Iā€™d sure like to.

    And thatā€™s it for what happened last week in .NET. Tip your service staff, and tune in next week.

  • So Build happened last week. This email newsletter is shockingly late for reasons that you probably don't care about but have messed up my entire week. Mea culpa.

    šŸ“¢ .NET 6 Preview 4 is out and contains a metric ton of bug fixes and new docker images for your testing pleasure. Seriously, far too many to list here. Thankfully though Microsoft has a blog post out detailing what's in it. I'll talk about some of these updates independently.

    In .NET 6 Preview 4, there's now a "Date Only" and "Time Only" struct which does what it says on the tin. This greatly simplifies my own code that tries to handle 'date only' and 'time only', so I'm prettty happy this is here.

    šŸ“¢ Announcing Maui Preview 4 which I can only assume was released with .NET 6 Preview 4, because otherwise there'd be two things named Preview 4 that track different releases and no self-respecting company would do that... right? RIGHT?

    šŸŽ‰ Visual Studio 16.10 has been released and appropos of nothing Visual Studio has multiple version numbers for a given 'year' version. 16.10 adds new productivity enhancements, Docker and git features. Of note is that they've finally added a "Remove Unused references" command, which assumes parity with ReSharper from 2016.

    šŸ½ Ginny Caughey shows you how to write platform specific code for MAUI and GIFs as teaching tool are magic.

    šŸ“¹ A video from Build titled .NET 6 Deep Dive; what's new and what's coming is the headline, and I categorically refuse to make the easy joke about the headline. If the punchline doesn't pop in your head, bless you.

    šŸ“ƒ Azure Application Service feature list, in a tweet; special thanks to Jeremy Sinclair (@sinclairinat0r ) for the screen grab.

    šŸ’» Microsoft and Qualcomm team up to create a Windows on Arm64 Developer PC So microsoft is releasing a PC that is lower priced than their Surface X ($999) to encourage development on Windows. I say this as I am typing this up on a Mac, possibly the most expensive development machine ever to hit mass market usage. On a lighter note, you could think of it as a Windows Mini machine.

    šŸ“¢ The Windows Procmon tool has been reimagined for Linux What has the world come to that we can credibly say Microsoft is trying to provide a good Linux experience?

    šŸ§ What do you mean George? Well Microsoft support for Linux GUI apps on Windows 10 coming later this year. I'm not sure if this is a tacit admission that Microsoft lost the hearts and minds of developers or an admission that Linux lost the desktop war?

    šŸ—£ In news that will only shock managers, Developers days are interrupted by meetings, a Github Study finds. They interviewed developers and found out when and how they were most productive and it was when there were few meetings and long stretches of open time. This is my shocked face.

    šŸƒā€ā™‚ļø Richard Lander has a conversation with members of the Ready to Run Team about... Ready To Run This Q&A dives into what Ready to Run is (spoiler: it's code that's ready to run anywhere without JITing) and how it's different from other toos like NGEN.

    5ļøāƒ£ For all five of you that use F#, there are F# and F# tools updates for Visual Studio 16.10. Features include better interop between F# and C# projects, fixes and improvements on refactoring and other sundries.

    šŸ‘‹šŸŒŽ Bryan Hogan blogs about Github Actions with .NET, Part 1 - Hello World and Documenting the Artifact and in what I hope becomes the norm, the full source code for this is also linked from the blog post. This is good. More of this, please.

    šŸ‘ØšŸ‘ØšŸ‘ØšŸ‘ØšŸ‘© Want a nice recap of what happened at Build Day 1? the poorly named but fun-filled session named "Microsoft: Into Focus with Scott Guthrie, Scott Hanselman, Rajesh Jha, and Kevin Scott" is available for your viewing. They left poor Fillsha Shah off the title for reasons passing understanding, even though she's listed as one of the speakers for the talk.

    šŸŽ‚ WinGet hits 1.0 after more than a year of sucker-punching AppGet with being announced at Build 2020, Winget is now 1.0. It will be available on Windows 10, 1809, and "ships soon". Windows Insiders can use it now.

    šŸ“§ Microsoft Threat Intelligence Center blames the actor behind the Solarwinds attack for a recent email based attack. Luckily the email attack is just a wide-spreadh phishing campaign, and not a sophisticated supply chain attack that took the entire software industry by surprise.

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