Visual Studio For Mac Vs Windows

As a .NET developer, I’ve spent most of my time coding on Windows machines. It’s only logical: Visual Studio is the richest development experience for building C# and VB.NET applications, and it only runs on Windows…right?

When I joined Stormpath to work on our open-source .NET authentication library, I was handed a MacBook Pro and given an interesting challenge: can a Mac be an awesome .NET development platform?

Visual Studio Code is an integrated development environment (IDE) that runs on Mac — as well as Linux and Windows (for some reason). But Visual Studio it is not. But Visual Studio it is not. I gave it a good three hours of testing: the install was easy, until I needed to update Mono. Julia Liuson is Corporate Vice President of Developer Tools where she oversees business and software development of Visual Studio, Visual Studio Code and.NET – including CLR, Windows tools, all programming languages, user experience, and cloud development tools. Visual Studio for Mac is a new member of the Visual Studio family, enabling developers on macOS to build apps for mobile, web, and cloud with Xamarin and.NET Core, as well as games with Unity.

To my surprise, the answer is yes! I’ll share how I turned a MacBook Pro into the ultimate Visual Studio development machine.

Microsoft is going to pretend to release Visual Studio for Mac. Visual Studio for Mac isn't, in fact, Visual Studio at all. And the real Windows Visual Studio is the more capable product. Visual Studio for Mac enables you to write code accurately and efficiently without losing the current file context. You can easily zoom into details such as call structure, related functions, check-ins, and test status.

How to Run Visual Studio on a Mac

Visual Studio doesn’t run natively on OS X, so my first step was to get Windows running on my MacBook Pro. (If you want an editor that does run natively, Xamarin Studio or Visual Studio Code might fit the bill).

There are multiple options for running Windows on a Mac. Every Mac comes with Apple’s Boot Camp software, which helps you install Windows into a separate partition. To switch between OSes, you need to restart.

Parallels is a different animal: it runs Windows (or another guest OS) inside a virtual machine. This is convenient because you don’t have to restart your computer to switch over to Windows. Instead, Windows runs in an OS X application window.

I found that a combination of both worked best for me. I installed Windows into a Boot Camp partition first, and then turned that partition into an active Parallels virtual machine. This way, I have the option of using Windows in the virtual machine, or restarting to run Windows natively at full speed.

I was initially skeptical of the performance of a heavy application like Visual Studio running in a virtual machine. The option to restart to Windows via Boot Camp gave me a fallback in case Visual Studio was sluggish.

There are some minor disadvantages to this method: you can’t pause the virtual machine or save it to a snapshot. A non-Boot Camp virtual machine doesn’t have these limitations. This guide will work regardless of what type of virtual machine you create.

Visual Studio For Mac Create Windows App

After three months of serious use, and some tweaks, I’ve been very impressed with Parallels’ performance. I haven’t needed to boot directly to Windows at all. (For comparison, my host machine is a 15” mid-2015 MacBook Pro with 16GB of RAM and a 1TB flash drive.)

In the remainder of this guide, I’ll detail the steps I took to optimize both Parallels and Visual Studio to run at peak performance.

Installing Windows With Boot Camp and Parallels

This part’s easy. I followed Apple’s Boot Camp guide to install Windows in a separate partition.

Then, I installed Parallels and followed the Parallels Boot Camp guide to create a new virtual machine from the existing Boot Camp partition.

Tweaking Parallels for Performance and Usability

The Parallels team publishes guidelines on how to maximize the performance of your virtual machine. Here’s what I adopted:

Virtual machine settings:

  • 2 virtual CPUs
  • 4096MB system memory
  • 256MB graphics memory
Visual studio community 2017 for mac

Parallels options:

  • Optimization: Faster virtual machine, Adaptive hypervisor, Tune Windows for speed all turned on.
  • Sharing: Shared cloud, SmartMount, and Access Windows folders from Mac turned off, as I didn’t need these for my workflow.

I experimented with both of Parallels’ presentation modes, Coherence and Full Screen. While it was cool to see my Windows apps side-by-side with OS X in Coherence mode, I found that the UI responsiveness (especially opening and closing windows and dialogs) felt sluggish.

Because of this, I use Full Screen exclusively now. I have Windows full-screen on my external Thunderbolt display, and OS X on my laptop. If I need to use OS X on my large monitor, I can swipe the Magic Mouse to switch desktops.

Adjusting OS X and Windows Features

I fixed a few annoyances and performance drains right off the bat:

  • Function keys. If you’re using the Mac keyboard, you’ll want to change the function key behavior so the F1-F12 keys work correctly in Visual Studio. From System Preferences – Keyboard, make sure Use all F1, F2, etc. keys as standard function keys is checked. With this turned on, hold Fn to use the Mac functions (brightness, volume, etc.) on F1-F12. With an external non-Mac keyboard, this isn’t an issue.
  • Start menu. I’m using Windows 8, and the removal of the Start menu annoyed me. I clung to my old ways and installed Start8 to restore it.

  • Disable Windows visual effects. I turned off most of the Windows desktop manager visual effects by going to Control Panel – System and Security – Advanced system settings – Advanced – Performance – Settings – Visual Effects and choosing Adjust for best performance. However, I left Smooth edges of screen fonts checked because it improves text rendering on my monitor.

Installing Visual Studio and Helpful Extensions

Installing Visual Studio is a piece of cake once the virtual machine is set up. I simply downloaded the latest release from MSDN and let the installer run.

If you use an Apple Magic Mouse (as I do), Visual Studio tends to be overly eager to zoom the text size in and out as you swipe your finger over the mouse. The Disable Mouse Wheel Zoom add-on fixes this annoyance.

