Who is this for?

This Learning Path is for .NET and platform engineers migrating a production .NET application to Arm-based infrastructure on Azure.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Build a pinned nopCommerce release and baseline on Arm with the same .NET toolchain
  • Produce an SBOM and resolve platform-specific dependency cascades
  • Containerize with Dockerfile and .NET SDK multi-arch publish workflows
  • Apply architecture-conditional runtime tuning with measured results
  • Use the Arm MCP Server to automate endpoint selection, test generation, and optimization planning

Prerequisites

Before starting, you will need the following:

  • Azure account with permissions to create virtual machines
  • An Azure Cobalt 100-based virtual machine
  • Azure CLI (az) installed locally
  • Docker and .NET 9 SDK familiarity
  • Basic Linux command-line knowledge

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll learn how to migrate a .NET nopCommerce application to an Arm-based virtual machine powered by Azure Cobalt 100, create a reproducible baseline, and apply measured runtime tuning. First, you’ll pin a specific nopCommerce release, verify a clean build, and capture an endpoint baseline on Arm to control for drift. By running dependency discovery and generating SBOM, you’ll surface direct, transitive, and native payloads early to reduce surprises during deployment. You’ll compare and choose a containerization path between a Dockerfile workflow, and a .NET SDK publish with multi-architecture delivery guardrails. Finally, you’ll apply architecture-conditional runtime settings and validate them against fixed workloads so you can keep or discard changes based on repeatable results.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How should I choose the Azure VM configuration for the baseline?
Provision an Azure Cobalt-based environment as described in the Azure Cobalt Learning Path and keep the toolchain and runtime configuration stable across runs. The flow was validated with Ubuntu 24.04 LTS in westus2 on an example size of Standard_D2ps_v6.
What should I record when pinning the nopCommerce source?
Check out the specified release tag and run git rev-parse --short=10 to capture the exact commit. Record the tag and short commit alongside the baseline results to avoid dependency drift.
How do I map direct and transitive dependencies before migration?
From the repository root, use rg -n "<PackageReference|<ProjectReference" src to identify direct references and the owning projects. Then generate an SBOM and review transitive packages to uncover native payloads that could affect Arm deployment.
Which containerization path should I start with?
Use the Dockerfile workflow as the default path for nopCommerce. Switch to .NET SDK publish when you want MSBuild-owned image metadata and have a repeatable plan for native packages, ensuring the SDK image matches Linux runtime dependencies and smoke-test results.
How do I know performance tuning changes took effect?
Stop the baseline process, set the runtime environment variables, and restart the application so the .NET runtime reads the new settings. Measure with fixed workloads and compare against the Arm endpoint baseline, keeping settings outside the code to switch profiles without rebuilding.
Next