SlideShare a Scribd company logo
1 of 18
Visualforce Custom Design Patterns
Building Productive Visualforce Pages
Amy Larion, Yahoo! Inc, Product Manager
Amy Larion
Jay Jayakumaran, Yahoo! Inc, Senior Developer
@jsksjsu
Jay Jayakumaran
Safe harbor
Safe harbor 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.
Agenda - Visualforce Custom Design Patterns
 Bulk CRUD Pattern
 Grand Children Pattern
 Child Window Pattern
 Enhanced Related Lists Pattern
 Proxy Page Pattern
 Show/Hide Pattern
 Tab Based Pattern
 Generic Component Pattern
Yahoo! Partnerships CRM


Manage information about Yahoo! Partners for Business Development, Legal, Finance, and Corporate
Development teams.



Parent  Children  Grand Children Relationships and bulk CRUD (Create, Read, Update, and
Delete) transactions.



Custom sObjects and Visualforce pages due to business needs on complex revenue share
partnerships.
Our approach towards SFDC CRUD User Interface


Dynamic UI ( AJAX)
•
•



Dynamic Create, Update, and Delete without page Refresh
Show and Hide components based on user actions

Maximize User Productivity
•
•

Create Parent  Children  Grand Children in one Save Button click

•



Support Bulk CRUD operations wherever possible
Reduce the number of Button Clicks

Easier Navigation
•

Try to keep the user on the same page as much as possible

•

Reduce the number of page navigations

•

Use Child window pop ups in place of a new page
Conventional User Navigation in SFDC

Innovation using Visualforce
Only one Page- (Parent, Children, and Grand Children CRUD)
Why Build Visualforce Pages ?
Bulk CRUD Pattern (User Productivity)


Create Parent  Children  Grand Children records in one SAVE



Generally used to facilitate complex business requirements



Insert Parent first and then children to associate them



Use SavePoints, try catch blocks, Database methods, and Rollbacks in complex bulk operations



DEMO
Child Object details

Parent Object
details
Grand Children Pattern (User Navigation)


In Standard SFDC, drilling down on the Grand Children records from the parent record requires 3
pages.



Accommodate the CRUD of children and Grand Children records in just one page



Used generally in the Parent record Detail/View page



Achieved through Radio Button related lists or Expand Collapse pattern



DEMO
Parent

Child

Grand Child
Child Window Pattern (User Navigation)


Easy to create Children and Grand Children records using child windows rather down
drilling down to new pages



On closing the child window, refresh the parent window



DEMO

Parent Window

Child Window
Enhanced Related Lists Pattern (User Productivity)


Mass Edit Related Lists
•
•

No limit on the number of columns to be displayed

•

Sort enabled on all columns

•

Pagination provided using Standard Set Controller

•



Bulk Edit the children records by staying on the Parent record’s View page

DEMO

Bulk Editable Related Lists

Left - Right Panels
•

Show related list records in the left panel

•

Do Read, Edit, and Delete on the right panel by selecting a record in the left panel

•

DEMO

Left Panel

Right Panel
Proxy Page Pattern (Assign VF pages to a Record Type)


Used as Router VF Pages for New, Edit, View and Clone, and other miscellaneous purposes in VF



Assign Standard Vanilla and VF Pages for different record Types since SFDC does not have the ability
to assign a VF page to a Record Type in the Profile/ Record Type/ Page Layout Assignment Wizard



Overrides the sObject New, Edit, View, and Clone links/buttons



DEMO

Standard Vanilla
Page
User Clicks the
sObject CRUD
Button

Proxy VF Code
Determines the Logged In
User Profile/ Record Type
assigned and routes to
either Standard or VF Page
Visualforce Page
Show/Hide Pattern (Action based UI)


Dynamically show/hide section/fields in a form based on one/many fields



Easy to fill the form details



Decreases the real estate of the form size



Can skip the record type selection page



DEMO

Show/hide the form sections based on the value
Tab Pattern (Optimize Form Real Estate)


Easy to fill the form details



Decreases the real estate of the form size



Supports Bulk CRUD operation easily



DEMO

