When setting up your CRM development environment you have two fundamental choices to make: Networked or Standalone. If you go with the Networked approach you'll set up a CRM server on your actual network using physical or virtual machines. The standalone option will typically be vertical and a 'one-box' deployment.

For the Networked approach you should follow the steps in the Implementation Guide (IG). It's highly suggested that you configure the box for both regular windows and Internet Facing Deployment (IFD) authentication modes.

Creating your own virtual one-box deployment might seem a bit daunting at first - but I assure you it's really easy and doesn't take very long. This checklist will help you get started. Note that the order of doing this is important. Following this checklist does not excuse you from reading the IG by the way...

  • Hardware. At the moment I use a Windows Vista Enterprise 64-Bit (SP1 Escrow) on a Lenovo T60P with 4 GB of RAM. Some of my colleagues have also had success using USB sticks for ReadyBoost to up the RAM. I place the VHD on the laptop's SATA drive. If you do use external drives ensure they are faster than the internal drive.
  • I use Virtual PC for virtualization. Virtual Server is also a good option.
  • Now build out Windows Server Virtual Machine. Try and avoid pre-built VPCs as they tend to be loaded up with junk. Besides if you can't do a Windows install you might just be in the wrong profession (it's akin to a mechanic who can't do an oil change).
  • Do not join this machine to your domain. For now just keep it connected to a Workgroup.
  • Hook it up to the Internet and run Windows Update.
  • Now configure the VPC to use the Loopback Adapter. You'll first need to 'install' the Loopback Adapter on the host OS (eg. Vista). Here is a screencast on how to do this: Configuring the Loopback Adapter.
  • Change the IP address of the server to 192.168.1.1.
  • Change the IP address of the host OS to 192.168.1.2. Use 192.168.1.1 as the DNS Server.
  • Now make sure that the server is connected to this private loopback network. Now nothing from the outside except the host OS can reach the server. This is a good thing: it's a safety precaution.
  • Promote the server to a domain controller. For those that haven't done this in a while: type dcpromo at the command prompt. Try not to forget the restore password.
  • Now install Internet Information Services (IIS).
  • SQL Server is next. TS into the server (at 192.168.1.1). You'll want to use the IP as you'll probably get netbios conflicts if your host machine is also connected to another network. Install SQL as normal and make sure you install SQL Server Reporting Services. For your development machine I also suggest you use mixed-mode SQL auth however you should always avoid this in a production environment (for the usual reasons).
  • Now install Visual Studio. Yes. Install Visual Studio on the server. You'll want it later for debugging stuff.
  • Ypu'll want to create a config file to make your server run in IFD mode. See the IG for more info.

<CRMSetup>
  <Server>
    <ifdsettings enabled="true">
      <internalnetworkaddress>192.168.1.1-255.255.255.255</internalnetworkaddress>
      <rootdomainscheme>http</rootdomainscheme>
      <sdkrootdomain>crm.philiprichardson.org</sdkrootdomain>
      <webapplicationrootdomain>crm.philiprichardson.org</webapplicationrootdomain>
    </ifdsettings>
  </Server>
</CRMSetup>

  • Copy all the CRM files to the server. The DVD is a good option here as it contains all the pre-req's (eg. Visual C++ etc).
  • To kick off the installer open the cmd prompt and navigate to the server folder. Assuming your config file is called ifd.xml you'd want to type the following: setupserver.exe /config ifd.xml.
  • Here is a screencast showing the install experience: Installing CRM.
  • Now CRM is ready to use. Reboot and make sure everything is working. You'd be surprised how many people don't bother to smoke test.
  • Create a bunch of user accounts in the AD of the server.
  • Shut down the VPC and make the VHD file read only. This is now what we call your Base Image.
  • Now create a new Virtual Hard Drive of type = Differencing. Parent this to the Base Image. This might sound a bit confusing at first. Try it out and make sure you read the VPC help files if you are unsure.
  • Now create a new Virtual Machine and use the Differencing VHD as it's hard drive. This is your CRM dev environment. Any time you need a new one (because hey - stuff gets broken during dev) you just create a new differencing disk. Hence the joy of having a solid base image.
  • To access CRM via IFD from the Host OS you'll need to add the IFD URL to your hosts file (C:\windows\system32\drivers\etc). Map 192.168.1.1 to orgname.crm.philiprichardson.org (or whatever you called your deployment). Also not you need the orgname in this mapping. Each time you create a new org you need to add this to the Host OS's Hosts file.
  • Undo disks are also a good option on the Differencing VPC. This way you can revert changes without creating a new VHD.
  • Backup everything.

So now you have your environment ready to go and you can easily rebuild it in a matter of minutes if necessary. In the next post we will explore applications which Connect to CRM.