Mithun Shanbhag

(blog | rss | twitter | linkedin)


Quick links

my old blog

my playbook

my speaking engagements

awesome azure resources

awesome azure devops resources

My favorite announcements from MSBuild2020

Published on 20 May 2020 by Mithun Shanbhag

I had so much fun viewing the MSBuild 2020 Virtual Conference. Tons of amazing new products & features were announced over three days; here are a few that I’m personally excited about (ordered alphabetically):

Azure CosmosDB

Jupyter notebook support

Jupyter notebooks can now be enabled on CosmosDB for facilitating analysis & visualization of the stored data.

cosmosdb jupyter notebook support

Customer-managed encryption keys

CosmosDB now supports encrypting its data at rest with customer-managed keys.

customer managed keys

Autoscaled provisioned throughput

CosmosDB has introduced autoscaled provisioned throughput for workloads that have variable or unpredictable traffic. To enable AutoScale, you specify the max allowable throughput Tmax. Then, depending on the load, CosmosDB will then scale the throughput between 0.1 x Tmax and Tmax.

Serverless SKU

CosmosDB will also introduce a new Serverless SKU in the coming months. This will be ideal for apps dealing with intermittent traffic spikes/bursts.

Free tier

And in case you still haven’t heard, CosmosDB recently introduced a free tier!

Azure DevOps

Multi-stage YAML CD pipelines

In addition to CI, the multi-stage YAML pipelines now also support CD. You can now use deployment jobs to target your deployments at specific environments (dev, test, staging, production etc).

multi-stage yaml cd pipeline

By using environments it is also possible to define the checks & approvals that need to be fulfilled for the deployment to start.

Read the full details.

Azure Event Grid

Partner topics

If you’re using Auth0 as your identity provider, you can hook up its log stream to Azure event grid as a partner (3rd party) topic. More partners will be unveiled in the coming months.

event grid partner topic

App Service events

Also you can now subscribe to multiple App Service events via an event grid subscription. This is great for customized health checks.

app service events

Managed Identity support

Finally, Event Grid topics & domains now support system assigned managed identity.

Azure Monitor

The Azure Monitor team had way too many awesome announcements! Below are some of the ones that caught my eye.

App Insights now integrated with Log Workspaces

You can now direct your application insights logs to a Log Analytics Workspace. This helps unify all the APM and infra logs in one centralized location.

application insights log workspaces

Insights for multiple Azure resources

Insights for Storage and CosmosDB is now GA. Support for Key Vault and Azure cache for Redis is now in preview.

Customer-managed encryption keys

You can now encrypt your Log Analysis Workspace data with your own keys. Includes support for key revocation & rotation.

Change analysis support

This feature helps you diff configuration changes to Azure resources over a selected time range. Great for detecting drifts.

Azure Functions

Official PowerShell module

There’s now an official PowerShell module AZ.Functions to manage Azure Functions. You can download it from the PowerShell gallery or just run Install-Module -Name Az.Functions in a PS console.

Support for multiple services

Azure Private Link is now available for multiple Azure services like Event Hubs, Service Bus, Container Registry, Event Grid and Cognitive Search.

Azure Service Bus

Service Bus Explorer in portal

A Service Bus Explorer is now built into the Azure Portal itself. You can use it to send, receive and peek messages on your service bus. You no longer have to download and install the standalone tool.

service bus explorer

Large message support

Additionally, support for large messages (up to 100 MB) has been announced.


VS CodeSpaces

I’ve been using VS CodeSpaces for a while now as my dev machine in the cloud. You can access your VS CodeSpace environments via VSCode (remote extension), Visual Studio 2019 or via the Cloud-based IDE.

Using a devcontainer.json file it is possible to configure your CodeSpace (e.g. port forwarding). Using dotfiles, the CodeSpace can be personalized on a per-user basis. And if you really want to, you can even register your machine as a CodeSpace environment (for remote access).

Initially branded as VS Online, the product was then renamed to VS CodeSpaces. Currently it is in private preview.

Github CodeSpaces

Github CodeSpaces (which uses VS CodeSpaces underneath the covers) allows you to spin up a dev environment on the fly directly from a github project.

Read the full details here and here.

Windows PowerToys

New utilities added

In addition to the previously available FancyZones and Keyboard Shortcut Guide, Windows PowerToys now has a bunch of new utilities baked-in:

windows powertoys launcher

Windows Terminal

1.0 release

Windows Terminal steps out of preview mode and into it’s official (v1.0) release.

Read the full details.


New package manager for Windows

Windows has a new “apt-get” styled package manager: WinGet (currently in preview)


Read the full details.


Settings sync

VSCode Settings Sync will link your VSCode preferences/settings with your Microsoft or Github account. You can now sync your VSCode settings across multiple machines just by signing into VSCode. Works even on VS CodeSpaces’ browser IDE.

Currently this feature is in preview and available on VSCode Insider builds.

Read the full details.


GUI apps

In addition to command line apps, you can now look forward to running GUI apps on WSL2 in the coming months! Underneath the covers there is a built-in Wayland display server on Linux talking to a RDP client on Windows.

Read the full details.

I still haven’t caught up with all the updates from the C# and .Net teams (I should perhaps do another separate post for that when I’m done).

That’s all for today folks! Comments? Suggestions? Thoughts? Would love to hear from you, please leave a comment below or send me a tweet.