SlideShare une entreprise Scribd logo
1  sur  33
Lightning Experience
with VisualForce
best practices
Shashank Srivatsavaya
Senior Developer Advocate
@shashforce
Lightning Experience with VisualForce
best practices
Keeping VisualForce in context with Lightning Experience and Lightning Components
Shashank Srivatsavaya
Senior Developer Advocate
@shashforce
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 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.
Lightning Summer ‘16!
Summer ‘16 Release Dates
• May 6th and 7th – Sandboxes upgraded
• May 20th – NA44 and NA45 upgraded
• June 3rd – NA6,7,8,9,17,18,22,28,29,31,EU5 upgraded
• June 8th and 9th – Release Readiness Live Broadcasts
• June 12th and 13th – All other instances, Summer ‘16 fully live
www.salesforce.com/customer-resources/releases/summer16/
Visualforce in LEx, GA with Summer ‘16
Previously beta with Spring ‘16
Visualforce in
Lightning Experience
Run a Visualforce page from the app launcher
Using Visualforce in Lightning Experience
“Just Works”, mostly
Add a Visualforce page to the Navigation Menu
Using Visualforce in Lightning Experience
“Just Works”, mostly
Display a Visualforce page within a standard page layout
Using Visualforce in Lightning Experience
“Just Works”, mostly
Add a Visualforce page as a component in the Lightning App Builder
Using Visualforce in Lightning Experience
“Just Works”, mostly
Launch a Visualforce page as a Quick Action
Using Visualforce in Lightning Experience
“Just Works”, mostly
Override standard/custom buttons/links with Visualforce. (No JavaScript buttons
yet)
Using Visualforce in Lightning Experience
“Just Works”, mostly
Demo
• Classic UI Development mode footer is not available in LEx UI
• /apex/vfpagename shows the page in Classic UI
• To test in LEx, create a Visualforce tab and add it to an App
• Test in multiple environments: Classic, LEx, Salesforce1
• Don’t wait till the end. Test Early, often, everything!
Developing Visualforce for Lightning Experience
Some subtle differences…
Unlike in Classic UI,
• VF does NOT own the whole page in LEx
• VF runs in an iframe inside the “one/one.app” LEx container
• “window.location” will not work
• Use built-in “sforce.one” javascript utility (unavailable in Classic UI) for
navigation
• <apex:page> “showHeader” and “showSidebar” Attributes Are Always FALSE
Visualforce in Classic UI v/s Lightning
Experience
VF app container v/s LEx app container
• Use global variables in Visualforce expressions to adapt your pages to
Lightning Experience, Salesforce Classic, and Salesforce1.
• Use $User.UITheme to get user’s UI theme “preference”
• Use $User.UIThemeDisplayed to get the user’s “current UI context”.
• In Apex, use equivalent system methods UserInfo.getUiTheme() and
UserInfo.getUiThemeDisplayed()
• Through SOQL or API, use the field “UserPreferencesLightningExperiencePreferred” on the User object.
This only gives user’s “preference”, not “current UI context”. Not recommended, but it’s there
Detecting the UI
Where am I? Classic or LEx or SF1 or the century old basic UI?
• Theme1—Obsolete Salesforce theme
• Theme2—Salesforce Classic 2005 user interface theme
• Theme3—Salesforce Classic 2010 user interface theme
• Theme4d—Modern “Lightning Experience” Salesforce theme
• Theme4t—Salesforce1 mobile Salesforce theme
• PortalDefault—Salesforce Customer Portal theme
• Webstore—Salesforce AppExchange theme
Detecting the UI
UITheme and UIThemeDisplayed possible values
• PageReference redirection works like a charm, part of “Just Works”
• However, consider using modern navigation, like the sforce.one utility
• DON’T use “window.location”, doesn’t work!
• Try not to use static URLs, like link = '/' + accountId + '/e’
• VF markup example: use !URLFOR($Action.Contact.Edit, recordId)}
• Javascript example: use sforce.one.navigateToSObject(recordId)
Visualforce navigation in Lightning Experience
What’s different and what’s not!
• Visualforce using standard style, looks the same in LEx as well.
• Adding and changing style in VF is the same as in Classic UI, “Just Works”
• For new Visualforce pages, consider using the “Salesforce Lightning Design
System”
• For existing Visualforce pages, don’t worry too much about changing styles to
suit LEx, watch out for LEx’s further evolution
Styling Visualforce for Lightning Experience
Visual design considerations
• Lightning Experience Header and Navigation Menu Can’t Be Suppressed
• Salesforce Classic Header and Sidebar are Always Suppressed in Lex
• Not recommended to use <apex:iframe> in VF for LEx, avoid nested iframes
complications
• LEx Home Page doesn’t automatically show Visualforce which is part of
Classic UI Home Page. Any VF should be explicitly added to the LEx Home
Page.
• <apex:relatedList> support based on whether the object is supported
What else to look out for?
Other considerations for Visualforce in Lightning Experience
Lightning Components in
Visualforce
• Lightning Components can be added to Visualforce using a mechanism of the
“Lightning Out” feature
• Lightning Out allows including a Lightning Component inside any external web
application outside a Salesforce org.
Lightning inside Visualforce
Use Lightning Components inside a Visualforce page
Add <apex:includeLightning /> at the beginning of your VF page. This
component loads the JavaScript file used by Lightning Components for VF.
Alternatively, use can just add the more generic line:
<apex:includeScript value="/lightning/lightning.out.js" />
Including a Lightning Component in VF
Step 1 of 3: Add Lightning capability in VF
Define component dependencies, by creating a special purpose “Lightning
Dependency App”, which declares dependencies on any Lightning Components
that it uses.
Any Lightning Components you wish to include in the Visualforce pabe should
be declared as dependencies in this app. Give it a name, like “lcvfTest.app”
Reference the app in the VF page using $Lightning.Use()
Including a Lightning Component in VF
Step 2 of 3: Reference a Lightning App
Create the component on a page using $Lightning.createComponent(String
type, Object attributes, String locator, function callback)
This function is similar to $A.createComponent(), but includes an additional
parameter, domLocator, which specifies the DOM element where you want the
component inserted.
Including a Lightning Component in VF
Step 3 of 3: Create Component on the page
Simple sample, sample simple!
Including a Lightning Component in VF
Demo
• Lightning is the future of Salesforce technology
• Both our mobile and new desktop are built with Lightning Components
• Visualforce and your customizations will continue to be supported in Lightning
Experience
Experience Platform Design
We will support Visualforce for the long term
Your customizations will be brought forward
Blending in with Lightning Experience
Example approach to migrating VF Pages based on customer usage
What should be
my approach? Visualforce Visualforce + JS Visualforce Mobile
Low Usage
Wait for LEx evolution Consider SLDS Componentize: LCVF + SLDS
Medium Usage
Componentize: LCVF +
SLDS
Restyle: SLDS Convert to LC + SLDS
High Usage
Convert to LC + SLDS Convert to LC + SLDS Convert to LC + SLDS
Consider Lightning Components for new
development projects
Convert key Visualforce inventory if it aligns
with your business strategy
Align new development to your business strategy
Lightning Components for new projects; optional for existing Visualforce
NOT required to migrate entire Visualforce inventory
Consider building key Visualforce assets with Lightning
Components
Product backlog
/new app
Select high value business
processes
Questions?
thank y u
Lightning Experience with Visualforce Best Practices