Tabs optimize the real estate
Generic Component Pattern (Code Reusability)


Instead of Coding different VF pages and Apex classes for each object, code only one generic
component which can be reused for all the objects.



Example: Building Audit trail related lists or mass editable related lists



<c:GenericHistoryComponent myObject="{!Contract}"/>



DEMO
Generic Audit trail component
Benefits of Visualforce UI Patterns


Helps to solve complex Business problems (both DB level and UI level) more quickly using
Apex/Visualforce



Spend less time in analyzing and researching



Applying multiple patterns in single page results in productive UI and easier navigation



Code Reusability
Visualforce Custom Design Patterns
Visualforce Custom Design Patterns

More Related Content

What's hot

Hanging gardens of babylon, mesopotamia
Hanging gardens of babylon, mesopotamiaHanging gardens of babylon, mesopotamia
Hanging gardens of babylon, mesopotamiaSAYANTAN PAUL
 
HISTORY: Persian Architecture 1.0
HISTORY: Persian Architecture 1.0HISTORY: Persian Architecture 1.0
HISTORY: Persian Architecture 1.0ArchiEducPH
 
Mesoamerican civilizations
Mesoamerican civilizationsMesoamerican civilizations
Mesoamerican civilizationsHST130mcc
 
Hittites, Ancient Greece, Assyrians, Babylonians, And Phoenicians
Hittites, Ancient Greece, Assyrians, Babylonians, And PhoeniciansHittites, Ancient Greece, Assyrians, Babylonians, And Phoenicians
Hittites, Ancient Greece, Assyrians, Babylonians, And Phoeniciansryan
 
Ancient Egypt: Chapter 3 PowerPoint
Ancient Egypt: Chapter 3 PowerPointAncient Egypt: Chapter 3 PowerPoint
Ancient Egypt: Chapter 3 PowerPointsmolinskiel
 
Egyptian mythology
Egyptian mythologyEgyptian mythology
Egyptian mythologyTyboy
 
Greek Art & Architecture
Greek Art & ArchitectureGreek Art & Architecture
Greek Art & Architectureamiller
 
The Assyrian Empire
The Assyrian EmpireThe Assyrian Empire
The Assyrian Empireguest98b6c0
 
The orders of greek architecture
The orders of greek architectureThe orders of greek architecture
The orders of greek architecturenorkoohe
 
Egyptian Architecture and Mesopotamian Architecture
Egyptian Architecture and Mesopotamian ArchitectureEgyptian Architecture and Mesopotamian Architecture
Egyptian Architecture and Mesopotamian ArchitectureJorene Lei Cabrera
 

What's hot (20)

Hanging gardens of babylon, mesopotamia
Hanging gardens of babylon, mesopotamiaHanging gardens of babylon, mesopotamia
Hanging gardens of babylon, mesopotamia
 
Ancient egypt
Ancient egyptAncient egypt
Ancient egypt
 
Assyria
AssyriaAssyria
Assyria
 
HISTORY: Persian Architecture 1.0
HISTORY: Persian Architecture 1.0HISTORY: Persian Architecture 1.0
HISTORY: Persian Architecture 1.0
 
Ancient greek architecture
Ancient greek architectureAncient greek architecture
Ancient greek architecture
 
Mesoamerican civilizations
Mesoamerican civilizationsMesoamerican civilizations
Mesoamerican civilizations
 
Hittites, Ancient Greece, Assyrians, Babylonians, And Phoenicians
Hittites, Ancient Greece, Assyrians, Babylonians, And PhoeniciansHittites, Ancient Greece, Assyrians, Babylonians, And Phoenicians
Hittites, Ancient Greece, Assyrians, Babylonians, And Phoenicians
 
Cambodian Architecture
Cambodian ArchitectureCambodian Architecture
Cambodian Architecture
 
Ancient Egypt
Ancient EgyptAncient Egypt
Ancient Egypt
 
Ancient Egypt: Chapter 3 PowerPoint
Ancient Egypt: Chapter 3 PowerPointAncient Egypt: Chapter 3 PowerPoint
Ancient Egypt: Chapter 3 PowerPoint
 
Egyptian queen nefertiti
Egyptian queen nefertitiEgyptian queen nefertiti
Egyptian queen nefertiti
 
Egyptian mythology
Egyptian mythologyEgyptian mythology
Egyptian mythology
 
Greek Art & Architecture
Greek Art & ArchitectureGreek Art & Architecture
Greek Art & Architecture
 
The Assyrian Empire
The Assyrian EmpireThe Assyrian Empire
The Assyrian Empire
 
The orders of greek architecture
The orders of greek architectureThe orders of greek architecture
The orders of greek architecture
 
Greek & Roman Gods & Goddesses
Greek & Roman Gods & Goddesses Greek & Roman Gods & Goddesses
Greek & Roman Gods & Goddesses
 
Egyptian Architecture and Mesopotamian Architecture
Egyptian Architecture and Mesopotamian ArchitectureEgyptian Architecture and Mesopotamian Architecture
Egyptian Architecture and Mesopotamian Architecture
 
Greek Architecture
Greek ArchitectureGreek Architecture
Greek Architecture
 
Late Classical Art: Alexander the Great
Late Classical Art:  Alexander the GreatLate Classical Art:  Alexander the Great
Late Classical Art: Alexander the Great
 
The Parthenon
The ParthenonThe Parthenon
The Parthenon
 

Similar to Visualforce Custom Design Patterns

Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Salesforce Partners
 
Sales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best PracticesSales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best PracticesSalesforce Partners
 
5 Easy Ways to Make Your Org Instantly More User Friendly
5 Easy Ways to Make Your Org Instantly More User Friendly5 Easy Ways to Make Your Org Instantly More User Friendly
5 Easy Ways to Make Your Org Instantly More User FriendlyTraction on Demand
 
Community presentation cool stuff in summer 20 sf welly - updated
Community presentation   cool stuff in summer 20 sf welly - updatedCommunity presentation   cool stuff in summer 20 sf welly - updated
Community presentation cool stuff in summer 20 sf welly - updatedAnna Loughnan Colquhoun
 
Get Nerdy with Lightning Experience Page Layouts
Get Nerdy with Lightning Experience Page LayoutsGet Nerdy with Lightning Experience Page Layouts
Get Nerdy with Lightning Experience Page LayoutsSalesforce Admins
 
Customize Salesforce in a Flash with Lightning
Customize Salesforce in a Flash with LightningCustomize Salesforce in a Flash with Lightning
Customize Salesforce in a Flash with LightningSalesforce Admins
 
Build Faster with Base Lightning Components
Build Faster with Base Lightning ComponentsBuild Faster with Base Lightning Components
Build Faster with Base Lightning ComponentsSalesforce Developers
 
Chicago Nonprofit 10 24 Salesforce Labs + Winter '20
Chicago Nonprofit 10 24 Salesforce Labs + Winter '20Chicago Nonprofit 10 24 Salesforce Labs + Winter '20
Chicago Nonprofit 10 24 Salesforce Labs + Winter '20csupilowski
 
Orlando SFDC User Group 10/2009
Orlando SFDC User Group 10/2009Orlando SFDC User Group 10/2009
Orlando SFDC User Group 10/2009Joshua Hoskins
 
Preparing for Lightning: Replacing URL Hacks with Actions
Preparing for Lightning: Replacing URL Hacks with ActionsPreparing for Lightning: Replacing URL Hacks with Actions
Preparing for Lightning: Replacing URL Hacks with ActionsMike White
 
Building a Single Page App with Lightning Components
Building a Single Page App with Lightning ComponentsBuilding a Single Page App with Lightning Components
Building a Single Page App with Lightning ComponentsSalesforce Developers
 
Salesforce Spring19 Release Overview Deck
Salesforce Spring19 Release Overview DeckSalesforce Spring19 Release Overview Deck
Salesforce Spring19 Release Overview DeckRoy Gilad
 
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
 
Salesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to appSalesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to appRoy Gilad
 
Build Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForceBuild Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForcevraopolisetti
 
Mobilising your salesforce applications using j query mobile
Mobilising your salesforce applications using j query mobileMobilising your salesforce applications using j query mobile
Mobilising your salesforce applications using j query mobileAmit Jain
 

Similar to Visualforce Custom Design Patterns (20)

Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
 
Sales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best PracticesSales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best Practices
 
Introduction to Visualforce
Introduction to VisualforceIntroduction to Visualforce
Introduction to Visualforce
 
5 Easy Ways to Make Your Org Instantly More User Friendly
5 Easy Ways to Make Your Org Instantly More User Friendly5 Easy Ways to Make Your Org Instantly More User Friendly
5 Easy Ways to Make Your Org Instantly More User Friendly
 
Community presentation cool stuff in summer 20 sf welly - updated
Community presentation   cool stuff in summer 20 sf welly - updatedCommunity presentation   cool stuff in summer 20 sf welly - updated
Community presentation cool stuff in summer 20 sf welly - updated
 
Get Nerdy with Lightning Experience Page Layouts
Get Nerdy with Lightning Experience Page LayoutsGet Nerdy with Lightning Experience Page Layouts
Get Nerdy with Lightning Experience Page Layouts
 
Customize Salesforce in a Flash with Lightning
Customize Salesforce in a Flash with LightningCustomize Salesforce in a Flash with Lightning
Customize Salesforce in a Flash with Lightning
 
Build Faster with Base Lightning Components
Build Faster with Base Lightning ComponentsBuild Faster with Base Lightning Components
Build Faster with Base Lightning Components
 
Using Visualforce in Salesforce1
Using Visualforce in Salesforce1Using Visualforce in Salesforce1
Using Visualforce in Salesforce1
 
Chicago Nonprofit 10 24 Salesforce Labs + Winter '20
Chicago Nonprofit 10 24 Salesforce Labs + Winter '20Chicago Nonprofit 10 24 Salesforce Labs + Winter '20
Chicago Nonprofit 10 24 Salesforce Labs + Winter '20
 
Orlando SFDC User Group 10/2009
Orlando SFDC User Group 10/2009Orlando SFDC User Group 10/2009
Orlando SFDC User Group 10/2009
 
Preparing for Lightning: Replacing URL Hacks with Actions
Preparing for Lightning: Replacing URL Hacks with ActionsPreparing for Lightning: Replacing URL Hacks with Actions
Preparing for Lightning: Replacing URL Hacks with Actions
 
Visual Workflow Overview
Visual Workflow OverviewVisual Workflow Overview
Visual Workflow Overview
 
Building a Single Page App with Lightning Components
Building a Single Page App with Lightning ComponentsBuilding a Single Page App with Lightning Components
Building a Single Page App with Lightning Components
 
Salesforce Spring19 Release Overview Deck
Salesforce Spring19 Release Overview DeckSalesforce Spring19 Release Overview Deck
Salesforce Spring19 Release Overview Deck
 
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
 
Salesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to appSalesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to app
 
2023-05 Stockholm Admin Community Group - Summer '23.pptx
2023-05 Stockholm Admin Community Group - Summer '23.pptx2023-05 Stockholm Admin Community Group - Summer '23.pptx
2023-05 Stockholm Admin Community Group - Summer '23.pptx
 
Build Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForceBuild Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForce
 
Mobilising your salesforce applications using j query mobile
Mobilising your salesforce applications using j query mobileMobilising your salesforce applications using j query mobile
Mobilising your salesforce applications using j query mobile
 

More from 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
 
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
 
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
 
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
 
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
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce 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
 

More from 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
 
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
 
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
 
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
 
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
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
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
 

Recently uploaded

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Visualforce Custom Design Patterns

  • 1. Visualforce Custom Design Patterns Building Productive Visualforce Pages Amy Larion, Yahoo! Inc, Product Manager Amy Larion Jay Jayakumaran, Yahoo! Inc, Senior Developer @jsksjsu Jay Jayakumaran
  • 2. Safe harbor Safe harbor 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. Agenda - Visualforce Custom Design Patterns  Bulk CRUD Pattern  Grand Children Pattern  Child Window Pattern  Enhanced Related Lists Pattern  Proxy Page Pattern  Show/Hide Pattern  Tab Based Pattern  Generic Component Pattern
  • 4. Yahoo! Partnerships CRM  Manage information about Yahoo! Partners for Business Development, Legal, Finance, and Corporate Development teams.  Parent  Children  Grand Children Relationships and bulk CRUD (Create, Read, Update, and Delete) transactions.  Custom sObjects and Visualforce pages due to business needs on complex revenue share partnerships.
  • 5. Our approach towards SFDC CRUD User Interface  Dynamic UI ( AJAX) • •  Dynamic Create, Update, and Delete without page Refresh Show and Hide components based on user actions Maximize User Productivity • • Create Parent  Children  Grand Children in one Save Button click •  Support Bulk CRUD operations wherever possible Reduce the number of Button Clicks Easier Navigation • Try to keep the user on the same page as much as possible • Reduce the number of page navigations • Use Child window pop ups in place of a new page
  • 6. Conventional User Navigation in SFDC Innovation using Visualforce Only one Page- (Parent, Children, and Grand Children CRUD)
  • 8. Bulk CRUD Pattern (User Productivity)  Create Parent  Children  Grand Children records in one SAVE  Generally used to facilitate complex business requirements  Insert Parent first and then children to associate them  Use SavePoints, try catch blocks, Database methods, and Rollbacks in complex bulk operations  DEMO Child Object details Parent Object details
  • 9. Grand Children Pattern (User Navigation)  In Standard SFDC, drilling down on the Grand Children records from the parent record requires 3 pages.  Accommodate the CRUD of children and Grand Children records in just one page  Used generally in the Parent record Detail/View page  Achieved through Radio Button related lists or Expand Collapse pattern  DEMO Parent Child Grand Child
  • 10. Child Window Pattern (User Navigation)  Easy to create Children and Grand Children records using child windows rather down drilling down to new pages  On closing the child window, refresh the parent window  DEMO Parent Window Child Window
  • 11. Enhanced Related Lists Pattern (User Productivity)  Mass Edit Related Lists • • No limit on the number of columns to be displayed • Sort enabled on all columns • Pagination provided using Standard Set Controller •  Bulk Edit the children records by staying on the Parent record’s View page DEMO Bulk Editable Related Lists Left - Right Panels • Show related list records in the left panel • Do Read, Edit, and Delete on the right panel by selecting a record in the left panel • DEMO Left Panel Right Panel
  • 12. Proxy Page Pattern (Assign VF pages to a Record Type)  Used as Router VF Pages for New, Edit, View and Clone, and other miscellaneous purposes in VF  Assign Standard Vanilla and VF Pages for different record Types since SFDC does not have the ability to assign a VF page to a Record Type in the Profile/ Record Type/ Page Layout Assignment Wizard  Overrides the sObject New, Edit, View, and Clone links/buttons  DEMO Standard Vanilla Page User Clicks the sObject CRUD Button Proxy VF Code Determines the Logged In User Profile/ Record Type assigned and routes to either Standard or VF Page Visualforce Page
  • 13. Show/Hide Pattern (Action based UI)  Dynamically show/hide section/fields in a form based on one/many fields  Easy to fill the form details  Decreases the real estate of the form size  Can skip the record type selection page  DEMO Show/hide the form sections based on the value
  • 14. Tab Pattern (Optimize Form Real Estate)  Easy to fill the form details  Decreases the real estate of the form size  Supports Bulk CRUD operation easily  DEMO Tabs optimize the real estate
  • 15. Generic Component Pattern (Code Reusability)  Instead of Coding different VF pages and Apex classes for each object, code only one generic component which can be reused for all the objects.  Example: Building Audit trail related lists or mass editable related lists  <c:GenericHistoryComponent myObject="{!Contract}"/>  DEMO Generic Audit trail component
  • 16. Benefits of Visualforce UI Patterns  Helps to solve complex Business problems (both DB level and UI level) more quickly using Apex/Visualforce  Spend less time in analyzing and researching  Applying multiple patterns in single page results in productive UI and easier navigation  Code Reusability