With the community beta release of Scorpio now available, Apple developers can finally obtain an Intel-compatible version of ColdFusion for OS X. But if you're on a Mac and you need a ColdFusion-based development environment there's another method I want you to seriously consider...
Running Windows XP under Parallels Desktop for Mac.
Now before you turn away at the thought of installing a copy of Windows on your pristine Mac, let me explain.
Because doing so gives you five major advantages over a straight OS X-based installation:
- Running Windows/IIS
- Running CF7 or CF8
- Running SQL Server
- Running IE6 or IE7
- Multiple Work Environments
In a nutshell, and in case you haven't heard, Parallels let's you run Windows XP, Vista, or Server on your Intel-based Mac inside of a "virtual machine" (VM). And unlike Apple's "Boot Camp" solution, there's no dual-booting. Windows and OS X run side-by-side simultaneously, effectively providing you with your own personal private Windows server hidden away inside your Mac.
Now, let's take a quick look at each of the advantages mentioned above:
- A significant number of ColdFusion installations run on some form of Windows Server in Windows-based shops. Running CF under Windows/Parallels lets you mirror your Windows IIS environment, your Windows directory structure and paths, your IIS configuration, and any IIS extensions or plugins you may have.
- You can clone your ColdFusion installation, mappings, and other settings, including any Windows-based CFX or ActiveX objects that may be required. Plus you can use the same exact version of CF (even MX7) under the same exact version of Java that you're using in your production environment.
While Java is supposed to be "write-once-run-anywhere", the fact that we've waited nearly two years for an OS X-based version of CF to appear argues that it's not.
- If you're the aforementioned Windows/IIS shop then odds are that you're also using SQL Server. Download and install the free "community" version of SQL Server inside your VM, and you can develop using the same databases, tables, views, and stored procedures, and can use the sameTransact-SQL syntax you're using on your production server.
- Having Windows on your Mac means that you also have access to the arch-nemesis of the World-Wide-Web, Internet Explorer. I used to keep a Dell notebook by my desk for one reason only: seeing what broke under IE6 that worked just fine under Safari, Firefox, and Opera. That machine is now gone.
And while IE7 is much better in terms of compatibility, enough people have stayed behind on IE6 and/or XP that the dreaded "IE check" is still required. (Hint: After installing Windows XP under Parallels, immediately clone that virtual machine and install IE7 in the clone. Now you have access to both IE6 AND IE7.)
- Multiple Work Environments. I just mentioned that you can clone your VM to get access to VMs running IE6 and IE7, but you can also use it to clone your IIS/CF/SQL installations. If you're a consultant, your ears should have pricked up immediately, because by cloning VMs you can now have one VM with a complete installation mirroring that of Company A, and another that mirrors Company B, and so on.
Does each company have a different configuration? Use different versions of frameworks or tag libraries? Have conflicting datasources or mappings? Problem solved.
In fact I've already cloned one of my VMs and upgraded it to CF8 for compatibility testing, but still have access to the old CF7-based version that mirrors the production server if I need to maintenance.
Installing a VM also gives you a fair amount of control over your environment. Start the VM, and IIS and CF and SQL Server all start running. Stop the VM, and they all stop accordingly, freeing up memory and other systems resources.
So that's why you should consider a Parallels-based work environment and put Windows on your Mac.
Note that you're still doing all of your development on your Mac. Safari, Firefox, Dreamweaver, Eclipse, Photoshop, Fetch, are all still running under OS X. You've simply created a "local" Windows test server for them to talk to.
Tomorrow we'll look at a few of the disadvantages to doing so, and after that I'll give you a few tips and tricks to make your installation and work environment easier to deal with.
Next: Deploying ColdFusion on OS X using Parallels - Disadvantages
Instructions: Deploying ColdFusion on OS X using Parallels - Installation
Although I use Linux servers, I really like this set up and have been using it since I bought my Mac in November. I add MacFuse/MacFusion to the equation for ease of development.
Because I hadn't heard of anyone else using a similar setup (until now), I wrote about it at http://musetracks.instantspot.com/blog/index.cfm/2007/4/24/Revisited-An-Alternative-OS-X-Development-Environment.
Posted by: Rob Wilkerson | May 31, 2007 at 08:01 AM
My question is how do you dev on your Mac, but then use Windows as your server? Can the mac see the parallels VM as a server? and browse to it? If so, this would be the ultimate solution for me. I'd love it if you could post a "setup guide" on this dev environment.
Posted by: Andrew Jones | June 07, 2007 at 08:56 AM
The how-to is coming, but yes, the Mac can "see" Windows. Parallels creates a virtual ethernet NIC so Windows can see the outside world and access the net. To do that, the NIC driver must be registered with OS X and because of that, the Mac can also use it to access any ports and services exposed by Windows, just like a server connected to any other network adaptor.
Posted by: Michael Long | June 07, 2007 at 11:04 AM
Ciao
I'm working to this using VMware Fusion but I wasn't able to use Dreamweaver on Osx as I want.
With Parallel is't possible to use Dreamveawer CS3 to develope directly cfm pages saved on the root of the Windows XP (used as cfmx7 virtualized server).
Posted by: Denello | October 02, 2007 at 01:00 AM
Denello, I have a copy of my website running under IIS on the Parallels VM. I then use DW to save the files locally in an OS X directory, but also checked the option to automatically upload the files via RDS to the test server running under Parallels. Since the VM is local the upload is instantaneous.
I prefer this approach, since it ensures that my original files aren't on a Windows VM that could be corrupted or deleted.
Posted by: Michael Long | October 02, 2007 at 03:26 AM
A like your approach I'll try it yesterday evening and It work really nice.
Wonderful!
tnks
Posted by: Denello | October 03, 2007 at 01:42 AM