Contenu connexe

Tendances

Automate All The Things with Flow
Automate All The Things with FlowAutomate All The Things with Flow
Automate All The Things with FlowSalesforce Admins
 
Salesforce Service cloud 3 presentation
Salesforce Service cloud 3 presentation Salesforce Service cloud 3 presentation
Salesforce Service cloud 3 presentation missmeryl
 
Salesforce Jumpstart: Getting Started as a Consulting Partner
Salesforce Jumpstart: Getting Started as a Consulting PartnerSalesforce Jumpstart: Getting Started as a Consulting Partner
Salesforce Jumpstart: Getting Started as a Consulting PartnerSalesforce Partners
 
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)Prashanth Kurimella
 
Demystify Salesforce Bulk API
Demystify Salesforce Bulk APIDemystify Salesforce Bulk API
Demystify Salesforce Bulk APIDhanik Sahni
 
Build Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexBuild Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexSalesforce Developers
 
Salesforce Service Cloud automatons
Salesforce Service Cloud automatonsSalesforce Service Cloud automatons
Salesforce Service Cloud automatonsRAMNARAYAN R
 
Salesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightningSalesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightningsuresh
 
Lwc presentation
Lwc presentationLwc presentation
Lwc presentationNithesh N
 
Generically Call External Classes from Managed Packages
Generically Call External Classes from Managed PackagesGenerically Call External Classes from Managed Packages
Generically Call External Classes from Managed PackagesSalesforce Developers
 
