Documentation Version
Winter '16 (API version 35.0)
  • Winter '16 (API version 35.0) 35.0
  • Summer '15 (API version 34.0) 34.0
  • Spring '15 (API version 33.0) 33.0
  • Winter '15 (API version 32.0) 32.0
  • Summer '14 (API version 31.0) 31.0
  • Spring '14 (API version 30.0) 30.0
  • Winter '14 (API version 29.0) 29.0
  • English

Introducing Visualforce

Over the past several years, Salesforce has created a comprehensive platform for building on-demand applications. Like other sophisticated application development platforms, the platform offers separate tools for defining:
  • The structure of the data—that is, the data model
  • The rules that detail how that data can be manipulated—that is, the business logic
  • The layouts that specify how that data should be displayed—that is, the user interface


Splitting up application development tools based on whether they affect the data model, business logic, or user interface is also known as the Model-View-Controller (MVC) application development pattern—the Model is the data model, the View is the user interface, and the Controller is the business logic.

While the tools for building the data model and business logic for applications are powerful solutions that run natively on platform servers, the existing tools for defining user interfaces have had certain limitations:
  • Page layouts, the point-and-click tool that allows application developers to organize fields, buttons, and related lists on record detail pages, do not provide much flexibility in how sets of information are displayed. Fields must always appear above related lists, buttons must always appear above fields, and s-controls and custom links can only be placed in particular areas.
  • S-controls, the tool that allows application developers to display custom HTML in a detail page or custom tab, provide more flexibility than page layouts, but:
    • Execute from within a browser, causing poor performance if displaying or updating values from more than a few records at a time
    • Do not provide an easy way to give custom user interface elements the same look-and-feel as standard Salesforce pages
    • Require developers to enforce field uniqueness and other metadata dependencies on their own


    Visualforce pages supersede s-controls. Organizations that haven’t previously used s-controls can’t create them. Existing s-controls are unaffected, and can still be edited.

For these reasons, Salesforce has introduced Visualforce, the next-generation solution for building sophisticated custom user interfaces on the platform.