Four Years on Apple Silicon: A .NET Developer’s Field Report

1. Why I Switched and Stayed

I’ve been a full-time .NET developer for more than a decade, but I’ve spent the last five years coding exclusively on macOS. When Apple unveiled the first M-series chips in late 2020 I ordered a 16 GB MacBook Air M1 the moment sales opened. Skeptical? Of course ARM64, Rosetta 2, no fans, brand-new silicon.

Amazed? Absolutely, within minutes I knew the gamble had paid off.

  • Fanless, silent, always cool chassis
  • Battery that lasts a conference-length flight (and, crucially, delivers the same performance on battery as on mains power)
  • Instant-wake convenience that makes Linux and Windows laptops feel old-fashioned

The only early hiccup was iMessage activation: six frustrating months of Apple Support sessions before a macOS update resolved it. Everything else: hardware, Rosetta, peripherals—just worked.

My M1 MBA battery health after 4 years

2. Performance That Rivals (and Often Beats) a Desktop

My home PC runs a 12-core/24-thread Ryzen 3900X. Yet opening a large .NET Core 3.1 solution in JetBrains Rider on the M1 felt just as snappy, even though every binary was still x64 translated by Rosetta 2. Compilation times were within a few seconds of the desktop box; unit-test runs felt identical.

Once .NET 6 shipped with native Apple Silicon builds—and later .NET 9 became my daily driver—the gap closed completely.

◆ Pro tip: run dotnet --info and enjoy the Architecture: arm64 line.

dotnet --info arm64

3. The Toolchain That Makes It Possible

TaskmacOS ToolNotes
IDE & debuggerJetBrains Rider100 % Apple-Silicon native since 2021. Newer builds include Step-Filtering and full dotTrace / dotMemory integration.
Lightweight editing & terminalsVS Code + C# Dev KitGreat for quick edits and Markdown.
Database workAzure Data StudioGood enough for 99 % of tasks; still lacks a visual Query Store browser, so I keep a tiny Windows Server VM with SSMS for edge cases.
ContainerisationDocker Desktop (Apple Silicon)Build multi-arch images locally with --platform=linux/amd64,linux/arm64.
Mobile / MAUIXcode 16 + .NET 9 workloadsNative iOS & macOS builds, no Rosetta required.

4. Pain Points That Used to Hurt (But Don’t Any More)

  • Lack of profilers – JetBrains shipped arm64 builds of dotTrace/dotMemory in 2023.
  • Stepping time while debugging – Rider 2023.3 introduced “Step-Time” so you can inspect what slowed a step.
  • Third-party NuGet packages – By 2025 virtually every mainstream package includes “-osx-arm64” assets; the few hold-outs run fine under Rosetta anyway.
JetBrains Rider - Stepping time

5. Tips for Prospective Switchers

  1. Install multi-arch .NET runtimes (brew install --cask dotnet-sdk) so you can build for x64 and arm64 in CI.
  2. Keep a light Windows VM (UTM, Parallels, or a spare server) purely for SSMS or Power BI Desktop.
  3. Use Homebrew for almost everything (brew bundle your dev setup).
  4. Treat battery health as a metric—compile on battery all day, then screenshot the Power pane in System Information to show cycle count after years of heavy use.

6. Conclusion

Four years in, I’m at 99.9 % feature parity with my old Windows workstation—yet my laptop is silent, never throttles, and lasts a trans-Atlantic flight without a charger. If your stack is 100 % Microsoft and you assumed you had to run Windows, think again: Apple Silicon plus JetBrains Rider (or VS Code) is not only viable, it’s a joy. The only surprise left is why I didn’t switch sooner.