Monday, January 16, 2012

Setting up your development environment for a CRM 2011 project

Following a series of recent articles I have posted about solutions, I wanted to share some information about how you can set up an efficient development environment for your CRM 2011 project. Managing the solution synchronization among multiple environments (dev, test, prod, et.) is not always straight forward and it depends on multiple factors such as the scope of your project and the size of your team. In general, I have found an environment topology that facilitates an efficient development team and applies to most CRM projects:

image

Note that in the table above, each of the “environments” are not necessarily separate servers. If you have a multi-tenant CRM server you could host one or more of these environments in the same box. the only caveat is that you need to make sure that an activity happening in one environment will not interfere with an activity in another environment. For example, all environments in which the developers need to debug on the server side should be separate box since you don’t want to block testers and Business Analysts due to the debugging session in one of the CRM organizations. Thus, as a minimum, the “Individual Development Boxes” should be separate CRM servers.
Remember this is not applicable 100% all of the time exactly as shown, but it is a good start to define your development environment strategy.

13 comments:

  1. Hi - really useful post. Just wondering if you had an advice for how to go about organising the "temporary transport solutions" between the developer boxes and the configuration box ? Cheers, Chris.

    ReplyDelete
  2. Hi Chris. For the temporary solutions it should not matter what solution name/version you use since you will delete them anyway. Not sure what you mean by "organising"

    ReplyDelete
  3. Is there a potential issue where two developers have been working on the same entities/forms, and one overwrites the other's changes when they import their personal transport solution into the configuration server ?

    ReplyDelete
  4. This is always possible and there is no "magic" to prevent it, that's why I would suggest having all the schema/configuration changes done directly in the Master Configuration environment (not in the individual dev boxes). The transport solutions should only contain components such as plugins for which you can minimize the risk of multiple developers working on the same at the same time in different environments. Hope that helps!

    ReplyDelete
  5. That Crm Is really cool and fantastic.I am impress in your article very good.

    ReplyDelete
  6. Hi Gonzalo, I have the following question concerning your suggested environment topology: In which order would you install CRM Update Rollups on your different CRM Servers since you need to ensure on the one side that everything works fine after installing an UR and on the other side not to endanger an important environment by installing an UR for the first time. Or would you recommend another separate CRM Server just for UR testing and afterwards you install "from left to right"?

    ReplyDelete
  7. Hi Andre, yes I would start installing URs from left to right (in diagram above). Certain URs cannot be uninstalled (e.g. UR5), so I would perhaps do a full regression testing in a separate environment before installing those special URs.

    ReplyDelete
  8. Hi Gonzalo,
    I have posted a question on the CRM forums regarding how our environment is set up. Could you please comment and provide some insights?

    http://social.microsoft.com/Forums/uk/crmdevelopment/thread/4c6eba1c-4bd6-417e-a4d8-64c81d7dae1b

    ReplyDelete
  9. Hi Gonzalo,

    I like your approach but I have a question concerning the licenses needed for this szenario. Do I need an own license for the production and the development server if they are separated? I could find conflicting information about this but no clear answer till now.


    Thomas

    ReplyDelete
  10. Hi Thomas,

    The MS licensing world is a complex one, and I don't think you need any licenses for development environments, but I would still suggest you check with Microsoft directly to be sure.

    ReplyDelete
  11. Hey Gonzalo,

    Thanks for the straight forward explanation. How do you keep your data current on the non-Production boxes? We are a labor union with over 48,000 active members. Our xRM solution is highly customized with dues and billing entities, employment history, etc. Is it possible to use a one-way SQL replication solution to push data from Production downstream?

    Doug, New York City

    ReplyDelete
  12. This comment has been removed by a blog administrator.

    ReplyDelete
  13. This comment has been removed by the author.

    ReplyDelete