Top Banner
Summer ‘14 Developer Preview June 12, 2014
49

Summer '14 Release Developer Preview

Jan 26, 2015

Download

Technology

Description:

Summer ‘14 offers exciting new features for developers. Join Developer Evangelist Josh Birk to get some highlights on the new release, including changes to the Salesforce1 app and Apex. Also on the webinar will be Skip Sauls of the Visualforce team to show updates to the recently added Remote Objects, as well as Kari Hotchkiss to demo some of the enhancements that Canvas will be seeing this season.

Key Takeaways:

::Get highlights of the upcoming Summer ‘14 release
::Dive into how these changes will effect features like Apex and Visualforce
::See how you can preview these features as the release nears

Intended Audience:

This webinar is geared towards existing Force.com developers

Recommended Resources:

https://developer.salesforce.com/en/events/webinars/summer_2014_release
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Summer '14 Release Developer Preview

Summer ‘14 Developer PreviewJune 12, 2014

Page 2: Summer '14 Release Developer Preview

#forcewebinar

Speakers

Joshua Birk

Developer Evangelist@joshbirk

Page 3: Summer '14 Release Developer Preview

#forcewebinar

Speakers

Kari Hotchkiss Senior Quality Engineer@karihotchkiss

Skip SaulsDirector,

Product Management

@skipsauls

Page 4: Summer '14 Release Developer Preview

#forcewebinar

Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995:

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 5: Summer '14 Release Developer Preview

#forcewebinar

Go Social!

@salesforcedevs / #forcewebinar

Salesforce Developers

+Salesforce Developers

Salesforce Developers

Salesforce Developers The video will be posted to YouTube & the webinar recap page

(same URL as registration).

This webinar is being recorded!

Page 6: Summer '14 Release Developer Preview

#forcewebinar

Have Questions?

Don’t wait until the end to ask your question! – Technical support will answer questions starting now.

Respect Q&A etiquette– Please don’t repeat questions. The support team is

working their way down the queue.

Stick around for live Q&A at the end– Speakers will tackle more questions at the end, time-

allowing.

Head to Developer Forums– More questions? Visit developer.salesforce.com/forums

Page 7: Summer '14 Release Developer Preview

#forcewebinar

Agenda

Salesforce1 Updates

Canvas Updates

Apex Updates

Visualforce Updates

Page 8: Summer '14 Release Developer Preview

$50,000 in prizesNew York | Bangalore | Los Angeles | London

FREE EVENT

SALESFORCE1 PLATFORMSUMMER HACKATHON SERIES

http://summerofhacks.com

#salesforcedevs

Page 9: Summer '14 Release Developer Preview

Force.com FridayWeekly webinar series

Page 10: Summer '14 Release Developer Preview

October 13-16, 2014 •

San Francisco, CA

$899 DEVELOPER DISCOUNT CODE:D14DVLPRhttp://bit.ly/

dfweb14

#devzone

Page 11: Summer '14 Release Developer Preview

#forcewebinar

Salesforce1 Updates

Page 12: Summer '14 Release Developer Preview

#forcewebinar

Actions no longer tied to Chatter

Without Chatter, you will still have Salesforce1 specific actions.

You just won’t have the standard Chatter actions such as Post, File, Link, Poll, and Thanks.

Page 13: Summer '14 Release Developer Preview

#forcewebinar

Approvals in Salesforce1

Page 14: Summer '14 Release Developer Preview

#forcewebinar

Canvas in Mobile Cards and Page Layouts

Page 15: Summer '14 Release Developer Preview

#forcewebinar

Canvas Updates

Page 16: Summer '14 Release Developer Preview

#forcewebinar

Force.com Canvas – Summer ’14

Kari HotchkissSenior Quality Engineer @karihotchkiss

Page 17: Summer '14 Release Developer Preview

#forcewebinar

Canvas as a Page Layout ItemEmbed your Canvas App

directly in a Page Layout without

using a Visualforce Container

Embed your Canvas App directly in a

Page Layout without using a

Visualforce Container

Page 18: Summer '14 Release Developer Preview

#forcewebinar

Record Attachment

The fields requested will be returned in the “record” object

in the signed request and context

You can set the record fields in the Apex Lifecycle handler

and/or the Visualforce component

You can set the record fields in the Apex Lifecycle

handler and/or the Visualforce component

Page 19: Summer '14 Release Developer Preview

#forcewebinar

Apex Lifecycle Handler and Canvas URL Override

Using an Apex Lifecycle Handler,

