Jun 6, 2012

Top 5 Force.com Summer '12 Features

Since Summer '12 will hit production orgs this week, I decided to list my favorite new development-related features in this release. I like these particular features because I either needed them in the past (and had to find workarounds instead) or feel that the new feature substantially improves current functionality. This is a very short list of features, just things that made me happy. For the complete list, download the release notes or check out the various release videos.

Update: see some more things I like in Summer 12 in this later post. 

Multi-relationship Activities
Did you ever go to an event and meet only one person? Until the addition of the new "Shared Activities" feature, you could only associate one contact to a specific activity. This is not really a Force.com feature but it will definitely change how I program around tasks and events. For as long as I've been working on Salesforce, I've always tried to make it less hierarchical and more relational. The addition of the new "Shared Activities" feature plugged a big hole and should allow for much more streamlined tracking. This is a good start - I hope that in time, Salesforce would create a more dynamic association to activity by as many record as needed and to any type of object. Note that this feature is not turned on automatically - you have to got to Activity Settings and select "Allow Users to Relate Multiple Contacts to Tasks".

Offset SOQL Statement is GA
If you create list components as much as I do, you can probably appreciate this new feature. This will help with list paging as well as give new ways to work around limitations of large fetches. More detail here.

Lookup Fields Improvement
This is a great little update. First, you can now specify whether a lookup field is required or not, which was not possible previously. And Second, you can also select from two new options to handling the record on parent deletion - either restrict parent deletion if a lookup relationship exists or cascade delete like master-detail relationship. This update will work well in the cases that you want to cascade deletes but don't want to make the lookup required. More detail here.

Package Install Handlers
Managed packages will now have the ability to include Apex code that runs after install, uninstall or upgrade. This is a great feature for those of us who are building AppExchange apps because until now, you had to wait for a user action to make org or user-specific configurations. More detail here.

Metadata REST API Pilot
Although this new API is going to be very limited (read only), I am excited about its potential. I think it will enable developers to build new and better development tools as alternatives to the Eclipse plugin and the online development interfaces, none of which are great to work with. It may also be an easier way for app developers to perform administration and configuration tasks from outside salesforce. More detail here.

Update: see some more things I like in Summer 12 in this later post.