Welcome to the Summer '09 Release page for developers. Here is where you will find the latest information on what's new and hot for developers in the Summer '09 release.

You can start exploring and using these features right now - they're live!

This page provides pointers to the critical resources, including the release schedule, as well as a description of many of the new platform features.


About the Summer '09 Release


Reference Guides

Versions of the Reference Guides for Summer '09 can be found on the Documentation page:

New and Updated Features

Here is a list of many of the new and updated features in the Summer '09 release. For all the details, see the release notes.

Apex Enhancements

A number of small changes have been made to Apex Code itself, and to the builder environment.

  • Apex Triggers List - You can now view a list of all triggers defined for your organization by going to Setup | Develop | Apex Triggers.
  • Callout SOAP Response Limit Increased - The limit on the size of a SOAP request or response on an Apex callout has increased to 1MB.
  • New Bitwise Exclusive-Or Operator - A bitwise exclusive-or operator is now supported (^=), and the bitwise operators &,| and ^ now support Boolean values.
  • New Graphical Representation of Code Coverage - The results returned from both Run Test and Run All Tests in the builder user interface have been improved. You can collapse and expand every section. In addition, there is a new code coverage section. This section lists all the classes and triggers in your organization and the percentage of lines of code in each class and trigger that are covered by tests. If you click on the coverage percent number, a page displays, highlighting all the lines of code for that class or trigger that are covered by tests in blue, as well as highlighting all the lines of code that are not covered by tests in red. It also lists how many times a particular line in the class or trigger was executed by the test. The following image shows this code coverage highlight in action:

Jax test.jpg

Visualforce Enhancements

A number of small changes have been made to Visualforce, including minor changes to a few standard components (not listed here). In addition, you can now use Visualforce in more places on, such as dashboards:

  • Object-Level Help Using Visualforce Pages - Object-level help overrides the Help for this Page links for any custom object with your own custom help content. This content can now be contained in a Visualforce page.
  • Visualforce Samples Updated - The samples within the Component Reference Guide, which is available on every Visualforce page and in the Visualforce Developer's Guide, have been updated. Examples for each component have been updated to provide more information, more functionality, and more complexity.
  • Versioned Visualforce Pages and Components - Visualforce pages and components are now versioned against the Salesforce API. When a page or component has a Salesforce API version number, the functionality of older Visualforce elements does not change as new implementations are introduced.
  • Visualforce Support Within Dashboards - You can now create Visualforce pages that run as dashboard components. When modifying a dashboard to add components, you'll see a new Visualforce option, which lets you select a Visualforce to include.

Formulas and Workflow & Approvals

  • Enhanced Declarative Logic for Pick Lists - As the next step in the effort to kill ISPICKVAL, you can now use the TEXT function to convert a picklist value to text in Formula Fields and Workflow Field Updates. As a result, you can build more powerful business logic based on picklist values, without code. In addition, you can now use the new INCLUDES function to determine if any value selected in a multi-select picklist field equals a value you specify. The ISCHANGED, ISNULL, and PRIORVALUE functions can now reference multi-select picklists in formulas too.
  • Encoding Functions in Formulas - Four new encoding functions (HTMLENCODE, JSENCODE, JSINHTMLENCODE and URLENCODE) are available that make it safe to insert data that you do not control, such as merge field values and URL parameters retrieved with the $Request global merge field, in your custom buttons, links and Visualforce pages. The encoding functions replace or escape characters that are reserved or unsafe in HTML, JavaScript, and URLs, which ensures the inserted data is valid and helps protect against cross-site scripting (XSS), a security vulnerability in web applications.
  • Watch Demo small.gif
    Process Visualizer - A graphical approval process viewer is available for beta testing. You can use the process visualizer to display a flowchart of each saved approval process, document the decisions you reached when the approval process was designed, easily determine the specific actions to take when a record is approved, rejected, recalled, or first submitted for approval and more. Here's a snapshot of the process visualizer in action:

Jax approve.jpg

Packaging and Distribution

  • Watch Demo small.gif
    Application Distribution: Versioning, Tracking and Deprecation Support - You can now evolve your applications while maintaining full backwards compatibility. Ever wanted to make a drastic behavior changes in Apex while ensuring existing integrations continue to work? Now you can with the new versioning capabilities available to partners using managed packages. Now the following components can integrate with a specific version of a managed package: Apex classes, triggers, Visualforce Pages, Visualforce Components, Visualforce Email Templates, and the Enterprise and Partner API. With the new Apex deprecation capabilities, any partner using a managed package can stop distribution of any global Apex identifier such as classes, methods, and variables. In addition, we’ve also simplified how package versions are managed by introducing a formal bookkeeping process. Now each package upload is carefully identified with a unique version and upload number. This capability greatly reduces the administration overhead required to manage changes and uploads.

This feature is available in all Developer Edition environments. IDE

  • Eclipse 3.4 - The latest IDE now supports the latest version of Eclipse - version 3.4.
  • Metadata - The IDE can work with the new metadata types available in the Summer '09 release such as Analytic Snapshots. Existing projects can upgrade to Summer '09 using the Project Upgrade Wizard.

Email Services

  • Watch Demo small.gif
    Generic "From" Email Address Support - You now have the ability to setup generic email addresses that can be used by all of the users in an org. This allows users to send emails from email aliases such as or In addition, these addresses can be linked to a user profile to control who has access to them and can use them. A new, optional argument, OrgWideEmailAddressId, has been added to the SingleEmailMessage API object. Profile Enhancements

  • Profile Sharing Overrides - Administrators can now see which profiles may override individual object sharing settings reducing the time it takes to identify these security exceptions, letting you more effectively manage exceptions to sharing settings.
  • Profile Change Tracking - Administrators and auditors may now have full accountability of changes made to a profile. You can track who made changes, when those changes were made, and what those changes were. For example, an auditor can now see who provided read/write access to the Salary field for the Standard User Profile on a specific date. Mobile

  • Navigate List Views with more clarity on the iPhone - List Views have been enhanced to support custom list views (configured in the Mobile Admin Console and displays 2 fields of data), additional standard list views (displays 4 fields of data for some opportunity and other list views), and a calendar-like event view. The events tab now gives you the option of seeing a date-delimited list view of events or using a calendar interface to quickly tap/swipe your way to the date of interest.
  • Junction Objects support on the iPhone. Standard junction objects as well as Custom Junction Objects are supported.
  • Visualforce Mobile 2.0 - Create custom mobile links to launch web page or Visualforce page in the embedded browser. You can pass record data such as record id as a parameter to the page. Also, leverage a new global JavaScript library to ease access to device location and enable access to new Visualforce Mobile "triggers"; you can now cause the native client to grab updated or newly created records – useful when creating a form in Visualforce.
  • Find related lists at the bottom of the detail page on the Blackberry. You no longer need to dig through the menu to find them, although they will still be there.

Previous Release

Check out the previous release, Spring 09.