Like the Visualforce use of the Model View Controller (MVC), Lightning Components also support SOC by splitting up the implementation of the component into several distinct source files that each have their own concerns. As Lightning Components are implemented on the client side, a component's various source files represent a way to implement separation of concerns within the HTML, CSS, and JavaScript code you write.
Lightning Components can be developed using two frameworks, the original Aura-based framework and the latest HTML5 web standard base framework. These are known as Lightning Web Components (LWC) and Lightning Aura Components.
LWCs offer greater alignment with the modern web programming standards that have emerged since the Aura-based framework was first created by Salesforce. They are recommended as they provide broader access to existing skills and thus existing knowledge. The following sections include a summary of both in terms of SOC, though further samples throughout the book will focus on the latest LWC framework.
In either framework, the Lightning Components client-side controllers can communicate with an Apex Controller class via the @AuraMethod annotation, and thus access classes implementing your share application business logic, as shown in the preceding diagram.