Salesforce Streaming Api
Salesforce Streaming ApiSalesforce Streaming Api
Salesforce Streaming ApiJayant Jindal
 
Strategies for Training End Users How To Use Salesforce
Strategies for Training End Users How To Use SalesforceStrategies for Training End Users How To Use Salesforce
Strategies for Training End Users How To Use SalesforceShell Black
 
A complete Salesforce implementation guide on how to implement Salesforce
A complete Salesforce implementation guide on how to implement SalesforceA complete Salesforce implementation guide on how to implement Salesforce
A complete Salesforce implementation guide on how to implement SalesforceSoftweb Solutions
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Angel Alberici
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...DataWorks Summit/Hadoop Summit
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Endless Use Cases with Salesforce Experience Cloud by Dar Veverka
Endless Use Cases with Salesforce Experience Cloud by Dar VeverkaEndless Use Cases with Salesforce Experience Cloud by Dar Veverka
Endless Use Cases with Salesforce Experience Cloud by Dar VeverkaAlesia Dvorkina
 

Tendances (20)

Automate All The Things with Flow
Automate All The Things with FlowAutomate All The Things with Flow
Automate All The Things with Flow
 
Salesforce Service cloud 3 presentation
Salesforce Service cloud 3 presentation Salesforce Service cloud 3 presentation
Salesforce Service cloud 3 presentation
 
Salesforce Jumpstart: Getting Started as a Consulting Partner
Salesforce Jumpstart: Getting Started as a Consulting PartnerSalesforce Jumpstart: Getting Started as a Consulting Partner
Salesforce Jumpstart: Getting Started as a Consulting Partner
 
Salesforce asynchronous apex
Salesforce asynchronous apexSalesforce asynchronous apex
Salesforce asynchronous apex
 
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
 
Demystify Salesforce Bulk API
Demystify Salesforce Bulk APIDemystify Salesforce Bulk API
Demystify Salesforce Bulk API
 
Build Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexBuild Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable Apex
 
Partner Business Org
Partner Business OrgPartner Business Org
Partner Business Org
 
Salesforce Service Cloud automatons
Salesforce Service Cloud automatonsSalesforce Service Cloud automatons
Salesforce Service Cloud automatons
 
Salesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightningSalesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightning
 
Lwc presentation
Lwc presentationLwc presentation
Lwc presentation
 
Generically Call External Classes from Managed Packages
Generically Call External Classes from Managed PackagesGenerically Call External Classes from Managed Packages
Generically Call External Classes from Managed Packages
 
Salesforce Streaming Api
Salesforce Streaming ApiSalesforce Streaming Api
Salesforce Streaming Api
 
Strategies for Training End Users How To Use Salesforce
Strategies for Training End Users How To Use SalesforceStrategies for Training End Users How To Use Salesforce
Strategies for Training End Users How To Use Salesforce
 
A complete Salesforce implementation guide on how to implement Salesforce
A complete Salesforce implementation guide on how to implement SalesforceA complete Salesforce implementation guide on how to implement Salesforce
A complete Salesforce implementation guide on how to implement Salesforce
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Endless Use Cases with Salesforce Experience Cloud by Dar Veverka
Endless Use Cases with Salesforce Experience Cloud by Dar VeverkaEndless Use Cases with Salesforce Experience Cloud by Dar Veverka
Endless Use Cases with Salesforce Experience Cloud by Dar Veverka
 
