Build 2022 had a developer focus, with new tools to make it easier to write code in a world of hybrid work. Dev Box promises to make your development environments easier to manage.
Setting up a new development PC can take time. Weโve all experienced it: My latest device arrived in February and Iโm sure that everything I need isnโt there yet, even with a long list of apps and tools that Iโve used to guide installations. The list gets longer with each new project and each new technology, too.
Itโs a problem that eats into developer productivity, especially when starting a new project. What tools will you need to install, and how will they interact with your normal toolset? A machine tuned for .NET development is unlikely to need the same things as one thatโs building machine learning models in PyTorch. Then thereโs the underlying hardware. If Iโm building JavaScript plug-ins for Office, Iโm not going to need 64GB of RAM and a high-end GPU, a specification thatโs highly likely for a machine thatโs building and testing computer vision code.
Developers need to be fast and flexible, and that usually requires the latest hardware with all the bells and whistles. Every little bit of power makes it easier to deliver bug-free code that does exactly whatโs needed. But no matter how fast the PC, it takes time to install and configure a project toolchain, from IDE to project libraries and Git.
How can we ensure that developers are ready to start work as soon as theyโre assigned to a project? Microsoft and its GitHub subsidiary have been thinking about this problem for some time, and weโre now at a point where two key trends are meeting: the ability to containerize the tools and services we want and the capabilities of remote desktop installs.
Hosted on Azure, managed by Windows 365
Build 2022 saw Microsoft announce Microsoft Dev Box, a way to build development environments in Azure-hosted Windows virtual machines so that developers can quickly open a preconfigured system and get to work without having to change the underlying PC. Dev Box builds on tools Microsoft has developed to manage business desktops in the cloud, including Windows 365 and the various components of its Endpoint Manager system management tools.
Microsoftโs existing managed Windows 365 cloud PC service is its virtual desktop platform, offering hosted Windows 10 and Windows 11 installations that can be managed through the same Intune cloud device management platform as on-premises and mobile hardware, along with the rest of the Endpoint Manager suite. Putting Windows in the cloud is the first step to delivering tools such as Dev Box, as youโre now able to configure and provision virtual desktop images that can be spun up on demand.
With Windows 365 already supporting remote and hybrid work, it makes a lot of sense to deliver task-specific environments that can be used on any PC or tablet, with familiar productivity software and custom line-of-business tools, and then to extend it to support developers. New Windows features will allow devices to boot to a Windows 365 environment or quickly switch to it using the same tools you use for Windowsโ built-in virtual desktop tools. With fast broadband and modern remoting tools, latency is kept to a minimum, making a remote virtual desktop indistinguishable from a local one.
For now, however, youโre limited to using a separate Remote Desktop tool to access Windows 365 and Windows Dev Box environments. This is a new version of the familiar Remote Desktop bundled with Windows thatโs only able to connect to managed cloud environments. Itโs somewhat confusing: Itโs not in the Windows Store but has the same icon and name. If youโre using Remote Desktop to manage your development servers and work with Azure resources, youโll end up needing two different versions for now.
For users, a Dev Box will simply be a link on a portal. Click the link and itโll open in Remote Desktop (or prompt for a download). This spins up a virtual machine running a preconfigured image. Once launched, all the tools needed to start work will be there. Users will get more rights over their images than a typical user gets in Windows 365, allowing them to install tools as needed. Itโs important to remember that thereโs no relationship between the capabilities of the device connected to a Dev Box and the virtual environment; I could be using an old iPad to check some code from home on the weekend and Iโd have the same performance as my workstation in my office (which in these days of hybrid work could be anywhere).
Under the VM image will be a host with the appropriate resources for the project. It might be a VM with a vGPU, or it might be one with enough to run an editor and connect to a CI/CD (continuous integration and continuous delivery) system to run a build. As an architect or project lead, you get to define who gets what resources, allowing you to budget for the tools needed for a project. Admin tools show what resources are being used, so you can tune requirements up and down as necessary and help keep projects on budget. Dev Boxes can be automatically hibernated when users arenโt connected to keep compute costs to a minimum.
Dev Boxes for every task and toolchain
Administrators and architects can preload applications to images so that each Dev Box has a complete toolchain and is ready to go. Images can be stored until needed so itโs possible to build out a library of Dev Boxes that are suitable for a range of different tasks and even have test environments to try out new tools.
One of the more interesting aspects of Dev Box is the ability to assign more than one to a user. You might have one Dev Box configured with data science tools and services to build and train machine learning models. While it is training a model, you can open another thatโs configured to build and test an application using the modelโs APIs. Switching is handled through the same portal you use to connect to a Dev Box. Two identical Dev Boxes connected to the same repository can show the effects of new libraries or new components on your code without affecting your main branches.
Itโs important to note that Dev Box is not a version of GitHubโs Codespaces, though thereโs no reason why a Dev Box couldnโt be connected to a Codespaceโand many good reasons why it should! Codespace is a containerized environment for building and testing cloud-native applications, and although itโs connected to a cloud-hosted editing environment, itโs more like being able to code against your runtime platform from anywhere without using production resources.
Microsoft is taking some of the Codespaces concepts and using them as part of another new set of developer tools announced at Build. Azure Deployment Environments are a way of building templates for a deployment infrastructure, giving developers a self-service target for their code that can be managed and monitored by platform engineers. You can have multiple Deployment Environments for different stages of the application life cycle, for example, development and test with different security and network models so that only production environments have access to the internet or to corporate vLANs.
Like Dev Box, Deployment Environments can be scheduled. You can spin one up at 9 a.m. to test code as you write it and shut it down at 7 p.m. when everyone goes home. Scheduled availability can help improve work/life balance, letting developers pack up, knowing everything will be ready in the morning. And as these environments all run in the cloud, even Dev Box, all they need is a network connection to see their remote desktop, wherever they may be. Itโs summer, so code on the beach? With Dev Box and Azure Deployment Environments, thereโs no reason why not.


