SlideShare a Scribd company logo
An Introduction to Lightning Web Components
mheisterberg@salesforce.com, @lekkim
Mikkel Flindt Heisterberg, Platform Solution Engineer
Forward-Looking Statement
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 any litigation, risks associated with completed and any 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-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These 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.
Statement under the Private Securities Litigation Reform Act of 1995
Why?
The World of Web Development has Changed
Developers demand standard development models and tools they know and love
Proprietary
Frameworks
Data Services
UI Components
Templates
Rendering Optimization
Modules
Language Extensions
Web Standards
ECMAScript 5
Events
Standard Elements
2014
Frameworks
Specialized Services
Data Services
UI Components
Web Standards
Web Components
Templates
Custom Elements
Shadow DOM
Decorators
Modules
ECMAScript 7
Events
Standard Elements
Rendering
2019
Web Standardization
2000 2005 2010 2015
By embracing web standards, more developers can build on Salesforce
Every Platform Needs More Developers
IT Skills Gap250K
unfilled developer
jobs in the US
7+ Million
Worldwide
Javascript
developers
Enhanced productivity with web standards
Use the modern language of the web: ES6+, Custom
Elements, classes, modules and imports
Engineered for performance
More code executed by the browser instead of JavaScript
abstractions for a blazing fast experience
Compatible and easy to use
Runs side-by-side with existing Lightning components and
can be composed with clicks or code
Introducing Lightning Web Components
Generally
Available
Spring ‘19
(Feb)
Every JavaScript developer can now code on Salesforce
Data Centers
Network
Data
Protection
Monitoring
Storage
TRUST
Databases
Connectivity
Message Bus
Events
Metadata
SHARED SERVICES
& TOOLS
App Definition
Authorization
Provisioning
Authentication
Identity Resolution
DATA & EVENTSRUNTIME
APP LAYER
Framework
SLDS
Navigation
Testing
Instrumentation Accessibility
Offline
LockerData
APP LAYER
Framework
SLDS
Navigation
Testing
Instrumentation Accessibility
Offline
LockerData
Customization
Page
Base
Components
Experience
Components
Application Layer
Framework
Testing
Instrumentation
SLDS
Navigation
Offline
Accessibility
Locker
Data
How Lightning Components Work
Build High Performance Apps with Web Standards
Execute more code in the browser for a blazing fast experience
Component
Performance
Ease of Use + Transferability of Skills
Core language
Events
Standard elements
Rendering
Data services
UI components
Framework templates
Rendering optimization
Language extensions
Framework
Abstractions
Web Standards
Typical Frameworks
Lightning Web
Components
Lightning
Web
Components
Aura
Components
Run All Components Together - No Migrations Required
Aura & Lightning Web Components are designed to work together
Feedback from Pilot Customers
Bringing data from many sources
in a standard way.
Changing their approach to app
dev with speed and productivity.
Game-changing speed and
development productivity
“Lightning Web Components will let us build
apps that are able to present data from many
sources in a component-based way, which is
crucial given the number of custom apps we
have across our business,” said
“I applaud the standards-based approach
Salesforce is taking with this new
programming model by opening it up to
JavaScript developers.”
Stephan Paquet
Senior Architect IT Applications, Ciena
“Lightning Web Components have the
potential to fundamentally change how we do
app development.”
“The performance gains have been significant
so far, both in terms of speed and stability, and
we see Lightning Web Components as a great
way to help us realize our digital
transformation goals.”
Anil Sistla
Platform Architect, Schneider Electric.
“nCino is focused on delivering the best
possible user experience to anyone accessing
our Bank Operating System, which often
requires the creation of our own custom apps
and components.”
“Lightning Web Components give our
developers the ability to quickly create
immersive apps, and give our customers’
admins the ability to use simple drag and drop
components without having to code. This
could change the game for us by speeding up
development and increasing productivity.”
Dory Weiss
VP of Engineering at nCino.
The Lightning Platform
Empower Business and IT to work together
Platform & Ecosystem
57%
faster app dev
Partner ecosystem | AppExchange
Accelerate with Enterprise Services
Integration | Connect and MuleSoft
Dev tools | Salesforce DX
Deliver with Pro Code Tools
Empower with No Code Builders
Open languages | Heroku
Process | Lightning Flow Builder
Encryption & compliance | Shield
User experience | Lightning App Builder
AI Services | Einstein
Reusable code | Lightning Web
Components
NEW
Lightning Web Components Enablement Approach
Technical deep dives into tooling, testing, composition, and more!
Lightning Web Component Foundation
Component
Composition
Static Resources &
3rd Party JavaScript
Pub Sub
Communication DOM and CSS
Development
Tooling
Lightning Web
Component
Anatomy
Using Lightning
Data Service Using Apex
Gain technical
mastery of
Lightning Web
Components with
events and
webinars
Get Started with Lightning Web Components Today!
Learn more about building with web standards through these useful resources
Earn the Lighting Web Components Quick Start Badge
Jump right into web standards components with Trailhead
Developer
Documentation
Component
Library
LWC Recipes
Explore the code with Lightning Web Components Recipes
Get a feel for how Lightning Web Components are structured
See our revamped Components Library
Start building with base Lightning Web Components
Check out the documentation
Look through the documentation to find the answers
Lightning Web Components GA Launch Timeline
Jan ’18 Feb ‘18 Apr ’18 May ’18 Jun ’19Dec ’18Nov ’18 Mar ’18
DEV LAUNCH
EVENT
23 Jan
TDX
29-30 May
PRE REL
13 Dec
SB PREV
4 Jan
R0
11 Jan
R1
1
Feb
R2
8-9
Feb
LWC LAUNCH
TRAILHEAD LWC
CONTENT
2 Dec
220 PRE REL
18 Apr218
“DEV WEEK”
Week Following
Event
150+ Trailblazer
community groups
NY WORLD
TOUR
13 Dec
Ever tried looking for an answer for
Lightning Aura Components? Much
easier now as it’s based on web
standards…
Examples:
• connectedCallback
• disconnectedCallback
• attributeChangedCallback
Using Standards makes it Easier
Lightning Aura Components
&
Lightning Web Components
work together…
Compatibility
Anatomy of a Lightning Web
Component
Recap of Lightning Aura Component Anatomy (1)
Recap of Lightning Aura Component Anatomy (2)
File Description
helloworld.auradoc Component documentation
helloworld.cmp Component markup
helloworld.cmp-meta.xml Metadata file, not used really
helloworld.css CSS for styling, namespaced with .THIS
helloworld.design Design time attributes
helloworld.svg SVG for component icon
helloworldController.js Controller, Javascript
helloworldHelper.js Helper code, Javascript
helloworldRenderer.js Custom rendering, Javascript
> sfdx force:project:create -n aura-helloworld
> cd aura-helloworld
> sfdx force:lightning:component:create --type aura 
-n helloworld -d force-app/main/default/aura
> sfdx force:org:create -a aura_helloworld 
-f config/project-scratch-def.json -v lwc_devhub
> sfdx force:source:push -u aura_helloworld
> sfdx force:org:open –u aura_helloworld
Salesforce DX script
Lightning Web Component Anatomy (1)
Lightning Web Component Anatomy (2)
File Description
helloworld.html Component markup
helloworld.js Component logic
helloworld.css Component styling; scoped to shadow DOM
helloworld.cmp-meta.xml Metadata file – used to change component behavior
> sfdx force:project:create -n lwc-helloworld
> cd lwc-helloworld
> sfdx force:lightning:component:create --type lwc 
-n helloworld -d force-app/main/default/lwc
> sfdx force:org:create -a lwc_helloworld 
-f config/project-scratch-def.json -v lwc_devhub
> sfdx force:source:push -u lwc_helloworld
> sfdx force:org:open –u lwc_helloworld
Salesforce DX script
Caveat: Currently stylesheet-file (here:
helloworld.css) not created through command
Lightning Web Components Syntax
• Many SLDS classes are now available as Lightning base
components i.e. <lightning-card />
• Markup goes into a Shadow DOM
• <template /> tag is used as parent
• <slot /> tag is used to allow extensibility
(slots may be named) – slot-attribute is used to target slots in other
components
HTML Markup (1)
HTML Markup (2)
SLDS classes available as
Lightning Web
Components
Attributes from Javascript
available using {}-syntax
HTML Markup (3)
Target slot from other component using the slot-
attribute
Target multiple slots: sequence in resulting markup
is determined by receiving component
• ES6 classes are used to define logic
• ES6 module imports / exports are used to import and export logic
JavaScript logic
• CSS is scoped to the Shadow DOM and is no longer namespaced
• Support for :host pseudo-selector allows for styling the Shadow DOM parent
https://developer.salesforce.com/docs/.../lwc/lwc.create_components_css
https://developer.mozilla.org/en-US/docs/Web/CSS/:host()
CSS (1)
• Selectors work inside the component
CSS (2)
Metadata XML
• Metadata XML file is used to configure component and change behavior
isExposed must be true
for component to show up
in Lightning App Builder
masterLabel sets the
friendly name for Lightning
App Builder
Target the page types the
component applies to
Attributes
Attributes in Lightning Aura Components
Attribute
• Name
• Type
• Access
• Default value
Attributes in Lightning Web Components
Private non-
reactive attribute
Public reactive
attribute with
default value
Constructor used
to compute default
value to private
attribute
Example before actually doesn’t work…
@api attributes in Lightning Web Components (1)
@api attributes in Lightning Web Components (2)
Best Practice is using constructor to set default value and connectedCallback
@api attributes in Lightning Web Components (3)
Data Access
Data Access in Lightning Aura Components
({
"echo" : function(cmp) {
var action = cmp.get("c.getContactByRecordId");
action.setParams({ recordId: cmp.get("v.recordId") });
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
var value = response.getReturnValue();
cmp.set("v.contact", response.getReturnValue());
} else if (state === "ERROR") {
var errors = response.getError();
if (errors && errors[0] && errors[0].message) {
console.log("Error message: " + errors[0].message);
cmp.set("v.error", errors[0]);
}
}
});
$A.enqueueAction(action);
}
})
Data Access in Lightning Web Components (1)
import { LightningElement, api, wire } from 'lwc';
import { getRecord } from 'lightning/uiRecordApi';
import NAME_FIELD from '@salesforce/schema/Contact.Name';
import EMAIL_FIELD from '@salesforce/schema/Contact.Email’;
const fields = [NAME_FIELD, EMAIL_FIELD];
export default class ShowContactData extends LightningElement {
@api recordId;
@wire(getRecord, { recordId: '0014E00000ySOIMQA4', fields })
contact;
}
Data Access in Lightning Web Components (2)
<template>
<lightning-card>
<div class="slds-m-around_medium">
<template if:true={contact.data}>
<!– show for SUCCESS state -->
</template>
<template if:true={contact.error}>
<!– show for ERROR state -->
</template>
</div>
</lightning-card>
</template>
Showing success / error
is much easier as it’s part
of the template
Data Access in Lightning Web Components (3)
import { LightningElement, track } from 'lwc';
import getContactList from '@salesforce/apex/ContactController.getContactList';
export default class ApexImperativeMethod extends LightningElement {
@wire(getContactList)
contacts;
}
Call method in server-side Apex Controller using @wire
Data Access in Lightning Web Components (4)
import { LightningElement, track } from 'lwc';
import getContactList from '@salesforce/apex/ContactController.getContactList';
export default class ApexImperativeMethod extends LightningElement {
@track contacts;
@track error;
handleLoad() {
getContactList().then(result => {
this.contacts = result;
}).catch(error => {
this.error = error;
});
}
}
Call method in server-side Apex Controller using @track attributes and Promises
Decorator Description
@api To expose a public property, decorate it with @api. Public properties define the API for a
component. An owner component that uses the component in its markup can access the
component’s public properties. Public properties are reactive. If the value of a reactive
property changes, the component’s template rerenders any content that references the
property.
@track To track a private property’s value and rerender a component when it changes, decorate
the property with @track. Tracked properties are also called private reactive properties.
@wire To read Salesforce data, Lightning web components use a reactive wire service. When the
wire service provisions data, the component rerenders. Components use @wire in their
JavaScript class to specify a wire adaptor or an Apex method.
Introducing Javascript Decorators
https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_decorators
Decorator Syntax
Syntax
@decorator_name(<optional_method_to_decorate>, <optional_arguments>)
propertyOrFunctionBeingDecorated;
Examples
@track bar;
@api foo;
@wire(getRecord, {recordId: '0014E00000ySOIMQA4', fields})
contact;
A decorator basically returns a new property or function with new,
decorated, functionality.
Decorator Syntax
Syntax
@decorator_name(<optional_method_to_decorate>, <optional_arguments>)
propertyOrFunctionBeingDecorated;
Examples
@wire(getRecord, {recordId: '0014E00000ySOIMQA4', fields})
contact;
@track bar;
@api foo;
A decorator basically returns a new property or function with new,
decorated, functionality.
Hard coding the recordId doesn’t work in reality so of course there is
a solution for that…
@api recordId;
@wire(getRecord, {recordId: '$recordId', fields})
In the wire adapter’s configuration object, prefix a value with $
to reference a property of the component instance. The $ prefix
tells the wire service to treat it as a property of the class and
evaluate it as this.propertyName. The property is reactive. If the
property’s value changes, new data is provisioned and the
component rerenders.
“
Reactive vs. non-Reactive Attributes
• Reactive = Will make the template rerender when changed
• Non-reactive = Will not make the template rerender when changed
Reactive variable: $foo
In the wire adapter’s configuration object, prefix a value with $ to reference a property of the
component instance. The $ prefix tells the wire service to treat it as a property of the class and
evaluate it as this.propertyName. The property is reactive. If the property’s value changes, new
data is provisioned and the component rerenders.
https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.data_wire_service_about
Transitioning from
Lightning Aura Components to
Lightning Web Components
Aura Component to Web Component Mapping
Lightning Aura Components may contain Lightning Web Components
Composition
New, less verbose and error-prone, Syntax (1)
New, less verbose and error-prone, Syntax (2)
Standards, standards, standards…
Replace proprietary syntax and Tools
Getting Started with Lightning Web
Components
1. Get a Spring ‘19 Org (could be a Developer org)
https://developer.salesforce.com/signup
2. Install and Configure Visual Studio Code or other IDE
https://code.visualstudio.com/
3. Install and Configure Salesforce DX
https://developer.salesforce.com/platform/dx
Getting Started
Get a Spring ‘19 Org
Install and Configure Visual Studio Code or other IDE
Extensions
• Salesforce Extension Pack
• Lightning Web Components
Recommended
• Lightning Web Component
snippets for Javascript
typeahead
https://github.com/forcedotcom/salesforcedx-vscode/tree/develop/packages/salesforcedx-vscode-lwc/snippets
Install and Configure Salesforce DX
> sfdx plugins
salesforcedx 44.0.7
> sfdx plugins:install 
salesforcedx@pre-release
Sample Applications
Recipes e-bikes
More in the sample gallery
https://trailhead.salesforce.com/sample-gallery
git clone git@github.com:trailheadapps/lwc-recipes.git
cd lwc_recipes
sfdx force:org:create -v lwc_devhub 
-f config/project-scratch-def.json -a lwc_recipes
sfdx force:source:push -u lwc_recipes
sfdx force:user:permset:assign -n recipes -u lwc_recipes
sfdx force:data:tree:import --plan ./data/data-plan.json 
-u lwc_recipes
sfdx force:org:open -u lwc_recipes
“Let’s check out the recipes…
Lightning Web Components in Resources
Introducing Lightning Web
Components
https://www.salesforce.com/video/4279551/
(and follow-up Q&A:
https://www.youtube.com/watch?v=Rd8h-5e4KZs)
Video Gallery
https://developer.salesforce.com/tv/lwc-video-gallery
Lightning Web Components Recordings
Lightning Debug Mode – now really useful
• No use of stored actions anymore – transparent using @AuraEnabled(cacheable=true)
• No Console API in Lightning Web Components yet
• No Web Developer support
• Visual Studio Code
• Extensions (Salesforce Extension Pack, Lightning Web Components)
• Trailhead Trailmix (https://sfdc.co/LWC_Trailmix)
• Schema support
• import FIELD_EMAIL from “@salesforce/schema/Contact.Email”
The fine print
Quick Start: Lightning Web Components
https://trailhead.salesforce.com/en/content/learn/projects/quick-start-lightning-web-components
Trail: Build Lightning Web Components
https://trailhead.salesforce.com/en/content/learn/trails/build-lightning-web-components
Lightning Component Library
https://developer.salesforce.com/docs/component-library
Working with Aura and Lightning Web Components: Interoperability and Migration
https://developer.salesforce.com/blogs/2019/02/working-with-aura-and-lightning-web-components-interoperability-and-migration.html
The Future of Salesforce IDEs
https://developer.salesforce.com/blogs/2018/12/the-future-of-salesforce-ides.html
Resources
https://developer.salesforce.com/blog
placeholder
Questions?

More Related Content

What's hot

Lightning web components
Lightning web components Lightning web components
Lightning web components
Cloud Analogy
 
Apex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsApex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard Problems
Salesforce Developers
 
Getting Started with Lightning Web Components | LWC | Salesforce
Getting Started with Lightning Web Components | LWC | SalesforceGetting Started with Lightning Web Components | LWC | Salesforce
Getting Started with Lightning Web Components | LWC | Salesforce
Rahul Malhotra
 
Lightning Components Introduction
Lightning Components IntroductionLightning Components Introduction
Lightning Components Introduction
Durgesh Dhoot
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Lightning Component - Components, Actions and Events
Lightning Component - Components, Actions and EventsLightning Component - Components, Actions and Events
Lightning Component - Components, Actions and Events
Durgesh Dhoot
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
Salesforce Developers
 
Salesforce Service Cloud automatons
Salesforce Service Cloud automatonsSalesforce Service Cloud automatons
Salesforce Service Cloud automatons
RAMNARAYAN R
 
Lightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and Compositions
Lightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and CompositionsLightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and Compositions
Lightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and Compositions
Nishant Singh Panwar
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
andyinthecloud
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/Students
Sujesh Ramachandran
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
Salesforce Developers
 
Salesforce Lightning Web Components Overview
Salesforce Lightning Web Components OverviewSalesforce Lightning Web Components Overview
Salesforce Lightning Web Components Overview
Nagarjuna Kaipu
 
Dynamic input tables lwc vs aura vs. visualforce
Dynamic input tables  lwc vs aura vs. visualforceDynamic input tables  lwc vs aura vs. visualforce
Dynamic input tables lwc vs aura vs. visualforce
Mike Tetlow
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
Salesforce Developers
 
Lightning Web Component - LWC
Lightning Web Component - LWCLightning Web Component - LWC
Lightning Web Component - LWC
Thierry TROUIN ☁
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce org
Roy Gilad
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
Rich Helton
 
Introduction To Salesforce Content Management System (CMS)
Introduction To Salesforce Content Management System (CMS)Introduction To Salesforce Content Management System (CMS)
Introduction To Salesforce Content Management System (CMS)
Cloud Analogy
 
Lightning Web Components
Lightning Web ComponentsLightning Web Components
Lightning Web Components
AbdulGafoor100
 

What's hot (20)

Lightning web components
Lightning web components Lightning web components
Lightning web components
 
Apex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsApex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard Problems
 
Getting Started with Lightning Web Components | LWC | Salesforce
Getting Started with Lightning Web Components | LWC | SalesforceGetting Started with Lightning Web Components | LWC | Salesforce
Getting Started with Lightning Web Components | LWC | Salesforce
 
Lightning Components Introduction
Lightning Components IntroductionLightning Components Introduction
Lightning Components Introduction
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning Component - Components, Actions and Events
Lightning Component - Components, Actions and EventsLightning Component - Components, Actions and Events
Lightning Component - Components, Actions and Events
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Salesforce Service Cloud automatons
Salesforce Service Cloud automatonsSalesforce Service Cloud automatons
Salesforce Service Cloud automatons
 
Lightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and Compositions
Lightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and CompositionsLightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and Compositions
Lightning Web Components- Ep 1 - Decorators, Life Cycle Hooks and Compositions
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/Students
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
Salesforce Lightning Web Components Overview
Salesforce Lightning Web Components OverviewSalesforce Lightning Web Components Overview
Salesforce Lightning Web Components Overview
 
Dynamic input tables lwc vs aura vs. visualforce
Dynamic input tables  lwc vs aura vs. visualforceDynamic input tables  lwc vs aura vs. visualforce
Dynamic input tables lwc vs aura vs. visualforce
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
 
Lightning Web Component - LWC
Lightning Web Component - LWCLightning Web Component - LWC
Lightning Web Component - LWC
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce org
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
Introduction To Salesforce Content Management System (CMS)
Introduction To Salesforce Content Management System (CMS)Introduction To Salesforce Content Management System (CMS)
Introduction To Salesforce Content Management System (CMS)
 
Lightning Web Components
Lightning Web ComponentsLightning Web Components
Lightning Web Components
 

Similar to An Introduction to Lightning Web Components

TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
Shivanath Devinarayanan
 
Tdxgg18 summary presentation
Tdxgg18 summary presentationTdxgg18 summary presentation
Tdxgg18 summary presentation
Thierry TROUIN ☁
 
Salesforce Lightning workshop Hartford - 12 March
Salesforce Lightning workshop Hartford - 12 MarchSalesforce Lightning workshop Hartford - 12 March
Salesforce Lightning workshop Hartford - 12 March
Jitendra Zaa
 
Lightning Developer Week - Bangalore Salesforce Developer Group
Lightning Developer Week - Bangalore Salesforce Developer GroupLightning Developer Week - Bangalore Salesforce Developer Group
Lightning Developer Week - Bangalore Salesforce Developer Group
Abhilash Kuntar
 
Lightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René WinkelmeyerLightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René Winkelmeyer
CzechDreamin
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
Keir Bowden
 
Suisse Romande SF DG - Lightning workshop
Suisse Romande SF DG - Lightning workshopSuisse Romande SF DG - Lightning workshop
Suisse Romande SF DG - Lightning workshop
Gnanasekaran Thoppae
 
Lightning week - Paris DUG
Lightning week - Paris DUGLightning week - Paris DUG
Lightning week - Paris DUG
Paris Salesforce Developer Group
 
Intro to Salesforce Lightning for Admins
Intro to Salesforce Lightning for Admins Intro to Salesforce Lightning for Admins
Intro to Salesforce Lightning for Admins
Desynit
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.com
Alistair Croll
 
Winter'18 Developer Preview Webinar
Winter'18 Developer Preview WebinarWinter'18 Developer Preview Webinar
Winter'18 Developer Preview Webinar
Salesforce Developers
 
Salesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open SourceSalesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open Source
Jayant Jindal
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
rikkehovgaard
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
Salesforce Developers
 
Lightning breakout mun world tour 2015 sfsans
Lightning breakout mun world tour 2015 sfsansLightning breakout mun world tour 2015 sfsans
Lightning breakout mun world tour 2015 sfsans
Salesforce Deutschland
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App Cloud
John Stevenson
 
Dreamforce Developer Recap
Dreamforce Developer RecapDreamforce Developer Recap
Dreamforce Developer Recap
Salesforce Developers
 
Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)
Developer Force
 

Similar to An Introduction to Lightning Web Components (20)

TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 
Tdxgg18 summary presentation
Tdxgg18 summary presentationTdxgg18 summary presentation
Tdxgg18 summary presentation
 
Salesforce Lightning workshop Hartford - 12 March
Salesforce Lightning workshop Hartford - 12 MarchSalesforce Lightning workshop Hartford - 12 March
Salesforce Lightning workshop Hartford - 12 March
 
Lightning Developer Week - Bangalore Salesforce Developer Group
Lightning Developer Week - Bangalore Salesforce Developer GroupLightning Developer Week - Bangalore Salesforce Developer Group
Lightning Developer Week - Bangalore Salesforce Developer Group
 
Lightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René WinkelmeyerLightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René Winkelmeyer
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
 
Suisse Romande SF DG - Lightning workshop
Suisse Romande SF DG - Lightning workshopSuisse Romande SF DG - Lightning workshop
Suisse Romande SF DG - Lightning workshop
 
Lightning week - Paris DUG
Lightning week - Paris DUGLightning week - Paris DUG
Lightning week - Paris DUG
 
Intro to Salesforce Lightning for Admins
Intro to Salesforce Lightning for Admins Intro to Salesforce Lightning for Admins
Intro to Salesforce Lightning for Admins
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.com
 
Winter'18 Developer Preview Webinar
Winter'18 Developer Preview WebinarWinter'18 Developer Preview Webinar
Winter'18 Developer Preview Webinar
 
Salesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open SourceSalesforce Lightning Web Components - Open Source
Salesforce Lightning Web Components - Open Source
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Lightning breakout mun world tour 2015 sfsans
Lightning breakout mun world tour 2015 sfsansLightning breakout mun world tour 2015 sfsans
Lightning breakout mun world tour 2015 sfsans
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App Cloud
 
Dreamforce Developer Recap
Dreamforce Developer RecapDreamforce Developer Recap
Dreamforce Developer Recap
 
Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)
 

