Visual Studio for Mac is gone. Retired August 31, 2024. If you're a .NET developer on macOS, here's how to set up a productive development environment in 2025.
// Terminal: Install .NET SDK
// brew install dotnet-sdk
// Or download from https://dotnet.microsoft.com/download
dotnet new console -n HelloMac
cd HelloMac
dotnet run
Three lines. Your first .NET app on macOS. No IDE required.
What Happened to Visual Studio for Mac?
Microsoft discontinued Visual Studio for Mac on August 31, 2024. After years of playing catch-up with its Windows counterpart, Microsoft made the call to focus resources elsewhere.
The official recommendation? VS Code with the C# Dev Kit.
For existing VS for Mac users, Microsoft provided migration guides and extended support through the transition period. But now, macOS developers need alternative tooling.
What Are My IDE Options on macOS?
VS Code + C# Dev Kit (Free)
The official Microsoft recommendation. Lightweight, extensible, excellent Git integration.
JetBrains Rider (Free for non-commercial, paid for commercial)
Full-featured .NET IDE. Many developers consider it superior to Visual Studio on Windows. In 2024, JetBrains made Rider free for non-commercial use.
Neovim/Vim (Free)
For the hardcore. LSP support via OmniSharp provides intellisense.
I use Rider for serious projects and VS Code for quick edits.
How Do I Install .NET on macOS?
Two options:
Option 1: Homebrew (recommended)
brew install dotnet-sdk
Option 2: Official installer
Download from dotnet.microsoft.com
Verify installation:
dotnet --version
# Output: 9.0.100 (or later)
How Do I Set Up VS Code for .NET?
Install these extensions:
- C# Dev Kit — Official Microsoft extension
- C# — Language support (included with Dev Kit)
- .NET Install Tool — SDK management
# Create a new project
dotnet new webapi -n MyApi
cd MyApi
code .
VS Code detects the .NET project automatically. Press F5 to debug.
How Do I Set Up JetBrains Rider?
Download Rider from jetbrains.com/rider
Rider 2025.1 supports:
- .NET 9 and .NET 10 preview
- C# 13 and C# 14 preview
- Hot reload
- Full debugging
- Built-in terminal
Open any .sln or .csproj file. Rider handles the rest.
Can I Build for Windows from macOS?
Yes. .NET's cross-compilation works:
# Build for Windows
dotnet publish -r win-x64 --self-contained
# Build for Linux
dotnet publish -r linux-x64 --self-contained
# Build for macOS (current platform)
dotnet publish -r osx-x64 --self-contained
The output runs natively on each platform without .NET installed (self-contained deployment).
What About ASP.NET Core Development?
Full support on macOS:
using Microsoft.AspNetCore.Builder;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello from macOS!");
app.Run();
Hot reload works. Debugging works. HTTPS development certificates work:
dotnet dev-certs https --trust
Can I Use Docker on macOS for .NET?
Absolutely. Docker Desktop for Mac runs Linux containers:
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/aspnet:9.0
WORKDIR /app
COPY --from=build /app/out .
ENTRYPOINT ["dotnet", "MyApp.dll"]
Build and run:
docker build -t myapp .
docker run -p 8080:8080 myapp
What About GUI Applications?
.NET MAUI — Cross-platform apps (iOS, Android, macOS, Windows). Develop on macOS, deploy everywhere.
Avalonia — Open-source cross-platform UI. True cross-platform without platform-specific renderers.
# Create MAUI app
dotnet new maui -n MyMauiApp
# Create Avalonia app
dotnet new avalonia.app -n MyAvaloniaApp
Both work on macOS with full debugging support in Rider.
How Does Performance Compare to Windows?
.NET performance on macOS is excellent. The runtime is optimized for Apple Silicon (M1/M2/M3/M4):
# Check architecture
dotnet --info | grep RID
# Output: osx-arm64 (Apple Silicon) or osx-x64 (Intel)
Apple Silicon Macs run .NET natively — no Rosetta translation needed.
What Are Common macOS-Specific Issues?
File path separators
Use Path.Combine() instead of hardcoded slashes:
// Bad
var path = "folder\\file.txt";
// Good
var path = Path.Combine("folder", "file.txt");
Line endings
Configure Git:
git config --global core.autocrlf input
Case sensitivity
macOS filesystems can be case-sensitive. Be consistent with naming.
Quick Setup Checklist
- Install .NET SDK:
brew install dotnet-sdk - Install IDE: Rider or VS Code + C# Dev Kit
- Trust dev certs:
dotnet dev-certs https --trust - Install Docker Desktop (optional)
- Create first project:
dotnet new console
VS Code vs Rider: Which Should I Choose?
| Feature | VS Code | Rider |
|---|---|---|
| Price | Free | Free (non-commercial) |
| Startup time | Fast | Slower |
| Refactoring | Good | Excellent |
| Debugging | Good | Excellent |
| Memory usage | Low | Higher |
| Learning curve | Gentle | Steeper |
My recommendation: Start with VS Code. Move to Rider when you hit limitations.
What About iOS/macOS App Development?
For native iOS apps, you still need Xcode. But .NET MAUI lets you write shared C# code:
// Shared business logic
public class Calculator
{
public int Add(int a, int b) => a + b;
}
The same code runs on iOS, Android, macOS, and Windows.
macOS is a first-class .NET development platform. The tooling has matured, performance is excellent on Apple Silicon, and you can target any platform from your Mac.
Written by Jacob Mellor, CTO at Iron Software. Jacob created IronPDF and leads a team of 50+ engineers building .NET document processing libraries.
Top comments (0)