Spring '16 Lightning Update for ISVs (March 15, 2016)

45
Spring ’16 Lightning Updates for ISVs March 15, 2016

Transcript of Spring '16 Lightning Update for ISVs (March 15, 2016)

Page 1: Spring '16 Lightning Update for ISVs (March 15, 2016)

Spring ’16 Lightning Updates for ISVs

March 15, 2016

Page 2: Spring '16 Lightning Update for ISVs (March 15, 2016)

Hosted by: ISV Technical Evangelist Team

Meet Your Speakers

Rodrigo Reboucas Bill Mariani William Yeh Robert Sussland

Page 3: Spring '16 Lightning Update for ISVs (March 15, 2016)

Forward Looking Statements

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 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, 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 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-K for the fiscal year ended January 31, 2009 and our other filings. These documents 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 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 4: Spring '16 Lightning Update for ISVs (March 15, 2016)

What we plan to cover today

•  Partner Community Updates

•  Partner Alerts

•  Spring ’16 Lightning Feature Highlights

•  Lightning Inspector

•  Security Review for Lightning Components

•  Lightning Roadmap

•  Question & Answer

Page 5: Spring '16 Lightning Update for ISVs (March 15, 2016)

Partner Community

Partner Community •  Partner Alerts

•  News & Events

•  Ask questions

•  Share your best practices and insights

•  Collaborate with other partners

•  Webinar Replays

•  Pre-Release Details

For more information see: http://p.force.com/releases

Page 6: Spring '16 Lightning Update for ISVs (March 15, 2016)

Welcome to the Lightning Experience for ISVs Webinars   Watch the Replay of the Lightning Webinar Series

Defining Your Lightning Strategy as an ISV

Building and Releasing Components for ISVs

Migrating your Visualforce pages for Lightning Experience

For more information see: http://p.force.com/lightningready

Page 7: Spring '16 Lightning Update for ISVs (March 15, 2016)

100+ Lightning-Ready Apps LIGHTNING READY

For more information see the Lightning Ready Chatter Group

Page 8: Spring '16 Lightning Update for ISVs (March 15, 2016)

Q1 Feb/Mar/April

•  March 15 – Hanover Partner Event @ CeBIT March 14-18 – World Tour @ CeBIT

•  March 23 – Chicago Partner Forum March 24 – Chicago World Tour

•  April 6 – Boston Partner Forum April 7 – Boston World Tour

•  April 11 – Melbourne Partner Forum April 12 – Melbourne World Tour

•  April 14 – Amsterdam World Tour

•  April 28 – Washington DC World Tour

Q2 May/June/July

•  May 5 – Toronto World Tour

•  May 9 – Atlanta Partner Event May 10-12 – Connections

•  May 18 – London Partner Forum May 19 – London World Tour

•  May 24 – New York Partner Forum May 25 – New York World Tour

Pre-register for Dreamforce ’16 October 4 – 7 San Francisco, CA Salesforce.com/events

Upcoming Partner Events

Upcoming: Chicago Partner Forum Event | Boston Partner Forum Event

Page 9: Spring '16 Lightning Update for ISVs (March 15, 2016)

Partner Alerts

Page 10: Spring '16 Lightning Update for ISVs (March 15, 2016)

Recent Partner Alerts

  New Version of COA

  AppExchange Listing Functionality Changes

  New Version of LMA

  Checkmarx Scan Improvements

  Lightning Resources Access Check Message

  New Org Limit for Environment Hub

  Home Page Component Changes Update (Updated on December 18, 2015)

Alerts for Partners available in the Partner Community

For more information see: http://p.force.com/alerts

Page 11: Spring '16 Lightning Update for ISVs (March 15, 2016)

Access Level Enforcement in Lightning Components

Change

•  In order for Lightning Components, Events and Interfaces to be accessible outside of their namespace - including App Builder - they

should be defined with ACCESS = “GLOBAL”.