More from Mikkel Flindt Heisterberg

Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learned
Mikkel Flindt Heisterberg
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
Mikkel Flindt Heisterberg
 
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
Mikkel Flindt Heisterberg
 
IBM Connections 5 Gæstemodel
IBM Connections 5 GæstemodelIBM Connections 5 Gæstemodel
IBM Connections 5 Gæstemodel
Mikkel Flindt Heisterberg
 
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORMThere’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
Mikkel Flindt Heisterberg
 
Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...
Mikkel Flindt Heisterberg
 
BP309 Project Management Inside and Outside the Box
BP309 Project Management Inside and Outside the BoxBP309 Project Management Inside and Outside the Box
BP309 Project Management Inside and Outside the Box
Mikkel Flindt Heisterberg
 
BP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity streamBP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity stream
Mikkel Flindt Heisterberg
 
An Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamAn Introduction to Working With the Activity Stream
An Introduction to Working With the Activity Stream
Mikkel Flindt Heisterberg
 
Creating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy wayCreating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy way
Mikkel Flindt Heisterberg
 
BP207 - Easy as pie creating widgets for ibm connections
BP207 - Easy as pie   creating widgets for ibm connectionsBP207 - Easy as pie   creating widgets for ibm connections
BP207 - Easy as pie creating widgets for ibm connections
Mikkel Flindt Heisterberg
 
