# .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... <s>BUGS</s> features like :

[you can't use .net core 3.1 and .Net 6 on the same machine because why the fuck not ?](https://rider-support.jetbrains.com/hc/en-us/articles/4413459013010--NET-6-and-M1-problems-when-other-SDKs-are-present-in-the-system)  
and a tons of issues with az functions, azurite, az cli etc (but that's even on windows)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1669853273397/uQzP8ao5j.gif align="center")

### 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...  

%[https://github.com/microsoft/mssql-docker/issues/734] 

### 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.