•  With Spring ‘16, we introduce access checks and display a warning in the browser console if you attempt to access a resource that

does not have ACCESS = “GLOBAL”.

•  In Summer ‘16 we will enforce access checks and prevent access to resources outside of their namespace altogether, unless these

have been defined with ACCESS = “GLOBAL”.

Who is Impacted by this Change?

•  Any partner building Lightning Component

Where to go for more information

•  https://developer.salesforce.com/docs/atlas.en-us.200.0.lightning.meta/lightning/access_intro.htm

Lightning Components, Events and Interfaces Access Warning

Page 12: Spring '16 Lightning Update for ISVs (March 15, 2016)

Spring ‘16 Lightning Feature Highlights

Page 13: Spring '16 Lightning Update for ISVs (March 15, 2016)

Environment Hub in LEX (GA) Feature Overview

●  Environment Hub available in Lightning

Experience

●  Available in: Enterprise, Performance, and

Unlimited Editions

Key Capabilities

●  Create/Manage Dev, Test, and Trial orgs in

new UI

●  Lightning Experience/Salesforce Classic.

Page 14: Spring '16 Lightning Update for ISVs (March 15, 2016)

Customize Left Nav in LEX Feature Overview

•  Significantly improved navigation •  Fully customizable navigation menus

Key Capabilities •  Quick access to items

•  Collapsible menu bar on left side of page

Value/Relevance to ISVs •  Admins can now customize the left nav to

highlight your App •  Creates navigation bars for profiles •  Lightning Page Tabs not Supported

Tailor the left hand menu to each business role and ensure focus on the most important records for each function

Page 15: Spring '16 Lightning Update for ISVs (March 15, 2016)

URL custom button and links in LEX and SF1

Feature Overview

•  Custom buttons and links that define their

content source as URL are now supported in

Lightning Experience and the Salesforce1

mobile app.

•  This feature was previously available in

Salesforce Classic only.

Value/Relevance to ISVs

•  This will help ISV apps containing these

buttons to become Lightning Ready.

Page 16: Spring '16 Lightning Update for ISVs (March 15, 2016)

Add VF pages to LEX nav bar Feature Overview

•  Add Visualforce Pages to the Lightning Experience

Navigation Menu

Key Capabilities

•  Customize the Lightning Experience navigation menu by

adding Visualforce tabs. This capability already exists in

Salesforce Classic and the Salesforce1 mobile app. Now

you can do it in Lightning Experience.

•  For details of how to customize the Lightning Experience

navigation menu, see Customize the Navigation

Experience for Lightning Experience Users elsewhere in

the release notes.

Value/Relevance to ISVs

•  Partners can now issue instructions to customer admins to

include VF pages in the LEX nav bar.

Page 17: Spring '16 Lightning Update for ISVs (March 15, 2016)

Person Accounts in LEX (Beta)

Feature Overview   Person accounts take the standard business-to-business account model and extend it to include business-to-consumer

sales, so you can capture information about individual people with whom you do business. This feature was previously unavailable in Lightning Experience.

Key Capabilities   With person accounts now available in Lightning Experience, Salesforce supports your sales process like never before.

This feature is available in both Lightning Experience and Salesforce Classic.

Value/Relevance to ISVs

  Relevant for ISVs using Person Accounts in their application

Page 18: Spring '16 Lightning Update for ISVs (March 15, 2016)

Lightning Component Tokens (Developer Preview) Feature Overview

  You can reuse design tokens throughout your Lightning components CSS resources. Tokens make it easy to ensure

that your design is consistent, and even easier to update as your design evolves.

Key Capabilities

  Standard Design Tokens

•  Salesforce exposes a set of “base” tokens that you can access in your component style resources.

  You can mix-and-match your tokens with the standard tokens.

  Using tokens available from force:base allow you to mimic the look-and-feel of the Salesforce Lightning Design System