OnTime Partner Webinar September 2011
OnTime Partner Webinar September 2011OnTime Partner Webinar September 2011
OnTime Partner Webinar September 2011
Mikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
Mikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)
Mikkel Flindt Heisterberg
 
Lotusphere Comes To You 2011
Lotusphere Comes To You 2011Lotusphere Comes To You 2011
Lotusphere Comes To You 2011
Mikkel Flindt Heisterberg
 
Lotus Community Call - 22 March 2011
Lotus Community Call - 22 March 2011Lotus Community Call - 22 March 2011
Lotus Community Call - 22 March 2011
Mikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
Mikkel Flindt Heisterberg
 
Lotus Notes Plugin Installation For Dummies
Lotus Notes Plugin Installation For DummiesLotus Notes Plugin Installation For Dummies
Lotus Notes Plugin Installation For Dummies
Mikkel Flindt Heisterberg
 

More from Mikkel Flindt Heisterberg (18)

Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learned
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
 
IBM Connections 5 Gæstemodel
IBM Connections 5 GæstemodelIBM Connections 5 Gæstemodel
IBM Connections 5 Gæstemodel
 
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORMThere’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
 
Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...
 
BP309 Project Management Inside and Outside the Box
BP309 Project Management Inside and Outside the BoxBP309 Project Management Inside and Outside the Box
BP309 Project Management Inside and Outside the Box
 