Introduction to Apex Triggers
Introduction to Apex TriggersIntroduction to Apex Triggers
Introduction to Apex Triggers
 

Similaire à Lightning Experience with Visualforce Best Practices

Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Peter Chittum
 
ISV Lightning Webinar Series - Part 1 (December 1, 2015)
ISV Lightning Webinar Series - Part 1 (December 1, 2015)ISV Lightning Webinar Series - Part 1 (December 1, 2015)
ISV Lightning Webinar Series - Part 1 (December 1, 2015)Salesforce Partners
 
Building Lightning Components for ISVs (Dreamforce 2015)
Building Lightning Components for ISVs (Dreamforce 2015)Building Lightning Components for ISVs (Dreamforce 2015)
Building Lightning Components for ISVs (Dreamforce 2015)Salesforce Partners
 
Lightning customization with lightning app builder
Lightning customization with lightning app builderLightning customization with lightning app builder
Lightning customization with lightning app builderSalesforce Developers
 
Spring '16 Lightning Update for ISVs (March 15, 2016)
Spring '16 Lightning Update for ISVs (March 15, 2016)Spring '16 Lightning Update for ISVs (March 15, 2016)
Spring '16 Lightning Update for ISVs (March 15, 2016)Salesforce Partners
 
Make Your App Lightning Ready with Winter '17 (December 8, 2016)
Make Your App Lightning Ready with Winter '17 (December 8, 2016)Make Your App Lightning Ready with Winter '17 (December 8, 2016)
Make Your App Lightning Ready with Winter '17 (December 8, 2016)Salesforce Partners
 
Spring 17 ISV Release Readiness (February 16, 2017)
Spring 17 ISV Release Readiness (February 16, 2017)Spring 17 ISV Release Readiness (February 16, 2017)
Spring 17 ISV Release Readiness (February 16, 2017)Salesforce Partners
 
Migrating Visualforce Pages to Lightning
Migrating Visualforce Pages to LightningMigrating Visualforce Pages to Lightning
Migrating Visualforce Pages to LightningSalesforce Developers
 
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 ComponentsSalesforce Developers
 
Customizing Salesforce User Interfaces with Lightning Components
Customizing Salesforce User Interfaces with Lightning ComponentsCustomizing Salesforce User Interfaces with Lightning Components
Customizing Salesforce User Interfaces with Lightning ComponentsSalesforce Developers
 
Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comSalesforce Developers
 
Staying Ahead of the Curve with Lightning - Snowforce16 Keynote
Staying Ahead of the Curve with Lightning - Snowforce16 KeynoteStaying Ahead of the Curve with Lightning - Snowforce16 Keynote
Staying Ahead of the Curve with Lightning - Snowforce16 KeynoteSalesforce Admins
 
Lightning Design System and Components for Visualforce Developers
Lightning Design System and Components for Visualforce DevelopersLightning Design System and Components for Visualforce Developers
Lightning Design System and Components for Visualforce DevelopersSalesforce Developers
 
Salesforce Lightning Design System
Salesforce Lightning Design SystemSalesforce Lightning Design System
Salesforce Lightning Design SystemDurgesh Dhoot
 
Visualforce in Salesforce1: Optimizing your User Interface for Mobile
Visualforce in Salesforce1: Optimizing your User Interface for MobileVisualforce in Salesforce1: Optimizing your User Interface for Mobile
Visualforce in Salesforce1: Optimizing your User Interface for MobileSalesforce Developers
 
A Developer's Guide To Building Great Salesforce Consoles
A Developer's Guide To Building Great Salesforce ConsolesA Developer's Guide To Building Great Salesforce Consoles
A Developer's Guide To Building Great Salesforce ConsolesEnzhen Huang
 
Elevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackElevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackCarolEnLaNube
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop LondonKeir Bowden
 

Similaire à Lightning Experience with Visualforce Best Practices (20)

Spring '16 Release Preview Webinar
Spring '16 Release Preview Webinar Spring '16 Release Preview Webinar
Spring '16 Release Preview Webinar
 
Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016
 
