'Best practices to organize repository structure for Dynamics 365 CRM Workflows/Plugins/Assemblies
What would be optimal way to set up repository structure for CRM (Dynamics 365) project that should contain advanced features that are being implemented by Workflow Activity/Plugin code?
Would it be wise to have one repository for whole solution and inside, there would be separate projects for each Entity that should contain Workflow Activity or Plugin?
Good points to consider:
- Building debug/release assemblies (.dll)
- Updating Workflow Activity/Plugin via Plugin Registration Tool
- Any limitations for pipelines
- Maintainability of these Workflow Activities / Plugins
Solution 1:[1]
The way we manage our repositories changes as the tooling evolves, and is highly dependent on personal preference.
My approach is to store everything related to Dynamics/Power Platform in a single GIT repository, and focus on grouping items based on Power Platform solutions.
- The repository will have a root folder for each Power Platform solution
- Each solution folder will contain the source for web resources, plugins and custom workflow activities for that particular solution
- Usually we export and unpack the solution from Dynamics/Power Platform and store in this folder (using the Power Platform CLI)
- We usually store scripts specific to this solution in this folder (e.g. DevOps scripts).
We usually then have another root folder to store the generic DevOps scripts
For example:
- MyRepoName (GIT repository)
- Build
- SolutionDeploy.ps1
- Solution1
- Earlybound
- Earlybound.cs
- Plugins
- PostCreateAccount.cs
- Web Resources
- Contact
- information.ts
- Contact
- Workflows
- ConcatString.cs
- package
- Solution1_unmanaged
- Solution1_managed
- Scripts
- Config.ps1
- Earlybound
- Solution2
- ...
- Build
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Corey Sutton |