BP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity streamBP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity stream
 
An Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamAn Introduction to Working With the Activity Stream
An Introduction to Working With the Activity Stream
 
Creating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy wayCreating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy way
 
BP207 - Easy as pie creating widgets for ibm connections
BP207 - Easy as pie   creating widgets for ibm connectionsBP207 - Easy as pie   creating widgets for ibm connections
BP207 - Easy as pie creating widgets for ibm connections
 
OnTime Partner Webinar September 2011
OnTime Partner Webinar September 2011OnTime Partner Webinar September 2011
OnTime Partner Webinar September 2011
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)
 
Lotusphere Comes To You 2011
Lotusphere Comes To You 2011Lotusphere Comes To You 2011
Lotusphere Comes To You 2011
 
Lotus Community Call - 22 March 2011
Lotus Community Call - 22 March 2011Lotus Community Call - 22 March 2011
Lotus Community Call - 22 March 2011
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Lotus Notes Plugin Installation For Dummies
Lotus Notes Plugin Installation For DummiesLotus Notes Plugin Installation For Dummies
Lotus Notes Plugin Installation For Dummies
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 

An Introduction to Lightning Web Components

  • 1. An Introduction to Lightning Web Components mheisterberg@salesforce.com, @lekkim Mikkel Flindt Heisterberg, Platform Solution Engineer
  • 2.
  • 3. Forward-Looking Statement 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 any litigation, risks associated with completed and any 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-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These 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. Statement under the Private Securities Litigation Reform Act of 1995
  • 5. The World of Web Development has Changed Developers demand standard development models and tools they know and love Proprietary Frameworks Data Services UI Components Templates Rendering Optimization Modules Language Extensions Web Standards ECMAScript 5 Events Standard Elements 2014 Frameworks Specialized Services Data Services UI Components Web Standards Web Components Templates Custom Elements Shadow DOM Decorators Modules ECMAScript 7 Events Standard Elements Rendering 2019 Web Standardization 2000 2005 2010 2015
  • 6. By embracing web standards, more developers can build on Salesforce Every Platform Needs More Developers IT Skills Gap250K unfilled developer jobs in the US 7+ Million Worldwide Javascript developers
  • 7. Enhanced productivity with web standards Use the modern language of the web: ES6+, Custom Elements, classes, modules and imports Engineered for performance More code executed by the browser instead of JavaScript abstractions for a blazing fast experience Compatible and easy to use Runs side-by-side with existing Lightning components and can be composed with clicks or code Introducing Lightning Web Components Generally Available Spring ‘19 (Feb) Every JavaScript developer can now code on Salesforce
  • 8. Data Centers Network Data Protection Monitoring Storage TRUST Databases Connectivity Message Bus Events Metadata SHARED SERVICES & TOOLS App Definition Authorization Provisioning Authentication Identity Resolution DATA & EVENTSRUNTIME APP LAYER Framework SLDS Navigation Testing Instrumentation Accessibility Offline LockerData APP LAYER Framework SLDS Navigation Testing Instrumentation Accessibility Offline LockerData Customization Page Base Components Experience Components Application Layer Framework Testing Instrumentation SLDS Navigation Offline Accessibility Locker Data How Lightning Components Work
  • 9. Build High Performance Apps with Web Standards Execute more code in the browser for a blazing fast experience Component Performance Ease of Use + Transferability of Skills Core language Events Standard elements Rendering Data services UI components Framework templates Rendering optimization Language extensions Framework Abstractions Web Standards Typical Frameworks Lightning Web Components
  • 10. Lightning Web Components Aura Components Run All Components Together - No Migrations Required Aura & Lightning Web Components are designed to work together
  • 11. Feedback from Pilot Customers Bringing data from many sources in a standard way. Changing their approach to app dev with speed and productivity. Game-changing speed and development productivity “Lightning Web Components will let us build apps that are able to present data from many sources in a component-based way, which is crucial given the number of custom apps we have across our business,” said “I applaud the standards-based approach Salesforce is taking with this new programming model by opening it up to JavaScript developers.” Stephan Paquet Senior Architect IT Applications, Ciena “Lightning Web Components have the potential to fundamentally change how we do app development.” “The performance gains have been significant so far, both in terms of speed and stability, and we see Lightning Web Components as a great way to help us realize our digital transformation goals.” Anil Sistla Platform Architect, Schneider Electric. “nCino is focused on delivering the best possible user experience to anyone accessing our Bank Operating System, which often requires the creation of our own custom apps and components.” “Lightning Web Components give our developers the ability to quickly create immersive apps, and give our customers’ admins the ability to use simple drag and drop components without having to code. This could change the game for us by speeding up development and increasing productivity.” Dory Weiss VP of Engineering at nCino.
  • 12. The Lightning Platform Empower Business and IT to work together Platform & Ecosystem 57% faster app dev Partner ecosystem | AppExchange Accelerate with Enterprise Services Integration | Connect and MuleSoft Dev tools | Salesforce DX Deliver with Pro Code Tools Empower with No Code Builders Open languages | Heroku Process | Lightning Flow Builder Encryption & compliance | Shield User experience | Lightning App Builder AI Services | Einstein Reusable code | Lightning Web Components NEW
  • 13. Lightning Web Components Enablement Approach Technical deep dives into tooling, testing, composition, and more! Lightning Web Component Foundation Component Composition Static Resources & 3rd Party JavaScript Pub Sub Communication DOM and CSS Development Tooling Lightning Web Component Anatomy Using Lightning Data Service Using Apex Gain technical mastery of Lightning Web Components with events and webinars
  • 14. Get Started with Lightning Web Components Today! Learn more about building with web standards through these useful resources Earn the Lighting Web Components Quick Start Badge Jump right into web standards components with Trailhead Developer Documentation Component Library LWC Recipes Explore the code with Lightning Web Components Recipes Get a feel for how Lightning Web Components are structured See our revamped Components Library Start building with base Lightning Web Components Check out the documentation Look through the documentation to find the answers
  • 15. Lightning Web Components GA Launch Timeline Jan ’18 Feb ‘18 Apr ’18 May ’18 Jun ’19Dec ’18Nov ’18 Mar ’18 DEV LAUNCH EVENT 23 Jan TDX 29-30 May PRE REL 13 Dec SB PREV 4 Jan R0 11 Jan R1 1 Feb R2 8-9 Feb LWC LAUNCH TRAILHEAD LWC CONTENT 2 Dec 220 PRE REL 18 Apr218 “DEV WEEK” Week Following Event 150+ Trailblazer community groups NY WORLD TOUR 13 Dec
  • 16. Ever tried looking for an answer for Lightning Aura Components? Much easier now as it’s based on web standards… Examples: • connectedCallback • disconnectedCallback • attributeChangedCallback Using Standards makes it Easier
  • 17. Lightning Aura Components & Lightning Web Components work together… Compatibility
  • 18. Anatomy of a Lightning Web Component
  • 19. Recap of Lightning Aura Component Anatomy (1)
  • 20. Recap of Lightning Aura Component Anatomy (2) File Description helloworld.auradoc Component documentation helloworld.cmp Component markup helloworld.cmp-meta.xml Metadata file, not used really helloworld.css CSS for styling, namespaced with .THIS helloworld.design Design time attributes helloworld.svg SVG for component icon helloworldController.js Controller, Javascript helloworldHelper.js Helper code, Javascript helloworldRenderer.js Custom rendering, Javascript
  • 21. > sfdx force:project:create -n aura-helloworld > cd aura-helloworld > sfdx force:lightning:component:create --type aura -n helloworld -d force-app/main/default/aura > sfdx force:org:create -a aura_helloworld -f config/project-scratch-def.json -v lwc_devhub > sfdx force:source:push -u aura_helloworld > sfdx force:org:open –u aura_helloworld Salesforce DX script
  • 22. Lightning Web Component Anatomy (1)
  • 23. Lightning Web Component Anatomy (2) File Description helloworld.html Component markup helloworld.js Component logic helloworld.css Component styling; scoped to shadow DOM helloworld.cmp-meta.xml Metadata file – used to change component behavior
  • 24. > sfdx force:project:create -n lwc-helloworld > cd lwc-helloworld > sfdx force:lightning:component:create --type lwc -n helloworld -d force-app/main/default/lwc > sfdx force:org:create -a lwc_helloworld -f config/project-scratch-def.json -v lwc_devhub > sfdx force:source:push -u lwc_helloworld > sfdx force:org:open –u lwc_helloworld Salesforce DX script Caveat: Currently stylesheet-file (here: helloworld.css) not created through command
  • 26. • Many SLDS classes are now available as Lightning base components i.e. <lightning-card /> • Markup goes into a Shadow DOM • <template /> tag is used as parent • <slot /> tag is used to allow extensibility (slots may be named) – slot-attribute is used to target slots in other components HTML Markup (1)
  • 27. HTML Markup (2) SLDS classes available as Lightning Web Components Attributes from Javascript available using {}-syntax
  • 28. HTML Markup (3) Target slot from other component using the slot- attribute Target multiple slots: sequence in resulting markup is determined by receiving component
  • 29. • ES6 classes are used to define logic • ES6 module imports / exports are used to import and export logic JavaScript logic
  • 30. • CSS is scoped to the Shadow DOM and is no longer namespaced • Support for :host pseudo-selector allows for styling the Shadow DOM parent https://developer.salesforce.com/docs/.../lwc/lwc.create_components_css https://developer.mozilla.org/en-US/docs/Web/CSS/:host() CSS (1)
  • 31. • Selectors work inside the component CSS (2)
  • 32. Metadata XML • Metadata XML file is used to configure component and change behavior isExposed must be true for component to show up in Lightning App Builder masterLabel sets the friendly name for Lightning App Builder Target the page types the component applies to
  • 34. Attributes in Lightning Aura Components Attribute • Name • Type • Access • Default value
  • 35. Attributes in Lightning Web Components Private non- reactive attribute Public reactive attribute with default value Constructor used to compute default value to private attribute
  • 36. Example before actually doesn’t work… @api attributes in Lightning Web Components (1)
  • 37. @api attributes in Lightning Web Components (2)
  • 38. Best Practice is using constructor to set default value and connectedCallback @api attributes in Lightning Web Components (3)
  • 40. Data Access in Lightning Aura Components ({ "echo" : function(cmp) { var action = cmp.get("c.getContactByRecordId"); action.setParams({ recordId: cmp.get("v.recordId") }); action.setCallback(this, function(response) { var state = response.getState(); if (state === "SUCCESS") { var value = response.getReturnValue(); cmp.set("v.contact", response.getReturnValue()); } else if (state === "ERROR") { var errors = response.getError(); if (errors && errors[0] && errors[0].message) { console.log("Error message: " + errors[0].message); cmp.set("v.error", errors[0]); } } }); $A.enqueueAction(action); } })
  • 41. Data Access in Lightning Web Components (1) import { LightningElement, api, wire } from 'lwc'; import { getRecord } from 'lightning/uiRecordApi'; import NAME_FIELD from '@salesforce/schema/Contact.Name'; import EMAIL_FIELD from '@salesforce/schema/Contact.Email’; const fields = [NAME_FIELD, EMAIL_FIELD]; export default class ShowContactData extends LightningElement { @api recordId; @wire(getRecord, { recordId: '0014E00000ySOIMQA4', fields }) contact; }
  • 42. Data Access in Lightning Web Components (2) <template> <lightning-card> <div class="slds-m-around_medium"> <template if:true={contact.data}> <!– show for SUCCESS state --> </template> <template if:true={contact.error}> <!– show for ERROR state --> </template> </div> </lightning-card> </template> Showing success / error is much easier as it’s part of the template
  • 43. Data Access in Lightning Web Components (3) import { LightningElement, track } from 'lwc'; import getContactList from '@salesforce/apex/ContactController.getContactList'; export default class ApexImperativeMethod extends LightningElement { @wire(getContactList) contacts; } Call method in server-side Apex Controller using @wire
  • 44. Data Access in Lightning Web Components (4) import { LightningElement, track } from 'lwc'; import getContactList from '@salesforce/apex/ContactController.getContactList'; export default class ApexImperativeMethod extends LightningElement { @track contacts; @track error; handleLoad() { getContactList().then(result => { this.contacts = result; }).catch(error => { this.error = error; }); } } Call method in server-side Apex Controller using @track attributes and Promises
  • 45. Decorator Description @api To expose a public property, decorate it with @api. Public properties define the API for a component. An owner component that uses the component in its markup can access the component’s public properties. Public properties are reactive. If the value of a reactive property changes, the component’s template rerenders any content that references the property. @track To track a private property’s value and rerender a component when it changes, decorate the property with @track. Tracked properties are also called private reactive properties. @wire To read Salesforce data, Lightning web components use a reactive wire service. When the wire service provisions data, the component rerenders. Components use @wire in their JavaScript class to specify a wire adaptor or an Apex method. Introducing Javascript Decorators https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_decorators
  • 46. Decorator Syntax Syntax @decorator_name(<optional_method_to_decorate>, <optional_arguments>) propertyOrFunctionBeingDecorated; Examples @track bar; @api foo; @wire(getRecord, {recordId: '0014E00000ySOIMQA4', fields}) contact; A decorator basically returns a new property or function with new, decorated, functionality.
  • 47. Decorator Syntax Syntax @decorator_name(<optional_method_to_decorate>, <optional_arguments>) propertyOrFunctionBeingDecorated; Examples @wire(getRecord, {recordId: '0014E00000ySOIMQA4', fields}) contact; @track bar; @api foo; A decorator basically returns a new property or function with new, decorated, functionality. Hard coding the recordId doesn’t work in reality so of course there is a solution for that… @api recordId; @wire(getRecord, {recordId: '$recordId', fields}) In the wire adapter’s configuration object, prefix a value with $ to reference a property of the component instance. The $ prefix tells the wire service to treat it as a property of the class and evaluate it as this.propertyName. The property is reactive. If the property’s value changes, new data is provisioned and the component rerenders. “
  • 48. Reactive vs. non-Reactive Attributes • Reactive = Will make the template rerender when changed • Non-reactive = Will not make the template rerender when changed Reactive variable: $foo In the wire adapter’s configuration object, prefix a value with $ to reference a property of the component instance. The $ prefix tells the wire service to treat it as a property of the class and evaluate it as this.propertyName. The property is reactive. If the property’s value changes, new data is provisioned and the component rerenders. https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.data_wire_service_about
  • 49. Transitioning from Lightning Aura Components to Lightning Web Components
  • 50. Aura Component to Web Component Mapping
  • 51. Lightning Aura Components may contain Lightning Web Components Composition
  • 52. New, less verbose and error-prone, Syntax (1)
  • 53. New, less verbose and error-prone, Syntax (2)
  • 56. Getting Started with Lightning Web Components
  • 57. 1. Get a Spring ‘19 Org (could be a Developer org) https://developer.salesforce.com/signup 2. Install and Configure Visual Studio Code or other IDE https://code.visualstudio.com/ 3. Install and Configure Salesforce DX https://developer.salesforce.com/platform/dx Getting Started
  • 58. Get a Spring ‘19 Org
  • 59. Install and Configure Visual Studio Code or other IDE Extensions • Salesforce Extension Pack • Lightning Web Components Recommended • Lightning Web Component snippets for Javascript typeahead https://github.com/forcedotcom/salesforcedx-vscode/tree/develop/packages/salesforcedx-vscode-lwc/snippets
  • 60. Install and Configure Salesforce DX > sfdx plugins salesforcedx 44.0.7 > sfdx plugins:install salesforcedx@pre-release
  • 61. Sample Applications Recipes e-bikes More in the sample gallery https://trailhead.salesforce.com/sample-gallery
  • 62. git clone git@github.com:trailheadapps/lwc-recipes.git cd lwc_recipes sfdx force:org:create -v lwc_devhub -f config/project-scratch-def.json -a lwc_recipes sfdx force:source:push -u lwc_recipes sfdx force:user:permset:assign -n recipes -u lwc_recipes sfdx force:data:tree:import --plan ./data/data-plan.json -u lwc_recipes sfdx force:org:open -u lwc_recipes
  • 63. “Let’s check out the recipes…
  • 64. Lightning Web Components in Resources
  • 65. Introducing Lightning Web Components https://www.salesforce.com/video/4279551/ (and follow-up Q&A: https://www.youtube.com/watch?v=Rd8h-5e4KZs) Video Gallery https://developer.salesforce.com/tv/lwc-video-gallery Lightning Web Components Recordings
  • 66. Lightning Debug Mode – now really useful
  • 67. • No use of stored actions anymore – transparent using @AuraEnabled(cacheable=true) • No Console API in Lightning Web Components yet • No Web Developer support • Visual Studio Code • Extensions (Salesforce Extension Pack, Lightning Web Components) • Trailhead Trailmix (https://sfdc.co/LWC_Trailmix) • Schema support • import FIELD_EMAIL from “@salesforce/schema/Contact.Email” The fine print
  • 68.
  • 69.
  • 70. Quick Start: Lightning Web Components https://trailhead.salesforce.com/en/content/learn/projects/quick-start-lightning-web-components Trail: Build Lightning Web Components https://trailhead.salesforce.com/en/content/learn/trails/build-lightning-web-components Lightning Component Library https://developer.salesforce.com/docs/component-library Working with Aura and Lightning Web Components: Interoperability and Migration https://developer.salesforce.com/blogs/2019/02/working-with-aura-and-lightning-web-components-interoperability-and-migration.html The Future of Salesforce IDEs https://developer.salesforce.com/blogs/2018/12/the-future-of-salesforce-ides.html Resources
  • 72.

Editor's Notes

  1. Key Message Salesforce is a publicly traded company. Customers should make buying decisions only on the products commercially available. Talk Track Before I begin, just a quick note that you should base your purchasing decisions on products and services that are currently available.
  2. Suggested owner: Anne Talk Track The world of web development has changed rapidly over the last 5 years. More standards = less proprietary stuff to learn = great career investment = more resources (help) available, etc. Challenges in 2014 Proliferation of frameworks Components are not interoperable Skills are not transferable Resources are hard to find Framework abstractions are slow Benefits of Standards (2019) More standards, less proprietary Common component model Transferable skills and easier-to-find / easier-to-ramp-up developers Interoperable components Better performance (core features are implemented natively in web engines)
  3. Suggested owner: Anne Widely considered one of the core technologies that power the Internet, JavaScript is used in 95% of all websites, and IDC estimates there were 7.04 million full-time developers using JavaScript worldwide in 20181. Today, there is a massive shortage of developer talent — research shows there are approximately 250,000 unfilled developer jobs in the US alone — and this skills gap threatens to slow the pace of innovation. This underscores the importance of JavaScript and other standards-based approaches, as they empower companies to leverage existing skills rather than being forced to seek out developers versed in platform-specific languages. Key Messages We’re in the midst of the fourth industrial revolution, and teams need to rethink how they work to solve for the developer and skills gap The Lightning Platform empowers everyone across the organization to build applications and transform the employee or customer experience Talk Track When we go through technological revolutions like the fourth industrial revolution, there is a direct result on the labor market. In this case, a huge developer gap has ensued – not only developers, but data scientists, mobile experts, security experts, etc. How can we help solve this developer gap, which will only widen unless we start to empower people to learn and develop their skill set to thrive in the fourth industrial revolution.
  4. Suggested owner: Anne IT Message Takeaway: Standards based programming model makes dev resources easier to find and ramp: every JavaScript developer can build a Lightning component, and building on Salesforce is easier and fun (and less proprietary)
  5. Build slide - click through Salesforce improves the development experience through a secure, scalable platform, and a modular approach to experience and app composition.
  6. With LWC, components are faster, and they’re also easier to build, as the baseline skills required are the same JavaScript skills that virtually every modern web development project requires. This makes it easier to source and hire talent, as the skills are transferable to other projects. It also means talents parts of your team that don’t know Salesforce inside and out can still make a huge impact on your key CRM apps.
  7. Aura and LWC Components are designed to be interoperable - no wasted effort on recoding, compatibility designs, or migrations. Build on your existing component investments Lightning Web Components communicate seamlessly with existing components Rapidly adopt Lightning Web Components without rebuilding or replacing your Aura components Run Lightning web components in Aura components
  8. Owner: Jacob
  9. Suggested owner: Anne This slide brings LWC into context of the LIghtning Platform By combining this new web programming model with the Lightning Platform’s developer services and low-code tools, organizations can unleash new levels of productivity for delivering apps and customer experiences By combining Lightning Web Components with other Lightning Platform capabilities including pro-code tools like Salesforce DX, low-code solutions like Lightning App Builder and Lightning Flow, and enterprise services like Salesforce IoT and Salesforce Einstein, companies can build large-scale customer experiences, extend the functionality of CRM, build departmental-specific apps for everything from HR to finance, and more. Key Messages: Now building apps is everyone’s business!  The Lightning Platform is the only app dev platform that brings together business and IT  Talk Track  The Lighting Platform is the bridge between business and IT with no code builders pro code tools and out of the box enterprise services. No-Code Builders: Anyone can solve business problems fast using drag-and-drop tools, without writing a line of code Pro-Code Tools: Focus programmatic developers on the highest-value initiatives like building Lightning Components, with modern languages, dev ops and tools  Enterprise Services: Ensure governed and compliant app development, leveraging out-of-the-box functionality such as platform integration or identity services  Resources: Trailhead: https://trailhead.salesforce.com/en/content/learn/modules/starting_force_com First Call Deck: https://sfdc.co/platformFCD
  10. Link to pre-release org for technical audiences: https://salesforce.quip.com/F8LTAvryIayu
  11. Pre-release orgs are upgraded on 12/13 but people will not know of the existence of LWC or how to create one (there is no UI and everything is done through IDEs) until the release notes and documentation comes out on 12/17. Most people also don't have and won't sign up for a pre-release org, so for the majority, the first date will be 1/4 when the first wave of sandboxes are upgraded.