This Microsoft Build 2020 conference was very different from all the previous ones as a digital experience event because of the COVID-19 Coronavirus. Microsoft made it a great experience – with announcements on Microsoft Azure, .NET 5, Windows, and more.
Here’s my view with a summary of announcements.
Microsoft Build Digital Experience
So far I’ve attended all Microsoft Build conferences, and nearly all Microsoft PDC conferences. This event was very different with the digital experience. Already the MVP summit in March-2020 was a digital experience, so Microsoft could learn from this, and really created a rich experience.
I already had registered and booked flights for the events in Seattle. Today I’m still waiting for the reimbursement of the Lufthansa flights from March and May. Microsoft itself was very fast to return the charge from the in-person event. The online event was completely free.
There are advantages and disadvantages with the digital experience. What did I miss? What did I gain?
What I missed
Here are the things which were not possible with the digital experience that I missed.
- meeting people, friends from Microsoft and the community
- walking through Seattle
- technology discussions during breakfast and lunch
- reaching my goal for daily steps switching rooms or buildings
What I didn’t miss
These things are better with the digital experience.
I didn’t miss
- long flights
- waiting in long queues, e.g. to attend the keynote
- a not working wireless network during keynotes
- switching rooms or buildings
- switching the time zone
Being in Seattle with a 9 hour time difference is always difficult in the evenings. At the end of the week I adjusted to the new time zone and have a problem on travel back again. However, this was not a lot better with the digital experience. The experience to repeat all the breakout sessions three times across different time zones was great. However, not all sessions and Q&As were repeated, and I attended sessions meant for different time zones to attend more sessions – so I’m tired again.
> Microsoft created a great digital experience with 8 parallel sessions, great keynotes, great presentations, focus groups… And it was also fun with a lot of secret nerdy messages, e.g. RGV2cw (see the links below).
Let’s get into the great news from Microsoft Build 2020!
In the last months I’ve delivered several Azure Kubernetes Services workshops. Now Microsoft has an extension: a preview of Azure Arc-enabled Kubernetes which allows spanning Kubernetes clusters across datacenters, multicloud, and Azure Stack. There are many more new offerings to integrate on-premises environments with the Azure cloud.
The Azure Kubernetes Service now also supports Windows Server container support! This makes it easier to move existing Windows applications to a dockerized environment. Windows and Linux applications can run side by side in the same AKS cluster!
Azure Cosmos DB serverless is great for intermittent traffic patterns, "bursty" workloads. Azure Cosmos DB has several new features, pint-in-time backup and restore, new delete functionality in the change feed, autoscale with single-digit millisecond latency and 99.999% availability…
Azure Cognitive Search is enhanced with Azure Machine Learning integration, and allows for a custom search ranking system.
Microsoft announced Project Moab – an open-source balancing robot that helps learn how to build autonomous control systems with Project Bonsai. This robot can be 3D-printed – the plan is here!
An interesting new app service functionality is Static Web Apps which offers static Web applications for a cheap price. In my blog you can find articles how to host an Angular app and a Blazor app in an Azure Storage account with an Azure Function app backend. Now we have a new offering which makes this easier and offers a lot more features. As source code is posted to a GitHub repo, a GitHub action takes over to deploy the content to the Static Web App. For an API backend, Azure Functions can be used in the same repo. Here you have support for custom domains, HTTPS, publishing to staging, and more!
Let’s get into highlights of .NET updates – including Blazor, MAUI, and C# 9
ASP.NET Blazor is now released – not only for the server-version (which is already released since the release of .NET Core 3.1), but also with .NET running in the client – in all modern browsers using WebAssembly. .NET can now be used both on the client and on the server – full-stack .NET development!
With .NET 5 the Journey to One .NET becomes a reality. Along the way, .NET MAUI is an evolution of Xamarin.Forms and will be part of the One .NET in the .NET 6 (!) time frame. Previews will be available end of 2020. Instead of having multiple projects to cover different platforms, everything can be resolved within one project. A Mac is no longer needed to build for iOS. Everything can be done on Windows. Just to deploy to the Apple store, a Mac is needed in the end – this list step can probably be resolved using CD in the Azure cloud.
C# 9 is coming – with records! Another great feature of C# 9 and .NET 5 is the source generator. This allows creating source code dynamically to reduce the need for reflection! C# 9 is expected with .NET 5!
EF Core 5
An interesting extension coming with EF Core 5 is a new migrations and deployment experience with a separate application that’s started first instead of having the migration inside the main application/service.
Project Tye makes it easy to develop solutions for Kubernetes without the need to create Dockerfiles and Helm charts, and easily deploy the solution to a Kubernetes cluster. See my blog article with a ASP.NET Core Web and API applications, and making use of tye!
Visual Studio Online has been renamed – again. It’s now Visual Studio Codespaces – Visual Studio or Visual Studio Code running in the cloud! Codespaces is also coming to GitHub – click a link in a GitHub repo, and you have the environment you need for the repo ready in the cloud!
Let’s continue with GitHub. Github’s Satellite Virtual 2020 already had some great announcements:
- GitHub Codespaces offers a cloud-hosted dev environment (also see Visual Studio Codespaces, the new name for Visual Studio Online)
- GitHub Discussions for brainstorming feature ideas, help new users…
- Code scanning and secret scanning – not only for public but also for private repositories
- GitHub Private Instances – a fully managed environment for enterprises
More for GitHub from Build:
- GitHub Actions for Azure are now integrated within: Visual Studio Code, Azure CLI, and the Azure Portal. This makes it easier to deploy from GitHub to Azure!
Windows had a big part at Microsoft Build 2020!
For me the most important announcement for the Windows Platform is the Project Reunion. This project has several aspects and features. With this project, UWP applications can not only run in a sandbox, but are fully powered Win32 applications using new WinUI 3.0 controls that are developed independent of Windows 10 versions, these controls can also be used with WPF and Windows Forms applications…
Along Project Reunion the preview of the Windows SDK .NET package is available: .NET interop for all Windows WinRT APIs. The tool C#/WinRT was launched to create WinRT projections for .NET: .NET 5 applications can call Windows WinRT APIs and third-party WinRT components.
The Uno Platform 3.0 supports WinUI 3.0! This allows creating apps using the modern XAML syntax for mobile devices, and also supports XAML and C# with WebAssembly!
The Windows Package Manager allows for quick and easy searching, viewing, and installing commonly used developer tools. Now I can install applications with the command-line utility winget! To install Visual Studio Code:
winget install vscode
From Windows 10 insider builds I already love the next generation of WSL, the Windows Subsystem for Linux. With this, Hyper-V images are no longer needed to run Docker containers. Next GPU support is added for WSL. Support for GUI apps – without a third-party server – is added as well; and a simpler install experience is added as well.
A summary of WSL 2:
- released with Windows 10 version 2004
- real Linux kernel built in by Microsoft
- 100% system call compatibility
- increased file IO performance
- existing WSL can be converted to WSL 2
- GPU support will be added
- support for GUI apps will be added – without a third-party server needed
Another feature I’m already using several months (before it was available on the Microsoft Store, but was already offered via a GitHub repo) is the new Windows Terminal. This is now released! I’ve been using the previews since early days, and I’m loving it. It can be used full-screen with multiple tabs. I’ve tabs open for different folders, using WSL-2 with Linux distributions in other tabs, the Azure CLI in another tab…
Project Cortex (announced at Ignite 2019) will be generally available in summer 2019 – applies artificial intelligence (AI) and Microsoft Graph to create a knowledge network connecting to Microsoft 365 content as well as custom data sources.
Of course there’s a lot more! I didn’t cover Microsoft 365, Quantum computing, and a lot more!
Blazor WASM is released – full-stack development with .NET is possible again! With .NET 5 We are on the way to one .NET, and MAUI will make mobile app development easier. With Windows, instead of the need to create UWP desktop applications, Windows Forms and WPF can be changed to new user experiences by directly using WinUI 3 controls. Not only Microsoft Azure has more Linux than Windows machines running, we have the Linux kernel also in Windows – with WSL 2. The new Windows terminal can be full-screen with multiple tabs… Azure Static Web apps are integrated with GitHub to make use of GitHub actions to create a static Web site with Azure Functions in the backend!
Great news from Microsoft Build 2020!
What are your highlights?
If you’ve read this far, consider buying me a coffee which helps me staying up longer and writing more articles.
Enjoy learning and programming!
.NET and C#
The image was a view from Microsoft Build 2019