SlideShare a Scribd company logo
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

Medieval cities
Medieval cities Medieval cities
Medieval cities
Vibhuti Pathare
 
Greek Art & Architecture
Greek Art & ArchitectureGreek Art & Architecture
Greek Art & Architecture
amiller
 
Athens akansha &amp; pounomi
Athens  akansha &amp; pounomi Athens  akansha &amp; pounomi
Athens akansha &amp; pounomi
Ar Tirkey
 
Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...
Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...
Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...
Biplav Srivastava
 
Ancient Roman Architecture
Ancient  Roman  ArchitectureAncient  Roman  Architecture
Ancient Roman Architecture
guestf607233
 
Greek architecture
Greek architectureGreek architecture
Greek architecture
Self employed
 
Historiadelosgriegos 1
Historiadelosgriegos 1Historiadelosgriegos 1
Historiadelosgriegos 1
tonicontreras
 
Addressing Safety Through Design for Dindoshi Terminal (Draft)
Addressing Safety Through Design for Dindoshi Terminal (Draft)Addressing Safety Through Design for Dindoshi Terminal (Draft)
Addressing Safety Through Design for Dindoshi Terminal (Draft)
WRI Ross Center for Sustainable Cities
 
Chapter Five: The Roman World
Chapter Five: The Roman WorldChapter Five: The Roman World
Chapter Five: The Roman World
Douglas Vail
 
GRECIA HISTORIA ANTIGUA
GRECIA HISTORIA ANTIGUAGRECIA HISTORIA ANTIGUA
Neo classical architecture
Neo classical architectureNeo classical architecture
Neo classical architecture
pandichelvam tharanghini
 
Literature study
Literature studyLiterature study
Literature study
Rajasri Subramanian
 
AH 1 Ancient Rome part 2
AH 1 Ancient Rome part 2AH 1 Ancient Rome part 2
AH 1 Ancient Rome part 2
Jacques de Beaufort
 
Permeability v2-Urban Design
Permeability v2-Urban DesignPermeability v2-Urban Design
Kings cross regeneration
Kings cross regenerationKings cross regeneration
Kings cross regeneration
Julian Coleman
 
Bus Karo: Bus Depot Design Guideline (Session VII)
Bus Karo: Bus Depot Design Guideline (Session VII)Bus Karo: Bus Depot Design Guideline (Session VII)
Bus Karo: Bus Depot Design Guideline (Session VII)
WRI Ross Center for Sustainable Cities
 
AHTR Roman and Etruscan Art
AHTR Roman and Etruscan ArtAHTR Roman and Etruscan Art
AHTR Roman and Etruscan Art
Art History Teaching Resources
 
Arc de Triomphe from Paris
Arc de Triomphe from Paris Arc de Triomphe from Paris
Arc de Triomphe from Paris
historiacolegium
 
RGIA, Hyderabad
RGIA, HyderabadRGIA, Hyderabad
RGIA, Hyderabad
shiv404
 
HISTORY: Greek Civic Architecture
HISTORY: Greek Civic ArchitectureHISTORY: Greek Civic Architecture
HISTORY: Greek Civic Architecture
ArchiEducPH
 

What's hot (20)

Medieval cities
Medieval cities Medieval cities
Medieval cities
 
Greek Art & Architecture
Greek Art & ArchitectureGreek Art & Architecture
Greek Art & Architecture
 
Athens akansha &amp; pounomi
Athens  akansha &amp; pounomi Athens  akansha &amp; pounomi
Athens akansha &amp; pounomi
 
Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...
Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...
Case Studies in Managing Traffic in a Developing Country with Privacy-Preserv...
 
Ancient Roman Architecture
Ancient  Roman  ArchitectureAncient  Roman  Architecture
Ancient Roman Architecture
 
Greek architecture
Greek architectureGreek architecture
Greek architecture
 
Historiadelosgriegos 1
Historiadelosgriegos 1Historiadelosgriegos 1
Historiadelosgriegos 1
 
Addressing Safety Through Design for Dindoshi Terminal (Draft)
Addressing Safety Through Design for Dindoshi Terminal (Draft)Addressing Safety Through Design for Dindoshi Terminal (Draft)
Addressing Safety Through Design for Dindoshi Terminal (Draft)
 
Chapter Five: The Roman World
Chapter Five: The Roman WorldChapter Five: The Roman World
Chapter Five: The Roman World
 
GRECIA HISTORIA ANTIGUA
GRECIA HISTORIA ANTIGUAGRECIA HISTORIA ANTIGUA
GRECIA HISTORIA ANTIGUA
 
Neo classical architecture
Neo classical architectureNeo classical architecture
Neo classical architecture
 
Literature study
Literature studyLiterature study
Literature study
 
AH 1 Ancient Rome part 2
AH 1 Ancient Rome part 2AH 1 Ancient Rome part 2
AH 1 Ancient Rome part 2
 
Permeability v2-Urban Design
Permeability v2-Urban DesignPermeability v2-Urban Design
Permeability v2-Urban Design
 
Kings cross regeneration
Kings cross regenerationKings cross regeneration
Kings cross regeneration
 
Bus Karo: Bus Depot Design Guideline (Session VII)
Bus Karo: Bus Depot Design Guideline (Session VII)Bus Karo: Bus Depot Design Guideline (Session VII)
Bus Karo: Bus Depot Design Guideline (Session VII)
 
AHTR Roman and Etruscan Art
AHTR Roman and Etruscan ArtAHTR Roman and Etruscan Art
AHTR Roman and Etruscan Art
 
Arc de Triomphe from Paris
Arc de Triomphe from Paris Arc de Triomphe from Paris
Arc de Triomphe from Paris
 
RGIA, Hyderabad
RGIA, HyderabadRGIA, Hyderabad
RGIA, Hyderabad
 
HISTORY: Greek Civic Architecture
HISTORY: Greek Civic ArchitectureHISTORY: Greek Civic Architecture
HISTORY: Greek Civic Architecture
 

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 Practices
Salesforce Partners
 
Introduction to Visualforce
Introduction to VisualforceIntroduction to Visualforce
Introduction to Visualforce
Salesforce Developers
 
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
Traction 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 - updated
Anna 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 Layouts
Salesforce 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 Lightning
Salesforce Admins
 
Build Faster with Base Lightning Components
Build Faster with Base Lightning ComponentsBuild Faster with Base Lightning Components
Build Faster with Base Lightning Components
Salesforce Developers
 
Using Visualforce in Salesforce1
Using Visualforce in Salesforce1Using Visualforce in Salesforce1
Using Visualforce in Salesforce1
Salesforce 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 '20
csupilowski
 
Orlando SFDC User Group 10/2009
Orlando SFDC User Group 10/2009Orlando SFDC User Group 10/2009
Orlando SFDC User Group 10/2009
Joshua 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 Actions
Mike White
 
Visual Workflow Overview
Visual Workflow OverviewVisual Workflow Overview
Visual Workflow Overview
Salesforce Developers
 
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 Developers
 
Salesforce Spring19 Release Overview Deck
Salesforce Spring19 Release Overview DeckSalesforce Spring19 Release Overview Deck
Salesforce Spring19 Release Overview Deck
Roy 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 Mobile
Salesforce 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 app
Roy Gilad
 
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
Salesforce Admin Group, Stockholm, Sweden
 
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
vraopolisetti
 
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
Amit 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 Developers
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
Salesforce 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 Components
Salesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
Salesforce 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 India
Salesforce 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 Development
Salesforce 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 Components
Salesforce 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 Components
Salesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
Salesforce 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 Testing
Salesforce 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 Interoperability
Salesforce 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 data
Salesforce 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 Introduction
Salesforce 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 JSQCP
Salesforce 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 Salesforce
Salesforce 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 Capture
Salesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
Salesforce Developers
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
Salesforce 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 Connect
Salesforce 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

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 

Recently uploaded (20)

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 

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