Welcome to the eleventh edition of The Catch Block!
I wrote an entire story for inclusion in this edition of The Catch Block, but I had to scrap it once I remembered that MS Build is happening this week! So, I am interrupting our normal programming (and delaying the newsletter by one day) to bring you highlights from MS Build, including Blazor WebAssembly, Codespaces, .NET MAUI, winget, and terminal changes!
Also in this edition: the mystery of the French Thousands Separator, a burning question about Azure DevOps, and more!
MS Build Announcements
Here's a high-level overview of the major announcements coming out of Build:
- Microsoft and GitHub are releasing Codespaces! - This used to be Visual Studio Online, and is apparently going to include a full IDE experience similar to VS Code without ever leaving GitHub. Could be pretty cool!
- Expanding Visual Studio 2019 support for Visual Studio Codespaces (Anthony Cangialosi) - Or, if you prefer, you can develop using Codespaces in Visual Studio.
- Introducing .NET Multi-platform App UI (Scott Hunter) - Microsoft is integrating Xamarin into .NET 5, and the result is this: .NET MAUI!
- Windows Package Manager Preview (Demitrius Nelon) - Finally, a native package manager for Windows! Will apparently be termed "WinGet".
- Blazor WebAssembly 3.2.0 now available (Daniel Roth) - Blazor WebAssembly is officially released! I really hope this becomes the new standard for front-end-based apps.
- Welcome to C# 9.0 (Mads Torgersen) - This is not actually released yet, but is instead an overview of new features coming in C# 9.0.
- Visual Studio 2019 v16.6 & v16.7 Preview 1 (Jacqueline Widdis)
- Announcing .NET 5 Preview 4 and our journey to one .NET (Scott Hunter) - We are getting closer and closer to the day .NET 5 is released.
- Announcing Entity Framework Core 5.0 Preview 4 (Jeremy Likness)
- ASP.NET Core updates in .NET 5 Preview 4 (Sourabh Shirhatti)
- Windows Terminal 1.0 (Kayla Cinnamon) - This looks really neat. Finally, the command line get a usability update!
Will Azure DevOps Merge with GitHub?
At my company, we use Azure DevOps to store our source code, run our build pipelines, etc. But considering Microsoft already owns the largest code repository in the world, it is worth wondering: will DevOps and GitHub ever merge?
From all the announcements so far at Build, the most dramatic was the one missing: I didn't see any improvements announced for Azure DevOps.
This is concerning to me for two reasons: one, because I was under the impression that Azure DevOps was a flagship product for Microsoft, and two, because unless there's some kind of automatic conversion tool available, converting all my company's myriad DevOps repositories to GitHub would be a massive work effort.
Here's hoping Microsoft has some magic up its sleeve, so that us Azure DevOps users aren't left out in the cold.
Other Previews and Announcements
- .NET Core May 2020 Updates – 2.1.18 and 3.1.4 (Rahul Bhandari)
- Announcing TypeScript 3.9 (Daniel Rosenwasser)
Quality Reads
- The Unattributable "db8151dd" Data Breach (Troy Hunt)
- Building a Progressive Web App with Blazor (Jon Galloway) - Bring on all things Blazor!
- Chain Actions, Funcs, and Predicates In .NET (Khalid Abuhakmeh)
- Why Use DTOs (Data Transfer Objects)? (Derek Comartin)
- Handling Web API Exceptions with ProblemDetails middleware (Andrew Lock)
- 5 Things You Should Stop Doing With jQuery (Burke Holland)
- What is Dapper, and why you should consider it for your .NET projects (Kevin Griffin)
- Mystery of The French Thousands Separator (Phil Haack) - As I said last week, I love bug hunt stories.
- How do you call a stored procedure with Dapper? (Kevin Griffin)
- TypeScript in a Weekend: A Crash Course (Shane Lonergan)
- How to lead remotely (Monica Rodrigues)
- The End of Integration Testing: If You've Passed All the Tests... (Peter Vogel)
- Whiteboarding for Developers: Yes, You Have To (Chris Gustafson)
- Using Dapper in ASP.NET Core Applications (Gunnar Peipman)
- Don't use method with side-effect in LINQ (Gérald Barré) - The distinction of LINQ as a descriptive language and not an imperative one is particularly important.
- Life, part 9 and Life, part 10 (Eric Lippert)
Catch Up with the Previous Issue!
Thanks for reading, apologies for the link fatigue, and we'll see you next week!