Welcome to the second weekly edition of The Catch Block!
In this edition: NPM, Visual Basic, social distancing, URL rewriting, CQRS, and upcoming Blazor and .NET 5 goodness.
GitHub and Microsoft Have Acquired NPM
In the "Pac-Man" category of this week's news, we have this somewhat-shocking announcement:
That's right, the two single biggest sources of code, GitHub and NPM, will now both be owned by Microsoft.
On the one hand, this is FANTASTIC news, because now NPM, which has become a critical part of the open web, has a corporate backer and is unlikely to be taken down any time soon. Imagine NPM being fully integrated into GitHub, then Visual Studio, in such a way that NuGet already is (i.e. with none of this LibMan nonsense). It's enough to make a programmer drool.
On the other hand, I can't help but be worried that a large number of all open source code and projects now rely on Microsoft for their very existence. Too many eggs in one basket, perhaps?
Visual Basic In .NET 5, But Will No Longer Be Improved
On a much smaller scale than the previous item, we have this news. More specifically, we have good news and maybe-bad news.
Good news for some of you: Visual Basic will be supported in the upcoming release of .NET 5! Yay for VB-lovers!
However, the maybe-bad news is found in the same article:
"Going forward, we do not plan to evolve Visual Basic as a language. This supports language stability and maintains compatibility between the .NET Core and .NET Framework versions of Visual Basic."
In other words, Microsoft considers Visual Basic to be "complete" and won't be giving it new features. This is not a "deprecation" so much as it is saying "well, this won't be getting any more new stuff in it". So, in one way, we could say Microsoft has created an achievement.
Achievement Unlocked: Finished An Unfinishable Task.
The Fabulous Lifestyles of the Quarantined and Bored
We can't seem to escape the onslaught of news about the novel coronavirus and its extensive impacts on our communities. Among the numerous cancellations of sports seasons, conferences, movie and TV production, and any event with over 50 people in it, Microsoft, Google, and other tech companies are having their employees work from home for an extended time.
In addition to all this disruption, a new term has entered the public lexicon: social distancing. This is the idea that we need to maintain physical space between us and the people around us, with most articles recommending five or six feet of such space.
The Washington Post has a fantastic article with infographics explaining why social distancing and other measures can significantly change the outcome COVID-19 will have.
Of course, this all leaves some people, particularly parents with young children, scrambling to find ways to occupy them in a time of quarantine. One particularly accurate solution looks like this:
Of course, I have my own opinion:
Cool Reads
- What I Learned After Working Remotely For a Year (Heather Downing). Given the number of companies that have decided to have their employees work from home due to the coronavirus outbreak, I believe it's important for those of us who do not work remotely all the time to learn from those who do. Heather's write up is full of useful insights and tips. Read it, see if any of it works for you. And if you are working remote because your company decided to not have employees in the office, let me know!
- Geographically Distributed Teams and When Remote Work Goes Wrong (Phil Haack). Continuing a series he started last week (and that I wrote about in the previous edition of The Catch Block), Phil discusses ways to have newly-remote-working but dispersed teams work together, and ways that remote working might go wrong for your team. Not teams work effectively remotely, but in times of pandemic, there are ways you can try to make it work. Plus, when is having a mentor (something he suggests doing) ever a bad thing?
- Implementing CQRS Pattern with Vue.js & ASP.NET Core MVC (HR Rony) Longtime readers will know that I love the CQRS pattern, and seeing more apps get written with it fills me with, well, if not joy, then a low-level sense of contentment. And isn't that better? At any rate, this article uses the excellent package MediatR to implement a CQRS-style app. Consider this kind of architecture next time your team needs to start a new project.
New Tools, Releases, and Announcements
There were quite a few new tools, previews, and releases announced this past week.
- Announcing .NET 5 Preview 1 (Scott Hunter) The glorious next version of .NET is coming soon, as this preview attests to.
- Announcing the .NET Core Uninstall Tool 1.0! (Sarah Oslund) Given that versions of .NET Core can coexist side-by-side, Microsoft has apparently decided that we need a tool to manage versions of .NET Core. You can check out the more complete documentation here.
- Blazor WebAssembly 3.2.0 Preview 2 Release now available (Daniel Roth) It's no secret that I love Blazor, so seeing that a new release is in the pipeline is pretty awesome. This release will include new authentication schemes (including ASP.NET Core Identity), a new Progressive Web App (PWA) template, and more. I'm looking forward to Blazor being a useful architecture for a long time yet!
- Visual Studio 2019 Version 16.5 Is Now Available (Jacqueline Widdis)
- Announcing Entity Framework Core 5.0 Preview 1 (Arthur Vickers)
Other Neat Reads
- Best Developer Communities to Be A Part Of in 2020 (Bolaji Ayodeji)
- Passing Awaited Tasks (Eric Lippert)
- How Will You Collaborate? (Jessica Joy Kerr)
- ASP.NET MVC: How to Use AJAX Without Passing Parameters (Asma Khalid)
- Generate Outputs with Razor Engine in .NET Core (Khalid Abuhakmeh)
- .NET Core Backend + React.js Frontend - Optimizing the Development Time Experience (Jeremy D Miller)
- Working From Home... With Kids (Erin Stellato)
- Back to Basics: Rewriting a URL in ASP.NET Core (Rick Strahl)
- Is C# Slower Than C++? (Michael Shpilt)
- Key Vault for ASP.NET Core 3.1 Web Apps (Shahed Chowdhuri)
- Upgrading from ASP.NET Core 3.1 To 5.0 (Preview) (Steve J Gordon)
Thanks for reading! We'll see you next week!