The challenges of running Visual Studio on a Mac

In the week since I got my Mac Pro I have made a conscious effort to transfer everything that I knew I would need over from my Windows XP machine. I’ve even powered off the Windows XP machine – something I rarely do with a computer – because I wanted to make sure I didn’t try to use it as a crutch. My goal was to see if I could really switch to Mac completely and one week in that has been the case, though there has been some compromise.

I use VMware Fusion to run Windows XP in a virtual machine. It works really well for the most part and when it is running in full screen mode I really feel I’m running a Windows machine, with a couple of major exceptions:
Keyboard Shortcuts: Visual Studio makes heavy use of function keys, especially for debugging. By default the critical ones I use most are F10 (Step Over) and F11 (Step Into) and F9 (Toggle Breakpoint). On my Mac’s keyboard the F9 key advances the song/track in the player, F10 mutes the speaker and F11 lowers the volume – these are special feature keys for OS X and work in any application you happen to be in.
You can flip a toggle in the System Preferences to allow the Functions to operate as standard keys, in which case they will not work as special feature keys unless I hold down the fn key on my keyboard. Likewise if I have the option in System Preferences unchecked I need to hit fn in order to access the keys as standard F keys.
There was also one other layer of complexity added to all of this: by default OS X ships with some keyboard shortcuts of it’s own that also conflict with things. This threw me for a little while because by default some of those F keys are mapped to Spaces and Expose.
What I ended up doing was eliminating the Spaces, Expose and Dashboard use of the F9 through F12 keys; I use the mouse for that stuff anyway. I also keep the option to use the special key feature enabled, meaning that if I want F10 to be passed down to my application I need to hold the fn key too. It’s a pain in the ass but I really like having the special keys enabled. Too many functions for too few keys.
I really do wish the fn key was a toggle, not a modifier key though. That would make it so much easier. I spent a couple of hours researching how to make it work that way but had no luck.
Using the Keyboard to Navigate Text
I’ve mentioned before that the text navigation keys between Windows and Mac are different. On Windows you use Ctrl-Right, Ctrl-Left to move the cursor one word at a time to the right or left. On Mac it’s Option-Right, Option-Left. Well, this creates a little conflict when using VMware Fusion and Visual Studio.
By default OS X uses Ctrl-Right to move to the Spaces window to the right, Ctrl-Left to the Spaces window to the left. As a big time Spaces user I’ve found this excellent, unfortunately I’ve had to disable the feature since I really need the ability to Ctrl-Right and Left arrow through words in Visual Studio. This is not something I’m terribly happy about but I’m trying to get used to it.
Other than these two issues, so far it’s been excellent. My development performance has actually increased a bit because all of the applications I’ve come to count on are now on the Mac Pro.


  1. You can only install VS on a Mac by using either Bootcamp, VMware Fusion or Parallels. When you run it you are using a virtual machine (in the case of VMware or Parallels), it’s like having two computers—Mac and PC—running at the same time.

    That said, VS is not native to the Mac and you will not be able to run it without installing Windows using one of the above programs. In addition, .NET applications cannot be targeted to Mac OS X directly; you can do it if you are producing web based applications obviously but that requires a Windows based server to run them.

    There are a couple of tools that will allow you to build a single application that targets both Windows and OS X:


    With that you can create a single code base and target deployment at both OS’s.

    Adobe Air

    By leveraging Flex technology you can use Air to create crossplatform applications really easily. The upside is that these applications can also be run on most flavors of Linux as well.

    There may be others but these are the applications that I’ve found for doing cross-platform dev.

  2. Hi,
    Is it possible to install visual studio 2005 on MAC ?
    I want to develop an platform independent application using .NET that can be used on both MAC and Windows…..
    Reply me soon on my email ID.


  3. James Katt says

    I wonder if the System Preference for function vs standard keys can be toggled via a terminal script. If so, then a script can be run to do the toggle and the script can be given it’s own key-combination to do the toggle.