In this article, we will look at creating our own custom include folder in Sitecore to avoid the ugliness of the folder/file structure that comes with a Sitecore installation and all of its modules.
Previously, I covered Managing Commerce Configuration to Align with Helix Principles, however this approach was overly complex and not really developer friendly. Since then I have concluded that the simpler approach would be leave the "custom" folder for the Sitecore integrations and create a dedicated custom folder outside of the "custom" for solution specific custom configurations.
Added benefits to this approach include:
- When performing an upgrade, a new or updated configuration will not override your custom configurations based on load order.
- You won't need to revisit the Layers.config file as potentially required with my previously documented approach.
- For local development, you can comfortablely delete the dedicated custom folder and redeploy, avoiding any stale custom configurations from your current build.
All that is required for this approach is to add the new custom folder to Layers.config and ensure the custom solution configuration files are placed in the custom folder accordingly.
... <layer name="Custom" includeFolder="/App_Config/Include/"> <loadOrder> <add path="Foundation" type="Folder" /> <add path="Feature" type="Folder" /> <add path="Project" type="Folder" /> </loadOrder> </layer> <layer name="Custom_Include" includeFolder="/App_Config/Custom_Include/"> <loadOrder> <add path="Foundation" type="Folder" /> <add path="Feature" type="Folder" /> <add path="Project" type="Folder" /> </loadOrder> </layer> ...
Add the custom folder after the "Custom" layer entry and include the "Foundation", "Feature", and "Project" folders to manage configuration files using Helix principles.
No longer will you need to fight for configuration priority over the platform's standard configuration files or soil your solution with 'zzz' prefixed patch files.