— Ryan McCullough, Staff Engineer
Technically speaking, CQ5 IS MVC, just a form that seems to be unfamiliar to most MVC developers. I think that most people find CQ5’s architecture “too coupled” to call it MVC. The biggest complaint I hear is that they would like the data more decoupled from the rendition. Regardless, Sling provides the controller, CRX provides the model, and JSP’s/Scripts (ecma, etc) provide the view.
— Michael Kelleher, Technical Lead
Adobe CQ5’s architecture has an overall MVC based approach, however the foundation components do a poor job of following MVC based best practices. In CQ5 the Sling Resource Resolver and default Sling/CQ Servlets provide the controllers, the Resources and ValueMaps provide the Models and the Sling Scripting support provides the Views as JSPs or other scripting files.
Project teams and CQ developers should attempt to follow MVC practices when developing on CQ5 by avoiding business logic in their JSPs, putting business logic in OSGi Services and leveraging new tools such as the upcoming Sling Proxy, to create the models.
— Daniel Klco, Technical Lead