Apex is a development platform for building software as a service (SaaS) applications on top of Salesforce.com's customer relationship management (CRM) functionality. Apex allows developers to access Salesforce.com's back-end database and client-server interfaces to create third-party SaaS applications. Apex includes an application program interface (API) that developers can use to access user data on Salesforce.com. This API allows developers to use common SaaS components, like Web widgets or a multi-tenant database, without the need to develop much of the infrastructure traditionally associated behind SaaS programs.
Apex applications are usually hosted and run directly from Salesforce.com's servers. No installation on a user's local PC is necessary because of this hosting. A user simply purchases a given Apex program through AppExchange, Saleforce.com's Web portal for add-ons to CRM. The user is then able to access the program through the standard interface. Once created, an application can be published for public use or kept private, for instance as a proprietary add-on.
The Apex platform consists of three tools, Builder, API and Code.
- Apex Builder is an on-demand component that allows easy, drag-and-drop customization with a limited set of features. Apex Builder applications are relatively easy to create but must draw on a limited, pre-defined set of interface elements and business logic algorithms.
- Apex API is a method of retrieving raw data from Salesforce.com's servers. The API is used by programs that are external to Salesforce.com, like Java applications, that need access to information on a client's Salesforce.com account.
- Apex Code is a fully featured programming language that is executed on Salesforce.com's servers. Apex Code has built-in methods for accessing user data. The language was made available to developers in Salesforce.com's Winter '07 edition. Apex Code offers both flexibility in developing for the Apex API while a reduction in the number of calls between server and client. While Apex API programs must communicate with the Salesforce.com server each time they access or record data, Apex Code applications handle these transactions natively, only requiring client-server communication when taking user input and displaying the end result.
In April 2007, Saleforce.com announced the Salesforce.com Platform Edition. This version lets users access Apex applications without subscribing to the company's core CRM product.