you can override the default behavior of the signed request

and context

You can use custom logic to

override the default Canvas

URL

Page 20: Summer '14 Release Developer Preview

#forcewebinar

DemoPage Layout Item, Record Object, Apex Lifecycle

Handler

Page 21: Summer '14 Release Developer Preview

#forcewebinar

Salesforce1 - Layouts and Mobile Cards LocationEmbed your Canvas

App directly in a Page Layout or as a

Mobile Card

Canvas Apps can be

displayed in Record Detail and in Mobile Cards in S1

Canvas Apps can be displayed in

Record Detail and in Mobile Cards in

S1

Embed your Canvas App directly in a Page Layout or as a Mobile

Card

Page 22: Summer '14 Release Developer Preview

#forcewebinar

Salesforce1 - Orientation Event and Mobile Navigation Canvas Icons

Canvas apps can use their own logo, or the default Puzzle Piece

logo

Rotating your device sends an event letting the canvas app know which

orientation you are at (0, -90, or 90 degrees)

Page 23: Summer '14 Release Developer Preview

#forcewebinar

DemoCanvas in Salesforce1

Page 24: Summer '14 Release Developer Preview

#forcewebinar

User Approved Signed Request Apps

Your canvas app can then kick into an OAuth flow if a

signed request is not POST’ed. We will handle the decision on when to send the signed request

When managing your Canvas Apps, you can

now select the “Permitted Users” to “All users may

self authorize”

Page 25: Summer '14 Release Developer Preview

#forcewebinar

DemoUser Approved Signed Request Apps

Page 26: Summer '14 Release Developer Preview

#forcewebinar

Apex Updates

Page 27: Summer '14 Release Developer Preview

#forcewebinar

Flex Queues [PILOT] Submit batch jobs beyond the allowed limit of

five queued or active jobs.

Up to 100 batch jobs can be in the holding status.

When system resources become available, the system picks up jobs from the Apex flex queue and moves them to the batch job queue.

Page 28: Summer '14 Release Developer Preview

#forcewebinar

Batchable Interfaceglobal with sharing class WHUtil implements Database.Batchable<sObject>

