locked
Basic Question - CRM Development 4.0 Environment RRS feed

  • Question

  • We are looking at setting up a development environment for CRM and I have a very basic question.

     

    At the moment I have a machine with Windows 7 installed on it. Someone has proposed that we use a virtual machine with Windows Server 2008 with CRM and VS2008 installed on it. I am wondering would it not be better to go the full hog and just install Windows Server 2008 and CRM on my physical machine and not have to be developing through the Virtual machine all the time. My machine will be used primarily for development and nothing else so there is no special reason to have Windows 7 on it. How do other developers approach this? ... anything else I should consider

     

     

     

    I have done some research but these dont give me the answer I was looking for

    http://msdn.microsoft.com/en-us/library/ee294457.aspx

     http://blogs.msdn.com/crm/archive/2009/07/21/setting-up-your-crm-development-environment.aspx

     

     

    Tuesday, March 23, 2010 6:16 PM

Answers

  • If VS is installed locally to the virtual machines, then yes, they'll need to be on the same network to communicate with TFS.  Ideally, you wouldn't have VS installed on a CRM production environment, so I would personally avoid doing so in a development environment.  I'd use VS locally on the developer workstations, and push developments into the virtual space just as you would push them into testing, and/or production space.  The closer these spaces can virtually mirror each other, the easier it will be to catch problems earlier in the progression of development and deployment.

    Full disclosure:  I never went to school for this stuff, and therefore don't have a degree or any officiating credentials upon which to validate my process-outline.  I've also never worked in a multi-developer environment, or had to worry about doing more than covering my own ____.  But I have gleaned a great deal of my process by working near those environments.


    Dave Berry
    Monday, March 29, 2010 11:50 PM
    Moderator

All replies

  • I would use a virtual machine with a base virtual disk containing win2008, sql server and visual studio, I would then create a differencing disk per CRM instance that I need. This allows me to have a single base vm setup that I can then install a number of CRM deloyments onto, for example for each customer project. If a CRM differencing disk breaks, all I do is create another one, which is as simple as installing CRM again.
    MSCRM Bing'd - http://bingsoft.wordpress.com
    Tuesday, March 23, 2010 6:35 PM
    Moderator
  • The virtual machine seems the best approach.

    But you will really need a powerful computer if you want acceptable performance as, depending on the project, you could need Exchange, MOCS, MOSS...

    Win 2008 + VS2008 + SQL + CRM requires already good ressources to have good performance...

     


    My blog : http://mscrmtools.blogspot.com
    You will find:
    Bulk Delete LauncherView Layout replicator
    ISV.Config Manager Form Javascript Manager
    Assembly RecoveryAnd others (use tool tag on my blog)
    Tuesday, March 23, 2010 7:34 PM
    Moderator
  • As there are many development considerations that should be made for a physical server environment that includes multiple machines with varied services (SSRS, Exchange, IIS, CRM, SQL), your development environment should present the same layout.  Virtual machines make this easy to implement, and in agreement with Rhett's recommendation, are easy to duplicate, restore, or reconfigure.  I personally use VMWare ESXi (it's free ) as a virtual machine platform, for multiple virtual environments, on an older 1U server and isolate its virtual network so that it attaches directly to a single ethernet port on my development machine, where I house Visual Studio and various code management tools.  VMs are especially great at providing testing environments that match more closely the end user, than that of your personal desktop--this is necessary at times when your environment performs in ways that are better than the common experiences of end users.

     


    Dave Berry
    Tuesday, March 23, 2010 9:08 PM
    Moderator
  • The common consensus seems to be to go with a virtual machine. On the CRM image we need VS2008 installed and connected to TFS for source control therefore each virtual machine will need to be connected to the network, does that mean that each developer will have a different image with a unique name for the virtual machine so that they can all exist on the network at the same time. If we have a standard image for a CRM Server and each developer just renames the virtual server will that cause any problems. I was led to believe that if you have a virtual server with sharepoint and crm setup on it and then you rename the server then you would mess up the settings ... is this the cae?
    Wednesday, March 24, 2010 4:56 PM
  • Why must they all exist on the same network?  You could provide "virtual" network access to the specific virtual machine used by a specific developer by placing them on different network subnets.  Unless they all need to work with your current domain, this would probably be the easiest way to avoid collision among machines with identical names.  Otherwise, you will be better off using different names for each server from the get-go.  Generally it's pretty easy to clone virtual machines, but you may need to consider the SID collision that will result on the domain .

    As for problems that may occur by renaming the machine, I can only speak to CRM, and there is definitely a chance that doing so will require reconfiguration of the MSCRM_Config database, as well as the registry.  If their developments aren't dynamic and flexible enough to work on any deployment, then they need more education.


    Dave Berry
    Wednesday, March 24, 2010 5:40 PM
    Moderator
  • I dont know a whole lot about Sys Admin but if each Virtual Machine has VS2008 installed which needs to communicate with TFS for source control ... do the VM's have to be on the same network as our existing TFS Server? .

     

     

     

    Friday, March 26, 2010 3:55 PM
  • If VS is installed locally to the virtual machines, then yes, they'll need to be on the same network to communicate with TFS.  Ideally, you wouldn't have VS installed on a CRM production environment, so I would personally avoid doing so in a development environment.  I'd use VS locally on the developer workstations, and push developments into the virtual space just as you would push them into testing, and/or production space.  The closer these spaces can virtually mirror each other, the easier it will be to catch problems earlier in the progression of development and deployment.

    Full disclosure:  I never went to school for this stuff, and therefore don't have a degree or any officiating credentials upon which to validate my process-outline.  I've also never worked in a multi-developer environment, or had to worry about doing more than covering my own ____.  But I have gleaned a great deal of my process by working near those environments.


    Dave Berry
    Monday, March 29, 2010 11:50 PM
    Moderator