.Net Development on Apple M1 1 year feedback

Photo by AltumCode on Unsplash

.Net Development on Apple M1 1 year feedback

Disclaimer

I am not affiliated with Apple in any way. I am not writing this to sell you stuff, this just my personal feedback. Also NOT an apple fanboy.

Background

As you may not know, I am a .Net developer so obviously, windows OSs are my weapons of choice.
About a year ago, I had a Surface book pro, and I had a great overall experience with it but after 3 years of intense usage, it did not deliver the performance i needed, and its few minor flaws had begun to grind my gears.
So i was looking for a replacement with those criterias in mind:

  • same form factor

  • faster

  • cheaper

  • same or better battery life

  • not a portable heater

And guess what, there were not many matches on windows os at that time :

  • The Dell XPS ? Too expensive, hotter than a toaster and don't get me started on Dell's customer service and components failures. Nope, a big pass for me.

  • Asus Rog series ? Too heavy and low battery life, no thanks.

I could give you 10 more laptop i checked that but this is not the subject. The macbook pro M1 fitted all my requirements. A year ago M1 silicon ships were still pretty new, and everyone was amazed about them, the benchmarks were quite impressive but i was skeptical:

  • Could I work daily with an ARM processor ?

  • Hell, can I even build C# on a M1 ?

I must also say that I had never worked with mac os, so I would have to learn all the shortcuts and not be confused with windows, there were many dark areas, and a lot adjustment to become as efficient as I am on windows. After weighing pro & cons many times, I made up my mind and decided to give it a try.

Setup & transition (the first month)

First thing i did when I received it was to setup my dev environment
install visual studio, vs code, learn my way around the shell etc...
and then the firsts problems appears.

Visual Studio on mac

Ouches, that was a bit of a disappointment, it was nothing close to the windows version.
It lacked a lot features and almost zero addons. But that's details I could code/compile/debug... only on .Net core 3.1 so wait... what do I do for legacy projects in .Net 4.7.2 ? Mono is not a options (for me). Thankfully I didn't go full retard and throw all my pcs aways...

So not a big fan of vs for mac, so I tried Rider and weirdly I found Rider better on mac than on windows, but this won't make me change to go full rider and win and mac.

Visual Studio Code on mac

Don't you love vs code ? I do It's a modern notepad++ and praise be Electron.js !
It feel,smell and work the same as the win version. Does Vs code on mac saved the day ? Kind of off but...

Then .Net 6 came out

Oh boy what a time to be alive as .Net developer. The mighty .Net 6 is finally here
with full support of arm silicon, speed-of-light performances and gold-shitting new features and... BUGS features like :

you can't use .net core 3.1 and .Net 6 on the same machine because why the fuck not ?
and a tons of issues with az functions, azurite, az cli etc (but that's even on windows)

The elephant in the room

I haven't talk about SGBD yet, wanna install a local mssql server instance on mac ? The only way is... with my beloved Docker. The thing is, databases and docker don't get along very well, why ?

A docker container is stateless so your data will be gone the next time you restart your container.
The easiest way to solve this is to create a volume where you will store the database file, and the container will only run the database engine...

Moving forward

Moving forward to now, a lot of those issues have been resolved.
Many improvements were made.
.Net 6 works like a charm and I can even build and debug azure durable function in vs code with all my linters working fine.

After a year of daily use, I am still amazed by this machine :

  • I have never run out of battery

  • it is never hot, slightly warm at heavy load

  • it's a beast of a CPU

  • not a single freeze, drops of performance after a year.

  • even the GPU is exploitable

  • the keyboard is very good (but the surface book had a better feel)

  • I haven’t talk about frontend development but it feel like mac os is
    made for it

  • zsh

Things I miss / don't like :

  • The proprietary way of apple

  • the black box feels for a user like me who like to see under the hood

  • the upgrades that reset advanced configurations and security settings

  • windows management

  • the touchbar is not very useful

  • the lack of a touch screen (very useful for administrative task, visual management, diagram,etc...)

  • wsl

Conclusion

I guess that now you can understand that this was not a smooth sailing start.
I had many issues, it is always the downside for early adopters. But it is ok because in a way I had to learn a lot of new stuff, and I like to get my hands dirty and see how things work.
To conclude I love working with the mac m1 but it won't be my main computer ever.