locked
setup devlopment environment RRS feed

  • Question

  • Hi,

    Which is the best way to setup devlopment environment for CRM to avoid overlapping of customizations done by developers.
    Tuesday, March 16, 2010 9:31 PM

Answers

  • There are many code repository managers out there, some free, others not.  Personally, I've been experimenting with Git lately.  However, I've also used Subversion and CVS .  Git and Subversion are both fairly easy to implement, but as with any revision control system, your development practice needs to adhere to a practice of using it regularly, properly, and to the best benefit of your production.  You may find it easier to work with solutions that are more native to Visual Studio--but I'm unfamiliar with most of these.  Since I develop my Plugin/Workflow code in Visual Studio, and UI (Javascript) code in DevPHP (don't ask why, I just like the pretty formatting), a Visual Studio-centric solution doesn't fit me necessarily.
    Dave Berry
    Tuesday, March 23, 2010 10:02 PM
    Moderator
  • Its also a good idea if you have a team work on a project, to designate an individual to maintain a test server/VM that contains all customisations/plugins, etc. from the other developers. This ensures you have an update process to your test server that doesn't have many people overwriting each others customisations.
    MSCRM Bing'd - http://bingsoft.wordpress.com
    Tuesday, March 23, 2010 10:30 PM
    Moderator

All replies

  • Tuesday, March 16, 2010 11:13 PM
    Moderator
  • Thanks Dave for your reply. How will it help if more than one developer working and how to synchronize environment changes (customization changes) between multiple developers.
    Tuesday, March 16, 2010 11:48 PM
  • You're going to have to wait for CRM 5 before you get "Solutions" that allow for simultaneous customization and "layering" of customizations on a single deployment.  Otherwise, CRM 4 is going to have a lot of "stepping on toes" unless you implement a code-repository or team-based development environment to collaborate before the code ever enters CRM 4.
    Dave Berry
    Wednesday, March 17, 2010 12:45 AM
    Moderator
  • CRM 4's plugin model allows you to deploy multiple plugins that function separately, but that are attached to the same events.  However, if one plugin throws an error, execution of later plugins will halt, and I'm not altogether certain how CRM manages precedence for multiple plugins attached to the same Entity + Message + Pipeline.  While it may seem inconsequential, I've no idea how CRM would perform if Plugin2 was looking for something Plugin1 did, if they're registered identically.  I doubt that even SharedVariables are passed between plugins.  (But would appreciate correction if I'm wrong.)  The only way to avoid overlapping, it seems, is through effective programmer management.

    I would personally setup a VM with a local CRM deployment for each programmer, regularly syncing it (at the start of each development cycle) with a master development server.  Then, setup a code repository that strictly maintains and stores the code that is deployed to the master development server.  Finally, I'd schedule the merging of each developer's code into the repository on a regular basis at the end of each development cycle.  This way, they can independently develop code that will be unified in a controlled manner, and while they're developing, QA can use the master development server for testing and bug reports.
    Dave Berry
    Wednesday, March 17, 2010 1:05 AM
    Moderator
  • Thanks Berry. How will you maintain code repository, could you please tell more about the process.

    Thursday, March 18, 2010 3:48 PM
  • There are many code repository managers out there, some free, others not.  Personally, I've been experimenting with Git lately.  However, I've also used Subversion and CVS .  Git and Subversion are both fairly easy to implement, but as with any revision control system, your development practice needs to adhere to a practice of using it regularly, properly, and to the best benefit of your production.  You may find it easier to work with solutions that are more native to Visual Studio--but I'm unfamiliar with most of these.  Since I develop my Plugin/Workflow code in Visual Studio, and UI (Javascript) code in DevPHP (don't ask why, I just like the pretty formatting), a Visual Studio-centric solution doesn't fit me necessarily.
    Dave Berry
    Tuesday, March 23, 2010 10:02 PM
    Moderator
  • Its also a good idea if you have a team work on a project, to designate an individual to maintain a test server/VM that contains all customisations/plugins, etc. from the other developers. This ensures you have an update process to your test server that doesn't have many people overwriting each others customisations.
    MSCRM Bing'd - http://bingsoft.wordpress.com
    Tuesday, March 23, 2010 10:30 PM
    Moderator