ISV Lightning Webinar Series - Part 1 (December 1, 2015)
ISV Lightning Webinar Series - Part 1 (December 1, 2015)ISV Lightning Webinar Series - Part 1 (December 1, 2015)
ISV Lightning Webinar Series - Part 1 (December 1, 2015)
 
Using Visualforce in Salesforce1
Using Visualforce in Salesforce1Using Visualforce in Salesforce1
Using Visualforce in Salesforce1
 
Building Lightning Components for ISVs (Dreamforce 2015)
Building Lightning Components for ISVs (Dreamforce 2015)Building Lightning Components for ISVs (Dreamforce 2015)
Building Lightning Components for ISVs (Dreamforce 2015)
 
Lightning customization with lightning app builder
Lightning customization with lightning app builderLightning customization with lightning app builder
Lightning customization with lightning app builder
 
Spring '16 Lightning Update for ISVs (March 15, 2016)
Spring '16 Lightning Update for ISVs (March 15, 2016)Spring '16 Lightning Update for ISVs (March 15, 2016)
Spring '16 Lightning Update for ISVs (March 15, 2016)
 
Make Your App Lightning Ready with Winter '17 (December 8, 2016)
Make Your App Lightning Ready with Winter '17 (December 8, 2016)Make Your App Lightning Ready with Winter '17 (December 8, 2016)
Make Your App Lightning Ready with Winter '17 (December 8, 2016)
 
Spring 17 ISV Release Readiness (February 16, 2017)
Spring 17 ISV Release Readiness (February 16, 2017)Spring 17 ISV Release Readiness (February 16, 2017)
Spring 17 ISV Release Readiness (February 16, 2017)
 
Migrating Visualforce Pages to Lightning
Migrating Visualforce Pages to LightningMigrating Visualforce Pages to Lightning
Migrating Visualforce Pages to Lightning
 
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
 
Customizing Salesforce User Interfaces with Lightning Components
Customizing Salesforce User Interfaces with Lightning ComponentsCustomizing Salesforce User Interfaces with Lightning Components
Customizing Salesforce User Interfaces with Lightning Components
 
Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.com
 
Staying Ahead of the Curve with Lightning - Snowforce16 Keynote
Staying Ahead of the Curve with Lightning - Snowforce16 KeynoteStaying Ahead of the Curve with Lightning - Snowforce16 Keynote
Staying Ahead of the Curve with Lightning - Snowforce16 Keynote
 
Lightning Design System and Components for Visualforce Developers
Lightning Design System and Components for Visualforce DevelopersLightning Design System and Components for Visualforce Developers
Lightning Design System and Components for Visualforce Developers
 
Salesforce Lightning Design System
Salesforce Lightning Design SystemSalesforce Lightning Design System
Salesforce Lightning Design System
 
Visualforce in Salesforce1: Optimizing your User Interface for Mobile
Visualforce in Salesforce1: Optimizing your User Interface for MobileVisualforce in Salesforce1: Optimizing your User Interface for Mobile
Visualforce in Salesforce1: Optimizing your User Interface for Mobile
 
A Developer's Guide To Building Great Salesforce Consoles
A Developer's Guide To Building Great Salesforce ConsolesA Developer's Guide To Building Great Salesforce Consoles
A Developer's Guide To Building Great Salesforce Consoles
 
Elevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackElevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance Track
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
 

Plus de Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
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 InteroperabilitySalesforce Developers
 
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 dataSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesSalesforce Developers
 

Plus de Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components 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
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
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
 
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
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
 
Dreamforce Developer Recap
Dreamforce Developer RecapDreamforce Developer Recap
Dreamforce Developer Recap
 

Dernier

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 