(SLDS) in your own custom components.

  As the SLDS evolves, components that use the standard design tokens will evolve along with it.

Value/Relevance to ISVs

  ISVs developing Lightning Components should play around with this feature to see how we're progressing in terms of

supporting their branding and dev efforts.

To add the standard tokens to your org, you extend your org’s tokens bundle from the base tokens.

Page 19: Spring '16 Lightning Update for ISVs (March 15, 2016)

Styling and Branding Use Lightning Design System styles or create your own

• Use standard tokens in your components

• Create your own tokens

• Override standard tokens

• Brand your entire experience

Page 20: Spring '16 Lightning Update for ISVs (March 15, 2016)

Determine User Experience Context between Classic & Lightning

Feature Overview

  The User.UITheme and User.UIThemeDisplayed global variables and the

UserInfo.getUiTheme() and UserInfo.getUiThemeDisplayed() Apex utility

methods are improved to support the Salesforce1 mobile app and Lightning

Experience.

Key Capabilities

  These existing variables and system calls have expanded the range of return

values to support the new user experience contexts.

  These global variables and system calls can replace other, more fragile

methods of detecting the user experience context, such as testing for the

presence of the sforce.one

Value/Relevance to ISVs

  ISVs can now build robust dynamic code to detect which user experience the

customer is running and update the UI accordingly.

Possible return values include the following

Page 21: Spring '16 Lightning Update for ISVs (March 15, 2016)

Lightning App Builder - Desktop (Pilot) Feature Overview

  Editing Record Home - Open Pilot for DE Orgs •  Customize the layout of Record Homepages in LEX •  Rearrange standard components + standard/custom components on the

page.

•  Self-service enabled for DE orgs; closed pilot for other orgs

  Editing SFX Home - Limited Pilot •  Admins can customize the home screen of the Lightning Experience with

standard or custom Lightning Components.

  New Standard Component: Tabs - Open Pilot for DE Orgs •  Admins can now add and customize a tab set on a Lightning Experience

page. Simply drop the Tabs component onto a page and modify tab names, reorder, delete or even drop another component into a tab.

•  This component is available as part of the Edit Record Home Pilot.

Value/Relevance to ISVs •  This gives new possibilities for the ISVs to create components for their

customers that, in the future, can be added by customers admins to the

SFX Home and the Record Homepages.

Page 22: Spring '16 Lightning Update for ISVs (March 15, 2016)

Lightning Out (Beta)

Feature Overview

•  With the Spring ‘16 release, you can use Lightning Out (Beta) to

run your Lightning Components apps outside of Salesforce

Key Capabilities

•  Whether it’s a Node.js app running on Heroku, a department

server inside the firewall, or even SharePoint (yes, SharePoint),

build your custom app with Force.com, and run it wherever your

users are.

Value/Relevance to ISVs

•  ISV's can create components that can also be used to integrate

their SFDC App into other externally running platforms.

•  This will create new opportunities for the ISVs.

Your Lightning Component that surfaces inside another web application.

Page 23: Spring '16 Lightning Update for ISVs (March 15, 2016)

Lightning Inspector Available now on Google Chrome Web Store

Page 24: Spring '16 Lightning Update for ISVs (March 15, 2016)

Lightning Inspector

Feature Overview

•  Google Chrome DevTools extension that enables developers to

inspect Lightning Apps/Components

Key Capabilities

•  Enables developers to navigate the component tree, inspect

component attributes, and profile component performance. The

extension also helps you to understand the sequence of event

firing and handling.

Value/Relevance to ISVs

•  ISV's can use this plugin to get a better understanding of how

their app is performing.

Page 25: Spring '16 Lightning Update for ISVs (March 15, 2016)

Demo

Page 26: Spring '16 Lightning Update for ISVs (March 15, 2016)

Demo Recap Spring ‘16 Demo Highlights

  Lightning Inspector

  Navigation Menus

  Detect User Experience in Visualforce

  Design Tokens

