Mac: How quickly does VMware Fusion run my development environment? Very.
Now that I'm back in my home office I figured I'd get Visual Studio 2005 Professional - my primary development environment - properly set up. This proved a little more time consuming than I thought it would.
Installing and initially configuring Windows XP in a VMware Fusion Virtual Machine (VM) takes a little while. I decided that rather than play around with my existing VM I would build a new one that I could snapshot at key points. Fusion allows you to create a snapshot of your VM at any point in time that you can revert back to if something becomes hosed up - a distinct possibility when installing and configuring a development environment with after-market controls.
I forgot how long it takes to install Windows fresh, even with Fusion giving you a jump start. Not only do you have the 30 or so minutes to do the initial installation, you have to run Windows Update multiple times to get each layer of security patch in place. In my case that was over 100 patches and three full restarts.
Once I had Windows XP up and running I took a snapshot and then installed Visual Studio 2005 Professional. That took another 20 minutes or so for the initial install, then another 30 minutes for several layers of security patches on it. It took a while to get through all of this.
Finally, I went about installing my controls. I use Telerik right now, an outstanding set of controls that make for some really nice looking web applications.
From start to finish it took me over 2 1/2 hours to get everything set up properly. Once it was all up and running clean I took another snapshot in case I needed to roll it all back.
I was able to load my current project up, which included a local SQL Express database and tens of thousands of lines of code. It loaded fine the first time in, compiled clean and allowed me to see my application in IE (all within my VM). I could trace through code in the debugger, set breakpoints, modify data in the tables dynamically, etc.
From a performance standpoint everything ran very smoothly - I didn't see any big gaps in performance, even though this is a little MacBook. Comparing it side by side to my dedicated Windows machine yielded some interesting results:
Task | Windows | MacBook |
---|---|---|
Load Visual Studio 2005 | 3s | 3s |
Load web project into VS 2005 | 8s | 4s |
Rebuild entire project | 8s | 9s |
Click run, load IE, app running | 3s | 3s |
View Class Diagram | 6s | 9s |
Save Class Diagram | 18s | 25s |
My Windows machine has the following specs:
EVGA 680i Motherboard, Intel Extreme QX6700 2.66GHz processor (quad core), dual WD 150GB 10K RPM Sata drives, 2GB Corsair Dominator matched memory, EVGA 8800GTX video card. Running Windows XP SP2, fully patched.
My MacBook is a 2.2GHz machine with 4GB of RAM and a WD 320 HD. I am running VMware Fusion 1.1.1 and the same version of Windows XP in a VM.
I think the places where the MacBook finished up a little faster is where I have a number of external drives mapped to my Windows machine that in some cases it would run out and look through during some activities.
These numbers are me timing them with my digital watch. They could be off by as much as a second and since the machines are dramatically different this is not a head to head comparison in any way.
What it really represents though is that running VMware Fusion and Windows on a Mac can get very comparable performance to a PC running Windows exclusively. I really like the fact that right now I have an 18GB file that represents my entire Windows XP development setup.
If for example I want to set up a new Mac Pro as my development platform all I have to do is install VMware Fusion, copy the 18GB file over and I'm in business. No going through nearly 3 hours of installation and hassle.
Right now that sounds really, really appealing.
Comments
Question: I am looking into making software. Not necessarily web apps, but probably desktop applications. Would you suggest VS for this too? And for a beginner?
Keep it up and I'll keep on readin'!
What advantages does using telerik custom controls for ASP.NET have? I have yet to really use any 3rd party custom controls mostly cause my work will not even considering paying for them when they can pay 4 times the price in hourly pay having me do it.
So I am curious to know what advantages I could have by using this. I am almost 100% C# / ASP.NET development. The only thing I have convinced them to pay for as Visual Assist X.
@vito: Visual Studio is a really deep and complete development environment. What's nice is that you can build web applications or Windows based applications. It's all in there. Unfortunately you cannot create Mac based applications. It can also be a bit overwhelming if you are new to applications development. Microsoft has a really good site for figuring out of this is something you want to invest your time in:
Microsoft Express Editions
I could write several very long pages on what would be a good development environment to learn on. If you want to try it more from a hobby standpoint, not a career choice, you should also look at Flex from Adobe. You can actually create desktop applications that target Windows, Mac and Linux. It's really impressive.
Good luck my friend!
@mikez101: Telerik is fantastic for building up commercial grade UIs. If you are doing internal IT type development where the application is used by internal people inside a company the basic grids and controls MS provides will probably be adequate. But if you want easy ways to create modal dialogs, advanced grids that render like a desktop application or highly skin-able controls like Calendar pick lists, Telerik is amazing.
I recommend that you download their trial and play with it a bit. www.telerik.com. I highly recommend these guys.
We do have multiple public sites and our clients are able to login and see all thier information again in just your normal GridViews, DataGrids and so forth. Really the only thing that I don't like is the ASP Menu.
I did like some of there demos the GridView control is very nice from telerik.
I have not forced myself to do much with XCode yet. The only reason I would probably even consider it is to design some iPhone apps but I am going to wait and see just how that plays out before I go invest my time into something that apple will not let me put on an iPhone.
I'm downloading MVB Express right now plus the toturials to get my feet wet.
I really appreciate you pointing me in the right direction.
As for the Parallels vs VMware: I talked to one of the internal tech support guys at a very large software company that develops for Mac and Windows. He said they encountered way less issues with VMware. It proved to be just much more robust overall, so the company ended up getting a site license for VMware.
@hendrik: You really do want to bump memory as high as you can. The memory I bought (4GB just a little over a month ago) has dropped from $99 to $79 at NewEgg. You should also make your Windows XP VM use at least 1GB of memory, not the 512MB that is the default recommendation.
On the Time Machine front I have a WD 1TB My Book drive connected through USB. I actually purchased an Apple Airport Extreme and tried hanging the My Book off it but even with the setting enabled to see network drives in Time Machine I couldn't get it to work. Since my MacBook sits at my desk it's not a huge deal to have it plugged in. I have another pretty lengthy post about it here.
Now that the Airport Extreme supports external drives I figure I'll try one out again and see if it works. If you are thinking of doing that and you happen to have a Best Buy near you then I'd buy it from them. They do not charge a restocking fee if you need to return it because it is incompatible with your external drive. This is what I'm planning on doing now that the support is technically there.
Version 1.1 was a pretty major update.
From everything I've read they are getting really good reviews and with the "rising tide" of the Mac market I can't imagine they would be losing money on it or consider discontinuing it.
I understand you have a lot of experience with Visual Studio. Have you tried the Mac IDE called XCODE?
It should be in your Mac OS X install cd. You can install it and play with it. It is like Visual Studio for Mac and it is really cool. Preprocessing, developing mac, unix and iPhone apps. You will love the integration. Plus I love Instruments, which is a developer application for mac that allows you to test your application checking for memory leaks, performance etc... let me know.
TheMacThinker
www.MostOfMyMac.com
I'm going to examine Xcode in more detail when I complete this development effort and start looking at custom client applications. I love the concept of a rich web based app. that can also be accessed by a well designed custom client application using web services calls.
I use Parallels on my laptop, and VMWare on my desktop. Parallels has much nicer and tighter integration with the Mac file system and applications, while VMWare supports two cores and 64 bit OS support.