0% found this document useful (0 votes)
87 views34 pages

Develop Lightning Components Faster With Lightning Data Service - Fabien PDF

This document discusses how Lightning Data Service can help developers build Lightning Components faster by reducing the need for multiple Apex controllers and server calls. With Lightning Data Service, developers can build components that retrieve and cache shared data in one call, rather than making separate calls. This improves performance and allows components to more easily share consistent, up-to-date record values without writing additional code. The document outlines how Lightning Data Service simplifies component code and configuration by removing the need for Apex classes in many cases.

Uploaded by

Mohan Ch
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views34 pages

Develop Lightning Components Faster With Lightning Data Service - Fabien PDF

This document discusses how Lightning Data Service can help developers build Lightning Components faster by reducing the need for multiple Apex controllers and server calls. With Lightning Data Service, developers can build components that retrieve and cache shared data in one call, rather than making separate calls. This improves performance and allows components to more easily share consistent, up-to-date record values without writing additional code. The document outlines how Lightning Data Service simplifies component code and configuration by removing the need for Apex classes in many cases.

Uploaded by

Mohan Ch
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Develop Lightning Components faster with

Lightning Data Service


Fabien Taillon – Salesforce MVP – CTO @
@FabienTaillon

Madrid 1st June 2017


Fabien Taillon
Salesforce MVP

CTO @TEXEÏ

Paris Developer Group co-leader

French Touch Dreamin co-organizer

@FabienTaillon

www.fabientaillon.com
Lightning Page made of several Components
Lightning Page made of several Components
Before Lightning Data Service
Component 1

Markup JS Controller

Component 2

Markup JS Controller Apex Controller

Component 3

Markup JS Controller
Or worse…
Component 1

Markup JS Controller Apex Controller 1

Component 2

Markup JS Controller Apex Controller 2

Component 3

Markup JS Controller Apex Controller 3


3 queries to get almost the same fields
Component 1
Name, Phone, Address, MyField__c Apex Controller 1
Markup JS Controller

Component 2

Markup Name, Phone, Email


JS Controller Apex Controller 2

Component 3
Name, Address, MySecondField__c Apex Controller 3
Markup JS Controller
3 queries to get almost the same fields
Component 1
Name, Phone, Address, MyField__c Apex Controller 1
Markup JS Controller

Component 2

Markup Name, Phone, Email


JS Controller Apex Controller 2

Component 3
Name, Address, MySecondField__c Apex Controller 3
Markup JS Controller
With Lightning Data Service
Component 1

Markup

Component 2
LDS
Controller
Markup Record Cache

Component 3

Markup
Only 1 query with all the fields !
Component 1
Name, Phone,
Markup
Address, MyField__c

Component 2 Name, Phone, Address,


LDS
Name, Phone, Email Email, MyField__c,
Controller
Markup RecordMySecondField__c
Cache

Component 3
Name, Address,
MySecondField__c
Markup
No server call if data already in the cache
Component 1
Name, Phone,
Markup
Address, MyField__c

Component 2
Name, Phone, Email LDS
Markup Controller
Record Cache
Component 3
Name, Address, Name, Phone,
Markup
MySecondField__c Address, Email,
MyField__c,
MySecondField__c
Component 4

Markup
From a code point of view: from this…
Component 1

Markup JS Controller Apex Controller 1

Component 2

Markup JS Controller Apex Controller 2

Component 3

Markup JS Controller Apex Controller 3


To this !
Component 1

Markup JS Controller Apex Controller 1

Component 2

Markup JS Controller Apex Controller 2

Component 3

Markup JS Controller Apex Controller 3


To this !
Component 1

Markup JS Controller Apex Controller 1

Component 2

Markup JS Controller Apex Controller 2

Component 3

Markup JS Controller Apex Controller 3


To this !
Component 1

Markup JS Controller Apex Controller 1

Component 2

Markup JS Controller Apex Controller 2

Component 3

Markup JS Controller Apex Controller 3


To this !
Component 1

Markup JS Controller Apex Controller 1

Component 2

Markup JS Controller Apex Controller 2

Component 3

Markup JS Controller Apex Controller 3


Code before: Markup
Code before: Markup
Code before: Markup
Code before: JS
Code before: JS
Code before: JS
Code before: JS
Code before: Apex Class

+ TEST CLASS !
Code after: Only markup !
Code after: Only markup !
Better performances, less code !
Markup JS Apex
Without Lightning Data Service

TEST
CLASS

With Lightning Data Service


Better performances, less code !
Methods: Save, Delete
Methods: Save, Delete
Benefits
No Apex !

Security

• CRUD

• Field Level Security

Shared cache

• Less server calls → Better performances

• Record values updated across components → Coherent values displayed

• Component notified only if the field updated is used by the cmp → Less code executed

Id is used, not sObject Type → Same Component can be used for different objects
Where it’s (supposed to be) going
Out of Beta

More objects supported (ex: Opportunity isn’t supported)

List Support

Support outside of LEX/SF1 (ex: Lightning Out)


Madrid 1st June 2017

Q&A

You might also like