{

global Database.QueryLocator start(Database.BatchableContext BC)

{ //Start on next context }

global void execute(Database.BatchableContext BC,

List<sObject>scope)

{ //Execute on current scope }

global void finish(Database.BatchableContext BC)

{ //Finish and clean up context }

}

Page 29: Summer '14 Release Developer Preview

#forcewebinar

Flex Queues

Page 30: Summer '14 Release Developer Preview

#forcewebinar

Custom Future Limits [PILOT]

Specify even higher values for these and for additional limits in future methods.

If you were exceeding a governor limit in your future method, or if you think a future method requires a higher limit, you can increase this limit for your future method.

Page 31: Summer '14 Release Developer Preview

#forcewebinar

Custom Future LimitsModifier

@future(limits='2xSOQL') Number of SOQL queries limit is doubled (400).

@future(limits='3xSOQL') Number of SOQL queries limit is tripled (600).

@future(limits='2xDML') Number of DML statements limit is doubled (300).

@future(limits='3xDML') Number of DML statements limit is tripled (450).

@future(limits='2xDMLRows')1 Number of records that were processed as a result of DML operations is doubled (20,000).

@future(limits='3xDMLRows')1 Number of records that were processed as a result of DML operations is tripled (30,000).

Page 32: Summer '14 Release Developer Preview

#forcewebinar

@future(limits='2xHeap') public static void myFutureMethod() { // Your code here }

Setting @future limits

Page 33: Summer '14 Release Developer Preview

#forcewebinar

Visualforce Updates

Page 34: Summer '14 Release Developer Preview

#forcewebinar

Visualforce Remote Objects Enhancments

Geolocation Support – Access geolocation fields

Upsert Operation – Shortcut for update/create

Orderby Condition – Sort order for queries

Where Condition – New Operators: ne, lte, gte

Remote Method Overrides – Replace default behavior

Page 35: Summer '14 Release Developer Preview

#forcewebinar

<apex:remoteObjects jsNamespace="RemoteObjectModel”> <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone,Email,MailingStreet” retrieve="{!$RemoteAction.ContactOverrideController.retrieve}”> <apex:remoteObjectField name="skipdev__Notes__c" jsShorthand="Notes"/><apex:remoteObjectField name="Location__Longitude__s" jsShorthand="Longitude"/> <apex:remoteObjectField name="Location__Latitude__s" jsShorthand="Latitude"/> </apex:remoteObjectModel></apex:remoteObjects>

…var c = new RemoteObjectModel.Contact();c.retrieve({where: { Id: { eq: id } } }, function(err, records) { var record = records[0]; var lat = record.get("Latitude”); var lng = record.get(”Longitude”) var latlng = new google.maps.LatLng(lat, lng); ….

Code Sample – Geolocation

Page 36: Summer '14 Release Developer Preview

#forcewebinar

function addUpdateContact(e){ var record = new RemoteObjectModel.Contact({…}); if (cId) { record.set('Id', cId); }

record.upsert(updateCallback);}

Code Sample - upsert

Page 37: Summer '14 Release Developer Preview

#forcewebinar

function getAllContacts() { var c = new RemoteObjectModel.Contact(); c.retrieve({ limit: 100, orderby: [ {FirstName: "ASC"}, {LastName: "ASC"} ], where: {FirstName: {ne: "Andy"} } }, function (err, records) { … } );}

Code Sample – orderby and where conditions

Page 38: Summer '14 Release Developer Preview

#forcewebinar

<apex:page controller="skipdev.ContactOverrideController">

<apex:remoteObjects jsNamespace="RemoteObjectModel”> <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone,Email,MailingStreet” retrieve="{!$RemoteAction.ContactOverrideController.retrieve}”> </apex:remoteObjectModel></apex:remoteObjects>

public class ContactOverrideController {

@RemoteAction public static Map<String, Object> retrieve(String type, List<String> fields, Map<String, Object> criteria) { Map<String, Object> result = RemoteObjectController.retrieve(type, fields, criteria); // Append to, transform, or otherwise modify the result object …. return result; }}

Code Sample – Remote Method Overrides

Page 39: Summer '14 Release Developer Preview

#forcewebinar

public with sharing class myControllerExtension implements Util {

private final Account acct; public Contact newContact {get; set;} public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); }

public PageReference associateNewContact(Id cid) { newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1]; newContact.Account = acct; update newContact; }}

Code Sample

Page 40: Summer '14 Release Developer Preview

#forcewebinar

Visualforce New PDF Pilot

Asynchronous Service– Non-blocking on app server

– Scalable

Webkit Based – More accurate rendering to PDF– CSS, JavaScript, Images

– Unicode, RTL

Demo

Page 41: Summer '14 Release Developer Preview

#forcewebinar

Other Visualforce Updates

API versioning for sforce.one

Salesforce CSS and JS optimization

Page 42: Summer '14 Release Developer Preview

#forcewebinar

Updated Governor Limits

Describe Limits Removed– Limits for all Apex describe calls have been removed for

all API versions. Describe calls include describes for sObjects, fields, field sets, child relationships, picklists, and record types.

Developer Edition API Limits– Updated from 5,000 to 15,000

Page 43: Summer '14 Release Developer Preview

#forcewebinar

Now Generally Available

Chatter Files REST API

Multiple Records and Fields in Workflow

Search Suggested Queries REST API

Analytics Dashboards API

Page 44: Summer '14 Release Developer Preview

#forcewebinar

Resources

http://developer.salesforce.com

http://developer.salesforce.com/releases

http://bit.ly/summer14prerel

Page 45: Summer '14 Release Developer Preview

#forcewebinar

Next Steps

Get a Pre-Release Org– http://bit.ly/summer14prerel

Download the Release Notes– http://developer.salesforce.com/releases

Page 46: Summer '14 Release Developer Preview

#forcewebinar

Free Developer Environment

http://developer.salesforce.com/join

Page 47: Summer '14 Release Developer Preview

#forcewebinar

Agenda

Tuesday, June 17th Wednesday, June 18th

9am – 10.45 PT Sales Cloud 9am – 10.45 PT Service Cloud11.30am – 1 PT Salesforce1 Mobile App 11.30am – 1 PT Chatter / CommunitiesJoin our Product Managers as they take us through their release highlights and demos and get the inside track on their plans for the rest of 2014.

Register here – http://bit.ly/SummerReleaseReadiness

Page 48: Summer '14 Release Developer Preview

#forcewebinar

Survey

Your feedback is crucial to the successof our webinar programs. Thank you!

http://bit.ly/Summer14Webinar

#forcewebinar

Page 49: Summer '14 Release Developer Preview

#forcewebinar

Q & A

#forcewebinar

Your feedback is crucial to the successof our webinar programs. Thank you!

http://bit.ly/Summer14Webinar