As Microsoft finally makes its Arm Windows version available with Arm options for its Surface Pro 9 tablet, one question remains: where will all the Arm apps come from? Microsoft has produced a lightweight, relatively inexpensive yet powerful and flexible hardware response in the Windows Dev Kit 2023, formerly known as Project Volterra.
Jump to:
Windows 2023 SDK handles Arm workloads other hardware can’t
The Windows 2023 Development Kit is a relatively inexpensive Arm-based development PC based on Qualcomm’s 8cx Gen 3 Arm chipset. You can buy it now from the Microsoft Store for $599, about a third of the cost of the new Arm-based Surface Pro 9 5G.
Housed in a small black box made in part from reclaimed ocean plastics, the Windows SDK contains:
- 32GB of memory and 512GB of fast NVMe storage, a specification similar to most developer laptops
- Two USB-C ports and a mini DisplayPort connection for video output
- Three USB-A ports that connect to most common devices
- Gigabit Ethernet and Wi-Fi 6 port
All you need to add is a screen, keyboard and mouse.
Low price makes it useful for Arm and beyond
Its low cost is one of the most attractive features of the Windows 2023 Development Kit. You can buy three or four of them for the price of a high-end developer PC, or stack them for a developer as a Complete build, test, and deploy environment to weaponize Windows applications or provide tools to more developers.
By working with continuous integration and continuous deployment tools like Azure Pipelines, you are not limited to Arm development. With these tools, you can use cloud authoring tools to work with x86 and x64 and even use a shared Mac to author iOS and macOS code.
With the ability to drive multiple displays, there’s the prospect of an interesting crossover with Microsoft’s cloud-hosted Dev Box, letting you get extra power when you need it. Microsoft’s Remote Desktop feature is also supported, allowing you to boot a Windows Dev Kit device in headless mode and access it from your regular PC or laptop, connecting when you need to create or test Windows Arm applications.
SEE: Recruitment Kit: Back-End Developer (TechRepublic Premium)
Out of the box, you get a copy of Windows 11 Pro and Office 365, ready to use with existing Microsoft 365 accounts. A link on basic setup instructions takes you to more detailed information on Microsoft’s website, which also provides links to Arm versions of key Microsoft developer tools and links to developer content and tools from Qualcomm for use with its neural processing unit artificial intelligence accelerator.
Why can’t I use my Surface Pro 9 for Arm development?
While the Windows on Arm version of Windows 11 can emulate both 32-bit and 64-bit Intel processors, any emulation incurs significant overhead. If you buy the 8GB version of the Surface Pro 9 5G, you risk potentially sluggish and stuttering apps, as Windows’ just-in-time emulation technology converts Intel code to Arm code, caching it for next time. that he is called.
Microsoft has worked to provide tools, so developers can build native versions of their code for Arm. Building on work done for Windows RT and optimized for the latest Arm processors, you can compile directly to Arm from familiar languages like C# and C++ using familiar tools like Visual Studio and Visual Studio Code .
There’s no need to learn anything new, as Microsoft has provided Arm versions of all Windows application programming interfaces and software development kits. Additionally, there are many popular libraries on NuGet that are already transitioning to a new processor architecture and an enthusiastic Arm Windows community driving updates for those who haven’t made the necessary changes.
Compiling code for Arm should now be as easy as targeting Arm64 in Microsoft’s build tools. While you can use Azure’s Ampere Altera instances to host your compilers and test suites through Azure’s Windows 11 Arm VMs, most developers prefer something a little closer to home. Additionally, you can use a Surface Pro X or Pro 9 as your Arm dev PC, but always-connected thin and light mobile devices are better suited for editing code, not running a chain of scripts. comprehensive development tools.
Build Arm code in Visual Studio
Perhaps the best way to judge Microsoft’s success is by building and running code. As the current .NET 7 releases are near final, I created and compiled a simple console application using the latest Visual Studio native Arm preview.
There was no difference between working on an Intel Xeon-E x64 workstation and the Arm-based development kit. Creating a C# project configured the same files, and after compiling the code I got the same result on both machines. I got the same result working closer to the metal with C++, with both devices delivering the same results and running native code.
This is what we should expect, the Windows Arm APIs and SDKs should be the same as the Intel hardware. Microsoft needs to get it right if it wants to establish Arm as a valid part of the Windows ecosystem, making it as easy for developers to ship to one platform as the other. He is already building Arm versions of his own code, with considerable success. Only a few processes on the Windows Dev Kit 2023 installation run as emulated x64 code, and one of them is the Office 365 one-click installer.
SEE: How to use the new Microsoft 365 deployment tools (TechRepublic)
It would have been nice to experiment with the AI hardware accelerator, but you need to have access to Qualcomm’s developer program. A week after applying, I still don’t have access to the necessary tools and SDKs. However, since it’s based on the ONNX portable model standard, you should be able to use familiar tools like Azure’s machine learning studio to design and train models ready to be exported as ONNX.
These can then be optimized using tools from Qualcomm and added to your applications using Microsoft’s existing ONNX runtime libraries. Hopefully the conversion process can be automated in future releases. So you only have to create an ONNX model that can run on all CPUs, GPUs and NPUs, rather than having to distribute separate ones.
Arm is more than Microsoft
Microsoft isn’t the only company to offer an Arm toolchain for Windows. JetBrains recently released a preview of an Arm64 version of its popular Rider .NET development environment, available as part of its early access program.
If you don’t need the full Visual Studio environment and want something more like an integrated development environment, Rider is a useful alternative for C# development. Although it doesn’t fully support .NET 7 yet, it works well enough for most purposes. I was able to use it to edit, compile and test the C# project I built in Visual Studio.
There have been a lot of changes in how Microsoft supports developers over the past few years. In the early days of .NET, it was essentially a business-focused approach, with regular releases of code and documentation on quarterly MSDN CD-ROMs. This all changed with the shift to open platforms, open design, and open source development. The Windows development philosophy has become one of going where the developers are.
Using the SDK for Linux and Android
As a result of these changes to how developers work, the Windows 2023 SDK cannot be just a pure Windows device. Azure runs both Windows and Linux, and if you plan to build modern cloud-native applications, your toolchain should include Linux support.
Although the drivers needed to run Linux natively on Windows SDK hardware have not been released, you can still take advantage of Windows support for its hosted Linux kernel through WSL 2. The WSL version Ubuntu will install the Arm version, so you have end-to-end Arm support on both Windows and Linux.
SEE: Linux 101: What tech pros need to know (TechRepublic Premium)
There’s also more to the platform than Linux and Windows. With the recent release of Windows Subsystem for Android, you now have a local Android environment with full developer access. It may not have the full Google Play APIs, but you can use it to test code written in Visual Studio using its Xamarin or MAUI mobile development tools.
Unfortunately, the Windows version of Google’s Android Studio remains pure x64 for now, so it only works in emulation. But, using it with WSA on Microsoft’s Arm hardware can help with testing and debugging code, because WSA allows the host machine to use Android’s ADB connection for debugging and sideloading code.
Using the SDK outside of the Microsoft ecosystem
It will be interesting to watch other vendors’ reactions to the SDK as a gateway to Windows on Arm. Clearly JetBrains’ release of an Arm version of Rider is a pointer to work that will hopefully end with Arm versions of tools like IntelliJ.
Microsoft’s tools aren’t the only platform for building Windows apps, so it’s worth keeping an eye out for tech like Google’s Flutter, which has an existing GitHub pull request for Arm developer support. from Linaro, although the code is not yet in the main branch. The underlying Dart language already supports Windows on Arm in its beta, giving you another option for cross-platform app development.
With platforms like Flutter already using Visual Studio Code, it should be relatively easy to integrate them into the Windows SDK, as the extensions are built using JavaScript and are therefore platform independent. The same goes for the other pieces of the modern development stack, which makes the Windows 2023 SDK suitable for much more than Windows development.
The Windows SDK is central to Microsoft’s plan to deliver cross-platform Windows. The operating system is there; now it’s time for apps to follow. By aggressively pricing developer-grade hardware, Microsoft aims to quickly eliminate the argument that porting and testing code is too expensive. It’s an answer we can all take advantage of, putting Arm and Windows on our desktops.
As Microsoft finally makes its Arm Windows version available with Arm options for its Surface Pro 9 tablet, one question remains: where will all the Arm apps come from? Microsoft has produced a lightweight, relatively inexpensive yet powerful and flexible hardware response in the Windows Dev Kit 2023, formerly known as Project Volterra.
Jump to:
Windows 2023 SDK handles Arm workloads other hardware can’t
The Windows 2023 Development Kit is a relatively inexpensive Arm-based development PC based on Qualcomm’s 8cx Gen 3 Arm chipset. You can buy it now from the Microsoft Store for $599, about a third of the cost of the new Arm-based Surface Pro 9 5G.
Housed in a small black box made in part from reclaimed ocean plastics, the Windows SDK contains:
- 32GB of memory and 512GB of fast NVMe storage, a specification similar to most developer laptops
- Two USB-C ports and a mini DisplayPort connection for video output
- Three USB-A ports that connect to most common devices
- Gigabit Ethernet and Wi-Fi 6 port
All you need to add is a screen, keyboard and mouse.
Low price makes it useful for Arm and beyond
Its low cost is one of the most attractive features of the Windows 2023 Development Kit. You can buy three or four of them for the price of a high-end developer PC, or stack them for a developer as a Complete build, test, and deploy environment to weaponize Windows applications or provide tools to more developers.
By working with continuous integration and continuous deployment tools like Azure Pipelines, you are not limited to Arm development. With these tools, you can use cloud authoring tools to work with x86 and x64 and even use a shared Mac to author iOS and macOS code.
With the ability to drive multiple displays, there’s the prospect of an interesting crossover with Microsoft’s cloud-hosted Dev Box, letting you get extra power when you need it. Microsoft’s Remote Desktop feature is also supported, allowing you to boot a Windows Dev Kit device in headless mode and access it from your regular PC or laptop, connecting when you need to create or test Windows Arm applications.
SEE: Recruitment Kit: Back-End Developer (TechRepublic Premium)
Out of the box, you get a copy of Windows 11 Pro and Office 365, ready to use with existing Microsoft 365 accounts. A link on basic setup instructions takes you to more detailed information on Microsoft’s website, which also provides links to Arm versions of key Microsoft developer tools and links to developer content and tools from Qualcomm for use with its neural processing unit artificial intelligence accelerator.
Why can’t I use my Surface Pro 9 for Arm development?
While the Windows on Arm version of Windows 11 can emulate both 32-bit and 64-bit Intel processors, any emulation incurs significant overhead. If you buy the 8GB version of the Surface Pro 9 5G, you risk potentially sluggish and stuttering apps, as Windows’ just-in-time emulation technology converts Intel code to Arm code, caching it for next time. that he is called.
Microsoft has worked to provide tools, so developers can build native versions of their code for Arm. Building on work done for Windows RT and optimized for the latest Arm processors, you can compile directly to Arm from familiar languages like C# and C++ using familiar tools like Visual Studio and Visual Studio Code .
There’s no need to learn anything new, as Microsoft has provided Arm versions of all Windows application programming interfaces and software development kits. Additionally, there are many popular libraries on NuGet that are already transitioning to a new processor architecture and an enthusiastic Arm Windows community driving updates for those who haven’t made the necessary changes.
Compiling code for Arm should now be as easy as targeting Arm64 in Microsoft’s build tools. While you can use Azure’s Ampere Altera instances to host your compilers and test suites through Azure’s Windows 11 Arm VMs, most developers prefer something a little closer to home. Additionally, you can use a Surface Pro X or Pro 9 as your Arm dev PC, but always-connected thin and light mobile devices are better suited for editing code, not running a chain of scripts. comprehensive development tools.
Build Arm code in Visual Studio
Perhaps the best way to judge Microsoft’s success is by building and running code. As the current .NET 7 releases are near final, I created and compiled a simple console application using the latest Visual Studio native Arm preview.
There was no difference between working on an Intel Xeon-E x64 workstation and the Arm-based development kit. Creating a C# project configured the same files, and after compiling the code I got the same result on both machines. I got the same result working closer to the metal with C++, with both devices delivering the same results and running native code.
This is what we should expect, the Windows Arm APIs and SDKs should be the same as the Intel hardware. Microsoft needs to get it right if it wants to establish Arm as a valid part of the Windows ecosystem, making it as easy for developers to ship to one platform as the other. He is already building Arm versions of his own code, with considerable success. Only a few processes on the Windows Dev Kit 2023 installation run as emulated x64 code, and one of them is the Office 365 one-click installer.
SEE: How to use the new Microsoft 365 deployment tools (TechRepublic)
It would have been nice to experiment with the AI hardware accelerator, but you need to have access to Qualcomm’s developer program. A week after applying, I still don’t have access to the necessary tools and SDKs. However, since it’s based on the ONNX portable model standard, you should be able to use familiar tools like Azure’s machine learning studio to design and train models ready to be exported as ONNX.
These can then be optimized using tools from Qualcomm and added to your applications using Microsoft’s existing ONNX runtime libraries. Hopefully the conversion process can be automated in future releases. So you only have to create an ONNX model that can run on all CPUs, GPUs and NPUs, rather than having to distribute separate ones.
Arm is more than Microsoft
Microsoft isn’t the only company to offer an Arm toolchain for Windows. JetBrains recently released a preview of an Arm64 version of its popular Rider .NET development environment, available as part of its early access program.
If you don’t need the full Visual Studio environment and want something more like an integrated development environment, Rider is a useful alternative for C# development. Although it doesn’t fully support .NET 7 yet, it works well enough for most purposes. I was able to use it to edit, compile and test the C# project I built in Visual Studio.
There have been a lot of changes in how Microsoft supports developers over the past few years. In the early days of .NET, it was essentially a business-focused approach, with regular releases of code and documentation on quarterly MSDN CD-ROMs. This all changed with the shift to open platforms, open design, and open source development. The Windows development philosophy has become one of going where the developers are.
Using the SDK for Linux and Android
As a result of these changes to how developers work, the Windows 2023 SDK cannot be just a pure Windows device. Azure runs both Windows and Linux, and if you plan to build modern cloud-native applications, your toolchain should include Linux support.
Although the drivers needed to run Linux natively on Windows SDK hardware have not been released, you can still take advantage of Windows support for its hosted Linux kernel through WSL 2. The WSL version Ubuntu will install the Arm version, so you have end-to-end Arm support on both Windows and Linux.
SEE: Linux 101: What tech pros need to know (TechRepublic Premium)
There’s also more to the platform than Linux and Windows. With the recent release of Windows Subsystem for Android, you now have a local Android environment with full developer access. It may not have the full Google Play APIs, but you can use it to test code written in Visual Studio using its Xamarin or MAUI mobile development tools.
Unfortunately, the Windows version of Google’s Android Studio remains pure x64 for now, so it only works in emulation. But, using it with WSA on Microsoft’s Arm hardware can help with testing and debugging code, because WSA allows the host machine to use Android’s ADB connection for debugging and sideloading code.
Using the SDK outside of the Microsoft ecosystem
It will be interesting to watch other vendors’ reactions to the SDK as a gateway to Windows on Arm. Clearly JetBrains’ release of an Arm version of Rider is a pointer to work that will hopefully end with Arm versions of tools like IntelliJ.
Microsoft’s tools aren’t the only platform for building Windows apps, so it’s worth keeping an eye out for tech like Google’s Flutter, which has an existing GitHub pull request for Arm developer support. from Linaro, although the code is not yet in the main branch. The underlying Dart language already supports Windows on Arm in its beta, giving you another option for cross-platform app development.
With platforms like Flutter already using Visual Studio Code, it should be relatively easy to integrate them into the Windows SDK, as the extensions are built using JavaScript and are therefore platform independent. The same goes for the other pieces of the modern development stack, which makes the Windows 2023 SDK suitable for much more than Windows development.
The Windows SDK is central to Microsoft’s plan to deliver cross-platform Windows. The operating system is there; now it’s time for apps to follow. By aggressively pricing developer-grade hardware, Microsoft aims to quickly eliminate the argument that porting and testing code is too expensive. It’s an answer we can all take advantage of, putting Arm and Windows on our desktops.