Dernier (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 

Lightning Experience with Visualforce Best Practices

  • 1. Lightning Experience with VisualForce best practices Shashank Srivatsavaya Senior Developer Advocate @shashforce
  • 2. Lightning Experience with VisualForce best practices Keeping VisualForce in context with Lightning Experience and Lightning Components Shashank Srivatsavaya Senior Developer Advocate @shashforce
  • 3. 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 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.
  • 5. Summer ‘16 Release Dates • May 6th and 7th – Sandboxes upgraded • May 20th – NA44 and NA45 upgraded • June 3rd – NA6,7,8,9,17,18,22,28,29,31,EU5 upgraded • June 8th and 9th – Release Readiness Live Broadcasts • June 12th and 13th – All other instances, Summer ‘16 fully live www.salesforce.com/customer-resources/releases/summer16/ Visualforce in LEx, GA with Summer ‘16 Previously beta with Spring ‘16
  • 7. Run a Visualforce page from the app launcher Using Visualforce in Lightning Experience “Just Works”, mostly
  • 8. Add a Visualforce page to the Navigation Menu Using Visualforce in Lightning Experience “Just Works”, mostly
  • 9. Display a Visualforce page within a standard page layout Using Visualforce in Lightning Experience “Just Works”, mostly
  • 10. Add a Visualforce page as a component in the Lightning App Builder Using Visualforce in Lightning Experience “Just Works”, mostly
  • 11. Launch a Visualforce page as a Quick Action Using Visualforce in Lightning Experience “Just Works”, mostly
  • 12. Override standard/custom buttons/links with Visualforce. (No JavaScript buttons yet) Using Visualforce in Lightning Experience “Just Works”, mostly
  • 13. Demo
  • 14. • Classic UI Development mode footer is not available in LEx UI • /apex/vfpagename shows the page in Classic UI • To test in LEx, create a Visualforce tab and add it to an App • Test in multiple environments: Classic, LEx, Salesforce1 • Don’t wait till the end. Test Early, often, everything! Developing Visualforce for Lightning Experience Some subtle differences…
  • 15. Unlike in Classic UI, • VF does NOT own the whole page in LEx • VF runs in an iframe inside the “one/one.app” LEx container • “window.location” will not work • Use built-in “sforce.one” javascript utility (unavailable in Classic UI) for navigation • <apex:page> “showHeader” and “showSidebar” Attributes Are Always FALSE Visualforce in Classic UI v/s Lightning Experience VF app container v/s LEx app container
  • 16. • Use global variables in Visualforce expressions to adapt your pages to Lightning Experience, Salesforce Classic, and Salesforce1. • Use $User.UITheme to get user’s UI theme “preference” • Use $User.UIThemeDisplayed to get the user’s “current UI context”. • In Apex, use equivalent system methods UserInfo.getUiTheme() and UserInfo.getUiThemeDisplayed() • Through SOQL or API, use the field “UserPreferencesLightningExperiencePreferred” on the User object. This only gives user’s “preference”, not “current UI context”. Not recommended, but it’s there Detecting the UI Where am I? Classic or LEx or SF1 or the century old basic UI?
  • 17. • Theme1—Obsolete Salesforce theme • Theme2—Salesforce Classic 2005 user interface theme • Theme3—Salesforce Classic 2010 user interface theme • Theme4d—Modern “Lightning Experience” Salesforce theme • Theme4t—Salesforce1 mobile Salesforce theme • PortalDefault—Salesforce Customer Portal theme • Webstore—Salesforce AppExchange theme Detecting the UI UITheme and UIThemeDisplayed possible values
  • 18. • PageReference redirection works like a charm, part of “Just Works” • However, consider using modern navigation, like the sforce.one utility • DON’T use “window.location”, doesn’t work! • Try not to use static URLs, like link = '/' + accountId + '/e’ • VF markup example: use !URLFOR($Action.Contact.Edit, recordId)} • Javascript example: use sforce.one.navigateToSObject(recordId) Visualforce navigation in Lightning Experience What’s different and what’s not!
  • 19. • Visualforce using standard style, looks the same in LEx as well. • Adding and changing style in VF is the same as in Classic UI, “Just Works” • For new Visualforce pages, consider using the “Salesforce Lightning Design System” • For existing Visualforce pages, don’t worry too much about changing styles to suit LEx, watch out for LEx’s further evolution Styling Visualforce for Lightning Experience Visual design considerations
  • 20. • Lightning Experience Header and Navigation Menu Can’t Be Suppressed • Salesforce Classic Header and Sidebar are Always Suppressed in Lex • Not recommended to use <apex:iframe> in VF for LEx, avoid nested iframes complications • LEx Home Page doesn’t automatically show Visualforce which is part of Classic UI Home Page. Any VF should be explicitly added to the LEx Home Page. • <apex:relatedList> support based on whether the object is supported What else to look out for? Other considerations for Visualforce in Lightning Experience
  • 22. • Lightning Components can be added to Visualforce using a mechanism of the “Lightning Out” feature • Lightning Out allows including a Lightning Component inside any external web application outside a Salesforce org. Lightning inside Visualforce Use Lightning Components inside a Visualforce page
  • 23. Add <apex:includeLightning /> at the beginning of your VF page. This component loads the JavaScript file used by Lightning Components for VF. Alternatively, use can just add the more generic line: <apex:includeScript value="/lightning/lightning.out.js" /> Including a Lightning Component in VF Step 1 of 3: Add Lightning capability in VF
  • 24. Define component dependencies, by creating a special purpose “Lightning Dependency App”, which declares dependencies on any Lightning Components that it uses. Any Lightning Components you wish to include in the Visualforce pabe should be declared as dependencies in this app. Give it a name, like “lcvfTest.app” Reference the app in the VF page using $Lightning.Use() Including a Lightning Component in VF Step 2 of 3: Reference a Lightning App
  • 25. Create the component on a page using $Lightning.createComponent(String type, Object attributes, String locator, function callback) This function is similar to $A.createComponent(), but includes an additional parameter, domLocator, which specifies the DOM element where you want the component inserted. Including a Lightning Component in VF Step 3 of 3: Create Component on the page
  • 26. Simple sample, sample simple! Including a Lightning Component in VF
  • 27. Demo
  • 28. • Lightning is the future of Salesforce technology • Both our mobile and new desktop are built with Lightning Components • Visualforce and your customizations will continue to be supported in Lightning Experience Experience Platform Design We will support Visualforce for the long term Your customizations will be brought forward
  • 29. Blending in with Lightning Experience Example approach to migrating VF Pages based on customer usage What should be my approach? Visualforce Visualforce + JS Visualforce Mobile Low Usage Wait for LEx evolution Consider SLDS Componentize: LCVF + SLDS Medium Usage Componentize: LCVF + SLDS Restyle: SLDS Convert to LC + SLDS High Usage Convert to LC + SLDS Convert to LC + SLDS Convert to LC + SLDS
  • 30. Consider Lightning Components for new development projects Convert key Visualforce inventory if it aligns with your business strategy Align new development to your business strategy Lightning Components for new projects; optional for existing Visualforce NOT required to migrate entire Visualforce inventory Consider building key Visualforce assets with Lightning Components Product backlog /new app Select high value business processes

Notes de l'éditeur

  1. vdodla-duzj@force.com / MNCLTocc6DvzhWoE
  2. You might be wondering, “Should I build with Visualforce or should I build with Lightning Components? And what should I do with all of the Visualforce I’ve already built? In both cases, take a step back and focus on your overall business strategy and the key business processes that support that strategy. This is an opportunity to take a fresh look at your backlog and reprioritize your development projects. This is also an opportunity to assess your existing Visualforce inventory to determine what pages are still key to achieving your business strategy. It is likely that many pages do not need to be considered because they are no longer relevant. Once you know your key business processes, assess if Lightning Components currently meet your technical needs and choose the best development strategy. * we are hoping that today you will see that lightning is a better component based framework for factors for mobile, desktop, tablets, gives your customers flexibility and gives customer ability you didnt think possibl more takeaways: Better UX, Component-based framework, heart of our development effort, No need for MyDomain Security (e.g. when using certain JS frameworks) You can start testing now in pre-release org (GS0) better UX- why? -if it is vf behind the scenes, it still acts as a standard vf page, still has to go back to the server to update and refresh if lightning, everything is faster- would act as an ajax submission, whole page doesn’t need to refresh, but for vf, form tags work slower