Improving Visual Studio for Performance

I was impressed with how well Visual Studio performed under emulation. With a large multi-project solution open, though, I saw some slowdowns.

Through trial and error, I found a number of things that could be disabled to improve performance. You may not want to make all of the changes I did, so pick and choose your own list of tweaks:

  • Disable hardware-accelerated rendering. Unchecking Automatically adjust visual experience based on client performance, Enable rich client visual experience, and Use hardware graphics acceleration if available via Options – Environment made the UI feel much more responsive on my machine.
  • Start up to an empty environment. Starting up Visual Studio for the first time feels a lot snappier if you skip the default news page on startup. Select Empty environment under Options – Environment – Startup – At startup.

  • Remove unused extensions. Visual Studio ships with a number of extensions that you may not need. From Tools – Extensions and Updates – Installed, remove any extensions you aren’t actively using (you can always reinstall them later). I got rid of six extensions I didn’t need.

  • Disable extra debugging features. I turned off both Enable Diagnostic Tools while debugging and Show elapsed time PerfTip while debugging in Options – Debugging – General. I wasn’t using these debugging features, and debugging felt snappier after I disabled them.

  • Turn off the Navigation Bar. I found the code editor Navigation Bar to be unnecessary if the Solution Explorer is open. I disabled it via Options – Text Editor – All Languages – Navigation Bar.

  • Disable CodeLens. CodeLens is a cool feature for collaboration, but it’s not part of my current workflow. I got rid of the CPU overhead by turning it off via Options – Text Editor – All
    Languages – CodeLens – Enable CodeLens.

  • Turn off Track Changes. When a file is open in the code editor, Visual Studio will represent recent changes by displaying small regions of green or yellow on the scroll bar. If you can live without this, turn off Track changes via Options – Text Editor – General for a small performance boost.

  • Turn off Track Active Item. Squeeze out a little bit more UI performance out by ensuring Track Active Item in Solution Explorer is unchecked under Options – Projects and Solutions – General.

Visual Studio on a Mac: The Best of Both Worlds

With these tweaks, I’ve come to love using Visual Studio on a Mac. The performance is good, and by running Windows in a virtual machine, I get the best of both OS worlds.

Want to see what I’m building with this setup? Check out our open-source .NET SDK on Github.

Do you have any other tricks you’ve used to improve Visual Studio performance? Any must-have add-ons that boost your productivity? Leave me a comment below!

A few months ago I heard “Visual Studio is coming for Mac.” At first, I did not believe the person who told me. But once I gained confidence in their sensibilities, I was thrilled. And now that it has arrived … well, it really isn’t Visual Studio for Mac. This is Visual Studio Code.

The idea was great. I was going to dump my slow Windows 7 box containing my decked out Visual Studio 2012 — extensions and all — and my dev onto my super fast 4K iMac. All without conceding to Boot Camp; but it looks like that time has not yet come.

Visual Studio Code is an integrated development environment (IDE) that runs on Mac — as well as Linux and Windows (for some reason). But Visual Studio it is not.

I gave it a good three hours of testing: the install was easy, until I needed to update Mono. And opening the first project from GitHub was easy as well. Here is what I found:

Pros

Light Weight

Visual Studio For Mac Wikipedia

Yep, it is totally light. It is all about get in, code, commit and leave. Which is nice, because if you are used to Visual Studio, you know it can be very heavy. Visual Studio Code takes much less time to launch, and auto-complete is way faster.

JSON Settings

Love the fact that all settings for the IDE are project-based and JSON files.

Search

The search interface is really nice. It is responsive and supports Regex.

Cons

Language Support

For the supported languages — JSON, CSS, HTML, {less}, and Node.js — intellisense and autocomplete work. And it’s fast. But for other languages, like PHP, all you get is syntax highlighting.

Mono

Visual Studio For Mac Vs Windows

Well it’s pretty cool they support Mono, but my testing intellisense and autocomplete are not supported. It is .NET for Mac, for God’s sake. Why would you not put more effort into the code support here?

Build my Code!

You can only run Mono and Node.js projects. Which is pretty confusing, as the language support is not great for Mono, but you can debug for it. This was a freebie for them. All they do is call your locally installed mono compiler, which does the work. It is not likely, even with the really cute debug icon, you will be doing any debugging.

It was a bit of a let down, but it is still neat. The actual use cases must be pretty limited. I’m picturing a small team, or working on a very small component quickly. But I do not see Visual Studio Code replacing the developer’s dedicated IDE. Nor do I see it being used in any sustained capacity.

So why does it exist? I think it’s mostly a marketing play. It certainly was developed well. But likely it was the the path of least resistance, to see how their all-important “Developer Tools” focus was going to fit into Linux and Mac. It also builds confidence in Microsoft’s reconciliation with other applications. If I am Microsoft, I’m watching the download numbers and reviewing all feedback to simply gauge the reality of people using it. If you can get developers across any platform addicted to an IDE, then you have an “in” for the entire VSO suite.

But I also get this weird feeling, which I also got at Build 2015, that Microsoft and Xamarin are up to something. Although on so many levels they are competitors, they go out of their way to work together. And the more Microsoft places products on the same machine as Xamarin tools, the better. Conspiracy, much?

So I do not get to dump my Dell just yet, and at this pace I might fully move to a Cloud IDE before I do Visual Studio Code. I think it’s worth a try. But after a few hours you will get the gist. And honestly, if you have the Git client installed and need to make a quick change to your code before bed, it’s great.

Visual Studio For Mac Vs Windows

Feature image via Flickr Creative Commons.