I am considering buying an Apple MAC book Pro, are than any pitfalls developing C#/.NET code in a Virtual Machine running on a MAC?
For this purpose, is it better to run Vista or XPPro?
I am considering buying an Apple MAC book Pro, are than any pitfalls developing C#/.NET code in a Virtual Machine running on a MAC?
For this purpose, is it better to run Vista or XPPro?
Probably better not to run vista in a VM. Especially if you want the Aero UI turned on. VMs aren't very good with advanced graphics, so you'll probably want to run XP, or Vista in classic mode.
Not really, it should run just fine. Your dev environment will just be a little bit slower...but in my experience, it's not really all that bad. I wouldn't want it as my main machine, but it's perfectly usable.
XP Pro is definitely better, unless you have a really beefy Mac.
Regarding your other question, no there are no pitfalls, other than performance. I prefer to use a real PC to do actual coding, using VMs for testing. Clearly, that's not an option for you within OSX. However, you do have the option of Boot Camp if the VM performance becomes an issue for you. That will also let you run Vista with no performance degradation.
Bear in mind that the two virtual machine solutions for the Mac are fairly immature. I've used both, and while they are perfectly adequate for development, I've found both to be flaky, to varying degrees. Parallels seems mostly stable, but does crash and seems to have memory leaks; VMWare is beefer, and sucks more of the system's performance away by default (also seems to perform somewhat better than Parallels), but can have serious graphical problems depending on your setup, particularly if you try to use Unity mode.
I can't tell you any specific experiences since I don't have a Mac, but I did want to point out that there was an awesome episode of the DeepFriedBytes podcast that discussed this very topic. It made me want to give it a try. They discuss the pros and cons of going this route - well worth the listen IMO if this is something you're considering:
I'm developing .NET apps in a Vista VM under VMWare Fusion. Obviously you need a lot of memory, but other than not having Aero, I haven't run into any problems yet.
I don't think Kibbee advice is correct. VMware Fusion (for the mac) currently supports up to DirectX9. The Vista integration is very good. If you have any trouble, you can natively boot into your Virtual Machine (If you have set it up as a BootCamp partition on the mac).
I don't see any trouble with this setup, although I would not do it myself.
The only thing, that my be a problem to you, is the keyboard-layout. The mac-keyboard has a different layout to pc-keyboards. (Especially on a german mac running a german windows, some characters might be a bit harder to type). You will have to relearn some parts of the keyboard!
I do asp.net development on a MacBook Pro, running VMWare Fusion and Vista x64. It works great for me.
As someone else mentioned, the keybindings are a little weird. I usually use a full size external keyboard, which helps a lot.
I am developing .net applications using XP Pro in VMWare Fusion and I am not finding any issues. I am not even seeing any performance issues as the hardware in the MacBook Pro is much better than the hardware I had in my previous laptop.
I found that there were a few things that I had to fiddle with to make the experience the same as working on my previous laptop.
I had to install Sharp Keys to be able to access the right-click/context menu key on the keyboard, which I use often when in VS. I also made sure that some of the Mac OS keyboard and mouse shortcuts were not registered in VMWare Fusion, to stop strange things happening.
I just noticed that I am only allowed my VM to use 1GB of memory, maybe I should up this just a little. There are posts out there that warn about assigning too much memory to a VM.
One thing that is suggested for improving performance is to run the VM on another spindle. I haven't found a suitably priced 7200rpm portable drive yet, so I can't comment on this.
[Edit] I knew I had seen this somewhere, Setting Up Windows Server 2008 VMWare Virtual Machines For .Net - This is something that I have been meaning to try out, I just haven't got around to it yet. (Too much time spent reading CrackOverflow)
For virtualization, I'd try Sun's Virtual Box. I use it in Windows XP and Windows Vista and it works great, I expect performance would be similar running on a Mac.
As for which OS to run, I would stick with Windows XP Pro. You'll not need to dedicate as much RAM to the VM as you would if you ran Vista.
I've been doing .NET development using Parallels for over a year now, using WinXP Pro and can't complain, it runs fast (just as it would on a regular machine) and I get the best of all worlds --> a tip, use spaces, so have windows running in one desk and ur mac stuff on the other, and with just a keystroke u move from one side to the other, flawlessly!
On the Bootcamp side, got to be honest I tried for a while, but having to reboot to access my apps on mac, it became annoying after some time, but just a word of advice: if you go with this option take a look at MacDrive, can't go wrong with it, as u will maintain access to you Mac partitions.
Been there, done that... and I kind of like it ;)... good luck with the transition!
Just to mention an alternative to VMWare Fusion, I'm using Parallels als a VM. Performance has not been an issue so far when I've given the VM 1 GiB of main memory. Before deciding on one VM, I'd suggest testing them all extensively. I am quite happy with Parallels but I'm not sure I wouldn't use VMWare Fusion the next time.
Contrarily to what Mo said, I actually find the Mac keyboard layout much better than the Windows layout, using a Germany key binding.
I'm developing in a Parallels VM running Windows Server 2008, and overall it is terrific. I'd highly recommend the server OS over Vista or XP if you are doing web development.
Other than the keyboard issue, the one pitfall with the MacBook Pro is that the fan is extremely loud and annoying, and running a VM has in my experience tended to heat up the laptop enough to kick it on relatively frequently. However, there are utilities out there such as Coolbook to keep it from kicking on.
I develop on my Macbook (not pro) using VMWare Fusion and WinXP. For the most part, it is a very good experience. I assign 1GB of memory, out of my 4GB, to the VM and its pretty speedy.
The one major pitfall I've encountered is disk space. If you install a full VS2008 install and other tools, you can quickly eat up 30-40GB of disk. If you start using the snapshot feature or running multiple VMs, you'll eat up even more. Since I use my laptop as a primary machine and have lots of data and applications on the OSX side, I have run low on disk space with the standard 120GB drive.
So, if you keep in mind the disk space issue, I think you'll find the experience quite satisfactory.
You'd have the least problems running windows not in a VM, but for development your experience should be close to perfect with a VM. Both will give you less issues than MonoDevelop presumably, which is an entirely different CLR, compiler and a reimplementation of the framework.
I use Parallels. I used Vista for 4 months then switched to XP. I prefer XP as it is faster.
Key bindings are quirky. Using function keys while debugging in the hosted XP will trigger events in OS X, effectively popping you out.
I have 3 "spaces" set up. One for OS X, one for XP VM, and the last for a RDC to my desktop. THIS IS BRILLIANTLY USEFUL. I can't live without spaces now. This technique actually killed my desire for a second monitor.
Like Jason said, any files stored on the OS X partition will be seen as a network resource to the XP/Vista VM. So trying to run EXEs or storing web roots there cause trust issues. Studio doesn't like project web roots to be on network shares.
peace|dewde
I would look into the VMWare Fusion 2 Beta to get around the quirks with the key bindings experienced by those using Parallels. Fusion will capture all key events inside the virtual machine unless you hit a special key sequence to escape from the VM. You will, however, still have to get used to some of the oddities having an Apple based keyboard layout (no backspace, etc.). Those things aside, it really is quite seamless.