Page 27: Spring '16 Lightning Update for ISVs (March 15, 2016)

Security Update for Lightning Components

Page 28: Spring '16 Lightning Update for ISVs (March 15, 2016)

Security Considerations In Classic, Custom Visualforce pages could be beautiful creations

but...

• All Custom

• Isolated in their own frame

• Everyone does whatever they want

• No capability for customers to deeply integrate page in

new ways

How do you build on this?

Page 29: Spring '16 Lightning Update for ISVs (March 15, 2016)

Security Considerations Why do Lightning Components work?

Contracts! People are going to reuse your creation because

• Everyone can play together

• Everyone fits together

Follow the contract - don’t be the “out of spec” building block that causes the structure to crumble!

You have the right to break your own code - But not anyone else’s!

Page 30: Spring '16 Lightning Update for ISVs (March 15, 2016)

Contracts: Encapsulation

Your component should self-contained   Don’t read or write from the DOM of other components   Don’t pollute Window or Document.    Please don’t try to change the JS runtime by adding polyfills/modifying DOM methods

 

Page 31: Spring '16 Lightning Update for ISVs (March 15, 2016)

Contracts: Encapsulation

Your component should self-contained   Don’t read or write from the DOM of other components   Don’t pollute Window or Document.    Please don’t try to change the JS runtime by adding polyfills/modifying DOM methods

Ex, in a controller or renderer: var  elems  =  $(‘my_class’);//  breaks  when  your  components  is  in  a  repeat  tag.  var  my_elems  =  $(cmp.getElement()).find(‘my_class’);  //  does  not  break  

Page 32: Spring '16 Lightning Update for ISVs (March 15, 2016)

Contracts: Interact with components via public interfaces

When interacting with other components, interact via their shape   Use cmp.get() or cmp.set() to update attributes   Use component or app events (component events are preferred)   Use exported methods (aura:method)   Don’t hack the framework by using undocumented APIs   Don’t invoke the helper of another component. Only invoke exported methods.

 

Page 33: Spring '16 Lightning Update for ISVs (March 15, 2016)

Contracts: Interact with components via public interfaces

When interacting with other components, interact via their shape   Use cmp.get() or cmp.set() to update attributes   Use component or app events (component events are preferred)   Use exported methods (aura:method)   Don’t hack the framework by using undocumented APIs   Don’t invoke the helper of another component. Only invoke exported methods.

Example, in a controller: var  another_cmp  =  cmp.find(‘foo’);  

another_cmp.helper.doSomething();  //breaks  component  API  another_cmp.exported_method();  //does  not  break  API  

Page 34: Spring '16 Lightning Update for ISVs (March 15, 2016)

Contracts: Framework Lifecycle

Respect the Framework Lifecycle   DOM is read only in a controller (and only read your own component’s DOM)   Do all DOM updates in a renderer (and don’t update another component’s  DOM)   Be careful to not update component state in a renderer   When interacting with the framework from outside the lifecycle, use getCallback()    To queue style changes in a controller, use $A.util.toggleClass(), or addClass(), removeClass()  

  Recommended: learn and use the expression language whenever possible  

Page 35: Spring '16 Lightning Update for ISVs (March 15, 2016)

Contracts: Framework Lifecycle

Respect the Framework Lifecycle   DOM is read only in a controller (and only read your own component’s DOM)   Do all DOM updates in a renderer (and don’t update another component’s  DOM)   Be careful to not update component state in a renderer   When interacting with the framework from outside the lifecycle, use getCallback()    To queue style changes in a controller, use $A.util.toggleClass(), or addClass(), removeClass()  

  Recommended: learn and use the expression language whenever possible Ex, in a controller: myelem.style.visibility="hidden";//creates  a  race  condition  $A.util.addClass(myelem,my_style);  //OK,  if  style  defined,  or  move  to  a  renderer.  

