Question 1
A development team is implementing a multi-tenant Sitecore solution following Helix principles. They have a 'Foundation.Common' module providing a base page template and a 'Feature.News' module with a 'News Article' template inheriting from the base page. The 'Project.MainWebsite' layer uses these templates. During a code review, it's noted that the 'Feature.News' module directly references a rendering from a 'Feature.SocialSharing' module to display share buttons. According to Helix dependency rules, what is the most appropriate way to resolve this architectural violation?
Answer and explanation
Correct answer: B
This is the correct Helix approach. Feature modules should not depend on each other directly. By using a placeholder, the 'Feature.News' module remains independent. The 'Project' layer, which is allowed to reference multiple Feature modules, is responsible for orchestrating how features are combined on a page. This maintains loose coupling and adheres to the Stable Dependencies Principle.