Multiple Developers + Single Dynamics CRM Instance

2019-05-31 08:00发布

问题:

We are 4 developer supposed to work on a same CRM instance for our next CRM project.

We are planning to use Solution Packager to decompose solution file into folder structure containing XML files representing each component of the CRM solution.

We are using Git for version controlling.

Currently we foresee some issues due to which we suspect it will add more overheads or involve manual intervention to avoid some of the conflicts.

On the Microsoft website, it gives an example where the CRM solution file is stored under Source Control but developer A and developer B have both independently made changes to components of that solution. It says:

Developer B is ready next following developer A.

  1. Before he submits he must get the latest sources to ensure no prior check-ins conflict with his changes.
  2. There is a conflict because the file for “Active Contacts” has been modified since he last retrieved the latest sources.
  3. Developer B must reconcile the conflict. It is possible the capabilities of the source control system in use may aide this process; otherwise the following choices are all viable.
    • Developer B, through source control history, if available, can see that the developer A made the prior change. Through direct communication they can discuss each change. Then developer B only has to update his organization with the agreed resolution. He then exports, extracts, and overwrites the conflicting file and submits.
    • Allow source control to overwrite his local file. Developer B packs the solution and imports it into his organization, then assesses the state of the view and re-customizes it as necessary. Next, he may export, extract, and overwrite the conflicting file.
    • If the prior change can be deemed unnecessary, developer B allows his copy of the file to overwrite the version in source control and submits.

To me it seems this will require a lot of manual intervention for the changes to merge.. which seems not too ideal.

Wondering if anyone can share some ideas on what should be the best practice for multiple developers to work on Single CRM instance where each developer is supposed to customize components and plug-ins? We are planning to use Git as ALM, and Solution Packager to decompose a solution so that we can track XML files in the Git.

Any help on this will be much appreciated.

回答1:

I feel this is one those areas where CRM still makes life difficult, and provides only limited tooling and support.

In my experience, its just easiest and most practical for everyone to do all their customistaion and configuration work in CRM, and forgot about 'normal' source control. Having to import and export solution files can be a very slow process which will drive you mad. Editing solution files outside of CRM is a mine field you will want to avoid. When working on a single CRM instance no merging is required, as everyone can immediately see each others changes. In my experience generally this process will just add overhead which can normally be avoided.

Doing an export to source control regularly (e.g. middle of the night) is still sensible so you have a backup if things go wrong.

You can also still source control all your source code normally, e.g. plugin code.

Also the example you noted above involves the developers working on multiple CRM instances (e.g. each developer has their own CRM development instance), not a single CRM instance as you mention.