Visualforce apps can be adapted to the Lightning Experience and drive large-scale adoption. Join us for this exclusive webinar to learn about how Visualforce works with Lightning components and the Lightning Design System. You’ll learn about the right tools and best practices to create best in class solutions for Lightning Experience development.
Lightning Design System and Components for Visualforce Developers
1.
2. Forward-Looking Statement
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.
3. Go Social!
Salesforce Developers
Salesforce Developers
Salesforce Developers
The video will be posted to YouTube & the
webinar recap page (same URL as registration).This webinar is being recorded!
@salesforcedevs
4. Have Questions?
● Don’t wait until the end to ask your question!
● Technical support will answer questions starting now.
● Respect Q&A etiquette
● Please don’t repeat questions. The support team is working their
way down the queue.
● Stick around for live Q&A at the end
● Speakers will tackle more questions at the end, time-allowing
● Head to Developer Forums
● More questions? Visit developer.salesforce.com/forums
5. Agenda
● Visualforce Overview
● Lightning Experience Overview
● Adopt Visualforce in Lightning Experience
● Lightning Component Overview
● Lightning general guidelines
● Usage of Visualforce and Lightning Components
6. ● UI framework to build custom pages for the Salesforce platform
● Tag-based markup language, similar to HTML, and a set of server-side “controllers” to
handle data and custom functionality.
● Content is rendered in server and displayed in browser.
● Ways of using Visualforce: Page or Component
● Usage of Visualforce:
● Override => Tabs, Standard Actions like New, View or Edit
● (Classic, LEX and Salesforce Mobile)
● Custom Tabs, Buttons and Links
● Inside page layout
Overview of Visualforce
7. ● Metadata-driven tags
● Model-View-Controller pattern
● Data secured since it is hosted on Salesforce platform
● Dynamic rendering & synchronous data transfer
● Complex UI requirements can be addressed using JS frameworks
Benefits
8. ● Limited Interactivity since server call needed to manage data
● Higher Latency especially on Mobile - not designed for mobile
● View state limited to 135kb
● Not built for Lightning Experience
Caveats
9. ● Modern user experience from Salesforce
● LEX is a Single Page Application(SPA)
● Current view is rewritten dynamically based on User actions
● Page does not necessarily refresh
● Relies on Javascript for interactivity
● LEX’s one.app act as container where the UI components live
Overview of Lightning Experience(LEX)
10. ● Comprises of entities which reflects core design principles to develop UI for Salesforce
Apps
● Similar to Twitter Bootstrap
● SLDS ships 4 resources which helps us to develop apps to matches Salesforce Look and
Feel
● CSS framework
● Icons
● Fonts
● Design Tokens
Salesforce Lightning Design System(SLDS)
11. ● Build Visualforce using SLDS to match the Lightning platform look and feel
● For context aware UI, use lightningStylesheets option(beta)
● For better performance, we can use 3rd party MVC frameworks like AngularJS
● Build the whole functionality in Lightning Component
Moving to Lightning!:
12. ● Lightning Design System helps to match the look and feel of the Salesforce app
● Set standardStylesheets="false"(Recommended)
● Use <apex:slds />
● Use appropriate class as mentioned in the SLDS website
Styling beyond lightningStyleSheets
13. ● Deliver appropriate UI theme based on environment (Classic or LEX) use
● lightningStylesheets="true"(beta)
● May need some tweaks in the markup
● In Classic, Visualforce page will be rendered in standard classic styles
● In Lightning Experience, Visualforce components will automatically pickup the SLDS styles
Changing the UI theme
17. ● UI framework for developing dynamic web apps for mobile and desktop devices
● First choice framework to develop UI in Lightning Experience
● Built on the open source Aura framework
● Tag based similar to HTML and Visualforce and uses Javascript to manage data
● Can leverage Apex or Lightning Data Service for data access
Overview of Lightning Component Framework
18. ● Composing UI into potentially reusable units
● Supports OOP concepts like Inheritance, Interfaces,.. etc
● Event-driven mechanism to communicate with other components
● LockerService restricts unauthorised access to the component internals
Benefits
19. ● Learning curve is high compared to Visualforce
● Unlike Visualforce page, identifying and composing Application into components needs to
follow best practices.
● Not all 3rd party libraries can be used
● No Advanced In-built features like renderAsPDF, charting,.. supported at the moment
Caveats
20. ● Understand the architectural difference between Visualforce and Lightning Component
● Page-by-Page vs Single-Page Application
● Page vs Component Lifecycle
● Modifying the DOM
● Coding
● Understand Javascript nuances
● Debugging
● Browser developer tools
● Salesforce Lightning Inspector
● Salesforce CLI
Considerations moving to Lightning Component
21. ● Identify the parts of the page which can be developed as a component
● The "part(s)" can be a specific feature or a group of features which solves a use-case
● Don’t overload a component by putting everything into it
● Don’t over complicate stuffs by creating everything as components
● Not all components are reusable, but it can be potentially reusable
● Custom table row (<tr />) component for a editable table component
Building Lightning Component
22. Working with Data
Visualforce Lightning Component
Standard Controller <apex:page
standardController=”” />
Lightning Data Service(LDS)
Eg: <force:recordData ../>
Custom Controller <apex:page controller=”” /> <aura:component controller=””
/>
Extension Controller <apex:page
standardController=””
extension=”” />
Combine LDS and custom
controller
Standard List Controller <apex:page
standardController=””
recordSetVar=”” />
In the road map
23. ● No need to use custom controller
● Record is shared across all components on a page/view
● Promotes consistency
● Notifies component when the record changes
● Best way to do CRUD Operations when working with a single record
Lightning Data Service
Working with Data(Cont..)
24. ● Available only in Lightning Experience and Salesforce app
● Lightning Components for Visualforce, Lightning Out, or Communities isn’t supported
● Supports only primitive DML operations - create, read, update, and delete of single record
● Doesn’t notify components if that record is changed on the server (in the road map)
Considerations of Lightning Data Service
Working with Data(Cont..)
25. ● Custom Tab
● Inside Lightning Record Detail page, Lightning Communities and Lightning Pages
● Override Standard Actions - View, New, New Event, Edit, and Tab in Lightning Experience
and the Salesforce mobile app
● Custom Actions
● Integrate with Flow
Lightning Component : Usage in LEX
26. Lightning Component : Usage in LEX
Visualforce Lightning Component
Classic LEX Mobile Classic LEX Mobile
Record
Tab
n/a n/a
List n/a n/a n/a n/a
View n/a
Edit n/a
New n/a
Delete n/a
n/a - you cannot access the override