Here are my notes from today’s Salesforce webinar “Summer ‘13 Developer Preview’ (slides here) as well as the Summer ‘13 release notes (all 250+ pages). As with my previous post for Summer ‘13 for Admins, the following is not the entire list of changes, just the ones that seem most relevent to my clients and colleagues.
- Developer Console – There is an extensive UI overhaul as of Summer ‘13 which is aimed to make accessing features easier for development, testing, and investigation. There is finally code-completion in the source code window. Here is a link to the Developer Console webinar recording going into details of all the changes.
- Custom Fields Security defaults to ON – This is a great time-saving feature, but as an Admin or Developer, you need to be aware that All Profiles will be able to see Custom Fields by default when they are created. Take a minute to understand the intent of each new custom field as you create it so confidential data, or experimental fields, are not exposed to unexpected Users.
- API Endpoint Changes – If you are calling into Salesforce from an external platform using the Salesforce API, you should already be using the URL returned from the login() method. If you’ve hard-coded the URL anywhere in your code, you will be effected by this change. Here is the direct extract from the Summer ‘13 Release Notes:
Prior to Summer ’13, API endpoints for web services used a hostname of the form instance-api.salesforce.com. API endpoints now use a hostname of the form instance.salesforce.com. An example server endpoint URL from a SOAP API connection might look like:
https://na1.salesforce.com/services/Soap/c/27.0/00DU0000000Q4f0.
If you have any code that uses a hard-coded API endpoint, you’ll need to update this code. We recommend never hard-coding the API endpoint and instead using the endpoint returned in the response to your initial connection to Salesforce. For example, a SOAP API login() call returns a server URL endpoint that you can use for subsequent SOAP API calls.
- New Data Import Wizard – This is a Pilot of a new Import Data Wizard. A new UI, and improved features should be interesting to look at. Don’t worry, the existing Import Wizards are still available.
- Sandbox Refresh Changes – For all sandboxes, any Custom Settings defined and populated in the Production org, will be refreshed automatically into the Sandbox so you no longer have to manually recreate them after each refresh. Also, for Full Copy Sandboxes, you will be able to define templates to describe which data you want copied during a refresh. This will make refresh times much quicker for orgs with large Production data sets.
- Test Methods only allowed in Test Classes – As of API 28.0 (Summer ‘13), test methods must reside in their own class instead of being part of the business logic class. For example, prior to Summer ‘13, an Apex page controller class might have a set of testmethods at the bottom to exercise the controller. As of Summer ‘13, these testmethods must be moved into a test class, completely separating the tests from the business logic. Apex written on prior API (27.0 and earlier) will continue to work, but when they are changed to 28.0 or later, this new restriction applies. In case you’re worried about it, Salesforce also introduced a new annotation called @TestVisible so you can mark non-public class members as visible to Test methods so they can be referenced in the test class the same way they could be accessed when the testmethods were part of the business logic class.
@TestVisible private Integer recordNumber = 0;
There are many other Developer-focused changes coming in Summer ’13. Check out the full Release Notes here. And Google ‘Salesforce Summer 13’ to see posts from other Salesforce Consultants to best understand what’s in it for you and your org.
And if you’re wondering when Summer ’13 will be available for you, jump over to trust.