Your SlideShare is downloading. ×
Summer '14 Release Developer Preview
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Summer '14 Release Developer Preview


Published on

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 developers

Recommended Resources:

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Are you going to dreamforce this year? ADD DEVELOPER DISCOUNT CODE TO DF SLIDE
  • The interface itself allows us to introduce logic when a queue of objects is being run.

    POTENTIAL DEMO: CleanUpRecords
  • They should create a brand new DE org if they have not done so recently. They should not use a Trial, Sandbox or Production org.

    Emphasize our DE orgs are free and do not expire (they are not product trials)
  • Transcript

    • 1. Summer ‘14 Developer Preview June 12, 2014
    • 2. #forcewebinar Speakers Joshua Birk Developer Evangelist @joshbirk
    • 3. #forcewebinar Speakers Kari Hotchkiss Senior Quality Engineer @karihotchkiss Skip Sauls Director, Product Management @skipsauls
    • 4. #forcewebinar Safe Harbor Safe 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, 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- products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of, 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., inc. assumes no obligation and does not intend to update these forward-looking statements.
    • 5. #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!
    • 6. #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
    • 7. #forcewebinar Agenda  Salesforce1 Updates  Canvas Updates  Apex Updates  Visualforce Updates
    • 8. $50,000 in prizes New York | Bangalore | Los Angeles | London FREE EVENT SALESFORCE1 PLATFORM SUMMER HACKATHON SERIES #salesforcedevs
    • 9. Friday Weekly webinar series
    • 10. October 13-16, 2014 • San Francisco, CA $899 DEVELOPER DISCOUNT CODE: D14DVLPR #devzone
    • 11. #forcewebinar Salesforce1 Updates
    • 12. #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.
    • 13. #forcewebinar Approvals in Salesforce1
    • 14. #forcewebinar Canvas in Mobile Cards and Page Layouts
    • 15. #forcewebinar Canvas Updates
    • 16. #forcewebinar Canvas – Summer ’14 Kari Hotchkiss Senior Quality Engineer @karihotchkiss
    • 17. #forcewebinar Canvas as a Page Layout Item Embed 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
    • 18. #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
    • 19. #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
    • 20. #forcewebinar Demo Page Layout Item, Record Object, Apex Lifecycle Handler
    • 21. #forcewebinar Salesforce1 - Layouts and Mobile Cards Location Embed 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
    • 22. #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)
    • 23. #forcewebinar Demo Canvas in Salesforce1
    • 24. #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”
    • 25. #forcewebinar Demo User Approved Signed Request Apps
    • 26. #forcewebinar Apex Updates
    • 27. #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.
    • 28. #forcewebinar Batchable Interface global 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 } }
    • 29. #forcewebinar Flex Queues
    • 30. #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.
    • 31. #forcewebinar Custom Future Limits Modifier @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).
    • 32. #forcewebinar @future(limits='2xHeap') public static void myFutureMethod() { // Your code here } Setting @future limits
    • 33. #forcewebinar Visualforce Updates
    • 34. #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
    • 35. #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
    • 36. #forcewebinar function addUpdateContact(e){ var record = new RemoteObjectModel.Contact({…}); if (cId) { record.set('Id', cId); } record.upsert(updateCallback); } Code Sample - upsert
    • 37. #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
    • 38. #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
    • 39. #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
    • 40. #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
    • 41. #forcewebinar Other Visualforce Updates  API versioning for  Salesforce CSS and JS optimization
    • 42. #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
    • 43. #forcewebinar Now Generally Available  Chatter Files REST API  Multiple Records and Fields in Workflow  Search Suggested Queries REST API  Analytics Dashboards API
    • 44. #forcewebinar Resources   
    • 45. #forcewebinar Next Steps  Get a Pre-Release Org –  Download the Release Notes –
    • 46. #forcewebinar Free Developer Environment
    • 47. #forcewebinar Agenda Tuesday, June 17th Wednesday, June 18th 9am – 10.45 PT Sales Cloud 9am – 10.45 PT Service Cloud 11.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 –
    • 48. #forcewebinar Survey Your feedback is crucial to the success of our webinar programs. Thank you! #forcewebinar
    • 49. #forcewebinar Q & A #forcewebinar Your feedback is crucial to the success of our webinar programs. Thank you!