Page 36: Spring '16 Lightning Update for ISVs (March 15, 2016)

For Security Review

  These rules must also be adhered to by any third party code you use. •  It is your responsibility to refactor third party libraries to get them to follow these rules •  Book an office hour to ask for help if needed!

  Include unminified versions of all js static resources   Your security boundary cannot extend outside of your offering

•  No “iframe loader” components, “html renderer” components, etc.   Avoid unsafe functions such as eval() (they will break when we tighten our CSP)   Avoid third party frameworks as they do both DOM rendering and event management in the

same process until we publish guides on how to integrate them safely with Lightning.   Follow the instructions in the Lightning Component Developer’s Guide

Page 37: Spring '16 Lightning Update for ISVs (March 15, 2016)

Security Review Information

Additional Resources: http://p.force.com/security (Security Review training and information for partners) https://developer.salesforce.com/page/Requirements_Checklist (Checklist) https://developer.salesforce.com/page/Lightning_Security (List of issues with examples) https://security.secure.force.com/security/contact/ohours (Free Office Hours)

Page 38: Spring '16 Lightning Update for ISVs (March 15, 2016)

Roadmap

Page 39: Spring '16 Lightning Update for ISVs (March 15, 2016)

Lightning Experience Roadmap

Summer ‘16

Winter ‘17

Enhanced Sales Productivity

Service UX Enhancements

Customization Enhancements

Sales Cloud Depth & Usability Productivity & Intelligence

Service Cloud Depth

App Builder Customizations

Safe Harbor Applies – Make Purchasing Decisions on Currently Available Technology

Roadmap Items May Change at Any Time

Sales Cloud Depth Enhanced Marketing Automation

Service Cloud Expansion

AppExchange & Ecosystem

Page 40: Spring '16 Lightning Update for ISVs (March 15, 2016)

Summer ‘16

●  Packaging for record home pages for

standard and custom objects

●  App Builder GA

●  SLDS Design Tokens GA

●  Eclipse IDE Support for Lightning

Components

●  Visualforce for Lightning GA

●  Locker Service for Lightning

Components

Lightning Roadmap

Winter ‘17

●  Lightning Components bound by LMA

●  Component Exchange with App Builder

●  Build actions, buttons, links that fire

Lightning Components

●  Lightning Components in Force.com

site w/ Guest User

●  Initial version of Navigation

Future

•  Automatic Restyling of VF pages

•  LMA Lightning Enabled

•  Salesforce standard Lightning

Components

•  Lightning Data Service

•  Navigation and Branding

•  Lightning Extensions

•  Developer Tools

Page 41: Spring '16 Lightning Update for ISVs (March 15, 2016)

Q&A

Page 42: Spring '16 Lightning Update for ISVs (March 15, 2016)

thank y u

Page 43: Spring '16 Lightning Update for ISVs (March 15, 2016)

Appendix

Page 44: Spring '16 Lightning Update for ISVs (March 15, 2016)

Global Actions in LEX Header Feature Overview

▪  Multitasking with global actions and the new composer window

Key Capabilities ▪  Global actions menu doesn’t disappear!

▪  Global actions spawns in composer windows on the current page (LEX only)

▪  Easy note/activity creation without relation!

Value/Relevance to ISVs ▪  ISVs developing Global Actions can now provide

customer admins with instructions on how to make these available in Lightning Experience

Page 45: Spring '16 Lightning Update for ISVs (March 15, 2016)

Security Review for Lightning Components

  Lightning Component fail rate is much higher

•  What ISVs need to watch out for and encourage good practices

•  Where can ISVs go to for more help (links)

•  Show the checklist for what is meant by adhere to the contract

  3rd party Javascript Frameworks are not supported

• Need to understand the Why

  Javascript Libraries are supported if used properly

• Need to understand the differences

  Locker Service?

  Checkmark Scanner Changes?