Activity Forums Salesforce® Discussions Difference between controller and extensions in Salesforce?

  • Saurabh

    Member
    April 28, 2017 at 1:51 pm

    Hi Suraj

    A custom controller is an Apex class that implements all of the logic for a page without leveraging a standard controller. Use custom controllers when you want your Visualforce page to run entirely in system mode, which does not enforce the permissions and field-level security of the current user.

    A controller extension is an Apex class that extends the functionality of a standard or custom controller. Use controller extensions when:You want to leverage the built-in functionality of a standard controller but override one or more actions, such as edit, view, save, or delete.
    You want to add new actions.
    You want to build a Visualforce page that respects user permissions. Although a controller extension class executes in system mode, if a controller extension extends a standard controller, the logic from the standard controller does not execute in system mode. Instead, it executes in user mode, in which permissions, field-level security, and sharing rules of the current user apply.

    Hope it may help:

  • shariq

    Member
    July 24, 2017 at 10:54 am

    Hi Suraj,

    There are 3 types of controller :-

    Standard Controller :-

    These are provided by the platform so you can produce Visualforce pages without writing code. You'd use these when you have a singe object to manipulate. It provides a save method to allow you to persist changes. There's a variant of this that handles a collection of records - the standard list controller.

    Custom Controller :-

    This is written in Apex and requires you to write code for any behaviour you need. You'd use these when your page isn't dealing with a main object - e.g. A launch pad that can take you to a number of different sub pages.

    Extension Controller :-

    This provides additional functionality to a controller - either a standard controller (e.g to manipulate child records along with a parent) or a custom controller (this is often overlooked and is a way to provide common functionality across a number of pages).

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos