Ask HN: Is doing .NET development on a Mac viable today?
I know C#/.NET Core is open source and cross platform, but how is the day to day experience developing on a Mac with Rider (or even VS or VS Code)? Any professional .NET devs doing it? Friction points? Any upsides to developing .NET on a Mac?
28 comments
[ 2.8 ms ] story [ 61.1 ms ] threadUsing the terminal with dontnet Cli and vim is fantastic.
The Maui ecosystem is new, so there is that and my iMac is Intel.
I've used both VSCode and Rider and I think both provide an enjoyable development experience.
Aside from VS only running on Windows, it doesn't feel like a second class experience at all to me.
What do you mean, there has always been Visual Studio for Mac since the arrival of .Net Core.
Debugging ASP.NET integration tests has worked far better on Rider than it does on my VS2022 instance on Windows - where I have to manually trigger the debugger within the test itself. On Rider it worked as expected from the get-go.
You may run into some issues if your project depends on private NuGet feeds, primarily hosted by Azure DevOps. Rider fails to authenticate with ADO no matter what I do, so I had to fall back on manually installing those packages with the dotnet utility.
[1]: https://github.com/GitCredentialManager/git-credential-manag...
On large monolithic .NET codebases originally built from the 2000s era, absolutely not. You need to either rewrite or stick to Windows. Porting doesn't seem to be worth the effort.
No friction points that I can think of off the top of my head. Biggest upside is that it just works seamlessly. When switching between code bases, pulling PR’s for review, etc. it’s quite nice not worry about things like whether you have access to the iOS emulator.
Team is primarily M1 MBPs.
Backend APIs are .NET 6 Web API in C#. Deploy to AWS Graviton2 instances. Build in GitHub Actions and AWS CodePipeline (yuck!).
Frontend is a mix of React (Next.js, externally facing) and Vue (internal tooling)
> No friction points that I can think of...
Well...
I use both VS Code and Rider. I'd say that OmniSharp is a friction point because it's still just a bit janky in some edge cases.
As long as a team is willing to pay for Rider (100% worth it), dev experience is great. If not, just be prepared to get used to the quirks of C# on VS Code with OmniSharp and get comfortable with the CLI (which you should anyways). The modern CLI is so good compared to old msbuild.
I have not personally used VS Mac, but from what I've seen of it (other devs that used it), it looks like a downgrade. But devs using VS Mac all switched to Rider a few months back and never looked back.
[1]: https://github.com/sandreas/tone
[2]: https://github.com/sandreas/tonehub
Probably want to invest in Rider, I seldom here good things about VSCode and VS for Mac(it’s a unique program, not full visual studio like the name suggests).
Have had some hiccups:
For desktop development I have a little app to run a label printer, Avalonia itself ported over fairly seamlessly however I discovered printing (system.drawing in general) is windows only.
Not .Net specific but I’ve had problems with emulation.
MSSQL docker isn’t supported, you can use edge which has some limitations which may or may not be a problem (or not a problem till it is).
Azurite docker works but needs Rosetta.
CosmosDB emulator flat out doesn’t work.
There is a VS Code extension which works quite well.
> CosmosDB
Microsoft has been dragging their feet on this one; not sure what's going on. Really wish they would make this happen.
Emulation across the board just doesn’t seem to be a priority for Azure, seen the attitude of “just run a cloud development environment” a few times.
Rider is really nice and I now find going back to VS harder as everyday passes.
There were some hurdles to jump over initially, but our internal tooling is evolving and it's a very viable option for us now.
https://github.com/dotnet/runtime/issues/1979