SlideShare a Scribd company logo
1 of 82
Salesforce1 Platform
Basics
David Scruggs
Platform Engineer
@davescruggs
dscruggs@salesforce.com
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 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, 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, risks associated with 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 quarter ended July 31, 2011. This document and others 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 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.
What are we doing?
 Setup and Introductions
 Salesforce1 Platform Overview
 Declarative Development
 User Interface
 Mobility
 Programmatic Development and Heroku
Setup and Introductions
Login and get ready
Internet Username/Password
SF13/SF13
Be interactive
http://developer.force.com/join
http://bit.ly/heroku_qs
http://eclipse-plugin.herokuapp.com/
SETUP: Free Developer Environment
Online Workbook
http://bit.ly/basics_book
http://bit.ly/heroku_qs
If needed:
http://bit.ly/c9heroku
If you’re interested:
http://bit.ly/force_apex_book
Salesforce1 Platform Overview
Salesforce is a Platform Company. Period.
-Alex Williams, TechCrunch
500M
API Calls Per Day6B
Lines of Apex
4M+
Apps Built on
the Platform
72B
Records Stored
Salesforce1 Platform
1.4 million…and growing
Core
Services
Chatter
Multi-
language
Translation
Workbench
Email
ServicesAnalytics
Cloud
Database
Scheema
Builder
Search
Visualforce
MonitoringMulti-tenant
Apex
Data-level
Security
Workflows
APIs
Mobile
Services
Social
APIs
Analytics
APIs
Bulk APIsRest APIs Metadata
APIs
Soap APIs
Private App
Exchange
Custom
Actions
Identity
Mobile
Notifications
Tooling
APIs
Mobile
Packs
Mobile SDK
Offline
Support
Streaming
APIs
Geolocation
ET 1:1 ET Fuel
Heroku1
Heroku
Add-Ons
Sharing
Model
ET API
Salesforce1 Platform
Every Object, Every Field: Salesforce1 Mobile Accessible
AppExchange Apps:
Dropbox Concur Evernote ServiceMax More
Custom Apps and Integrations:
SAP Oracle Everything Custom More
Sales, Service and Marketing
Accounts Cases Campaigns Dashboards More
Declarative and Programmatic
Declarative Programmatic
Visualforce Pages
Visualforce Components
Apex Controllers
Apex Triggers
Metadata API
REST API
Bulk API
Formula Fields
Validation Rules
Workflows and Approvals
Objects
Fields
Relationships
Page Layouts
Record Types
User
Interface
Business
Logic
Data
Model
Your App
Every Object, Every Field: API Enabled
GET
POST
PATCH
DELETE
OAuth 2.0
HTTPS
Every Object, Every Field: Apex and Visualforce Enabled
Visualforce Pages
Visualforce Components
Apex Controllers
Apex Triggers
Custom UICustom UI
Custom LogicCustom Logic
Chatter
Framework for the social enterprise
Declarative Development
Declarative Applications
Business logic expressed without programming
Warehouse Application Requirements
 Track price and inventory on hand for all
merchandise
 Create invoices containing one or more
merchandise items as a line items
 Present total invoice amount and current shipping
status
Warehouse Application Requirements
 Track price and inventory on hand for all
merchandise
 Create invoices containing one or more
merchandise items as a line items
 Present total invoice amount and current shipping
status
Warehouse Application Requirements
 Track price and inventory on hand for all
merchandise
 Create invoices containing one or more
merchandise items as a line items
 Present total invoice amount and current shipping
status
Warehouse Data Model
Merchandise
Name Price Inventory
Pinot $20 15
Cabernet $30 10
Malbec $20 20
Zinfandel $10 50
Invoice
Number Status Count Total
INV-01 Shipped 16 $370
INV-02 New 20 $200
Invoice Line Items
Invoice Line Merchandise Units
Sold
Unit Price Value
INV-01 1 Pinot 1 15 $15
INV-01 2 Cabernet 5 10 $150
INV-01 3 Malbec 10 20 $200
INV-02 1 Pinot 20 50 $200
Declarative Logic: Validation Rules
Formulas which validate data before being entered or modified
How Validation Rules Work
WHEN THENIF
Line Item is added or Updated Quantity__c <= 0 Error: “Line Item’s Quantity
Should Be Greater Than 0”
Record is
inserted or updated
Statement evaluates
to true
Block Insert/Update
Return error message
Hands On Tutorials
#1: Create your data model
#2: Customize your user interface
Declarative Logic: Formula Fields
Fields which can calculate data in real time
Formula Fields
 Excel style formulas
 Functions can be nested
 Support for commons functions
– Math
– Text
– Date & Time
– Logical
CASE(
MONTH( date ),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
"December",
)
Warehouse Data Model
Merchandise
Name Price Inventory
Pinot $20 15
Cabernet $30 10
Malbec $20 20
Zinfandel $10 50
Invoice
Number Status Count Total
INV-01 Shipped 16 $370
INV-02 New 20 $200
Invoice Line Items
Invoice Line Merchandise Units
Sold
Unit Price Value
INV-01 1 Pinot 1 15 $15
INV-01 2 Cabernet 5 10 $150
INV-01 3 Malbec 10 20 $200
INV-02 1 Pinot 20 50 $200
Formula Field
Item Total = Unit Price X Quantity
Declarative Logic: Roll-Up Summary Fields
Fields which can summarize data based on child records
Warehouse Data Model
Merchandise
Name Price Inventory
Pinot $20 15
Cabernet $30 10
Malbec $20 20
Zinfandel $10 50
Invoice
Number Status Count Total
INV-01 Shipped 16 $370
INV-02 New 20 $200
Invoice Line Items
Invoice Line Merchandise Units
Sold
Unit Price Value
INV-01 1 Pinot 1 15 $15
INV-01 2 Cabernet 5 10 $150
INV-01 3 Malbec 10 20 $200
INV-02 1 Pinot 20 50 $200
Roll-Up Field
Sum of Line Item Value
Child of Master-Detail
Count or Aggregate
Roll-Up Summary Fields
Declarative Logic: Workflows
Event based actions to express business logic
How Workflows Work
WHEN THENIF
Invoice is updated 30 days later, status is open Change status to
“Pending”
Record is
inserted or updated
Defined
Conditions are met
Perform
Workflow actions
Workflow Actions
Task
Outbound
Message
Update FieldEmail
Warehouse Data Model
Merchandise
Name Price Inventory
Pinot $20 15
Cabernet $30 10
Malbec $20 20
Zinfandel $10 50
Invoice
Number Status Count Total
INV-01 Shipped 16 $370
INV-02 New 20 $200
Invoice Line Items
Invoice Line Merchandise Units
Sold
Unit Price Value
INV-01 1 Pinot 1 20 $20
INV-01 2 Cabernet 5 10 $150
INV-01 3 Malbec 10 20 $200
INV-02 1 Pinot 20 50 $200
Workflow Rule
When updated, if unit price is blank then fill it with
the Merchandise price value
Declarative Logic: Approvals
Framework for approval on record updates
Approvals
Define Criteria
Define Actions
• Single / Multi / Skip Processes
• Role and User based Routing
• Chatter and Email Approvals
Approvals
Security and Identity Services
Services to authenticate users and control data visibility
Security and Identity Services
• User Profiles
• User Groups and Hierarchies
• Permission Sets
• SSO / SAML
• OAuth 2.0
• Connected Apps
Hands On Tutorials
#3: Add App Logic with Clicks, Not Code
#4: Secure your System
Mobility
LUNCHSalesforce1 Mobile
iOS and Android app for Salesforce1
Stay Up to Date with Notifications & Feeds
Developers
Stay Up to Date with Notifications & Feeds
Customers
Salesforce1 Mobile
Users
Distribute, & Manage Apps and Identity
Administrators
Embed Apps to Extend Business Processes
ISVs
Use Visualforce, HTML5, CSS, & JavaScript to
Customize UI
Salesforce1 Mobile
Specify order
and pin
favorites
Control visibility
with profiles &
permission sets
Personalize with
recent items
Add apps
Declarative &
programmatic
actions
Universal
Notifications
Custom apps with
HTML5, JavaScript,
Visualforce, and
Force.com Canvas
Global and
contextual actions
Salesforce1
Hands On Tutorials
#7: Create a Salesforce1 App
User Interface
Visualforce
Component-based user interface framework on Salesforce1
Every Object, Every Field: Apex and Visualforce Enabled
Visualforce Pages
Visualforce Components
Apex Controllers
Apex Triggers
Custom UICustom UI
Custom LogicCustom Logic
<apex:page StandardController="Contact"
extensions="duplicateUtility"
action="{!checkPhone}">
<apex:form>
<apex:outputField var="{!Contact.FirstName}” />
<apex:outputField var="{!Contact.LastName}" />
<apex:inputField var="{!Contact.Phone}" />
<apex:commandButton value="Update" action="{!quicksave}" />
</apex:form>
</apex:page>
Visualforce Components
Standard & Custom Controllers
Custom Extensions
 Data bound components Controller Callbacks
• Apex Forms
Visualforce component bound to an Apex Method
• Javascript Remoting
Annotated Apex methods exposed to JavaScript
Interacting with Data
Mobile Cards
 Display Visualforce or Related Lookups
1. Record header
2. Mobile cards display above all related
items
3. Set width to 100%. It sizes automatically.
Mobile card content can’t be scrolled.
4. Control height from the PLE
5. Related lists display after mobile cards
Publisher Actions
 Create actions and add them to the Chatter publisher
• Global vs Object Level
• Create actions
• Log-a-call actions
• Update actions
• Custom actions
• VF
• Canvas
Visualforce Use Cases
• Embed custom UI into tabs and layouts
• Visualforce dashboards
• Generate PDF
• Email templates
Programmatic Development and
Heroku
Apex
Cloud-based programming language on Salesforce1
Introduction to Apex
• Object-Oriented Language
• Dot Notation Syntax
• Cloud based compiling, debugging and unit testing
• “First Class” Citizen on the Platform
public with sharing class myControllerExtension implements Util {
private final Account acct;
public Contact newContact {get; set;}
public myControllerExtension(ApexPages.StandardController stdController) {
this.acct = (Account)stdController.getRecord();
}
public PageReference associateNewContact(Id cid) {
newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1];
newContact.Account = acct;
update newContact;
}
}
Apex Anatomy
Class and Interface based Scoped Variables Inline SOQL Inline DML
Apex Triggers
• Event Based Logic
• Associated with Object Types
• Before or After:
• Insert
• Update
• Delete
• Undelete
Custom Controllers and Extensions
• Provide Custom Logic to Visualforce
• Extensions can be used with Standard Controllers
• One controller can span multiple pages
• Can expose logic via Remote Action
Asynchronous Apex
• Batch & Scheduled Interfaces
• Asynchronous processing
• Can handle queues of data
• Can be scheduled to run later
• Similar to a cron job
Apex Use Cases
• Outbound Email
• Inbound Email
• Custom API Endpoints
• HTTP callouts
Declarative before Programmatic
Use declarative features when possible:
• Quicker to build
• Easier to maintain and debug
• Possible addition of new features
• Do not count against governor limits
For example:
• Will a workflow suffice instead of a trigger?
• Will a custom layout work instead of Visualforce?
What is Heroku?
Everything you need to build, run and scale customer apps
Run virtually any language at
any scale
Dynos
Enterprise grade Postgres as a
service
Databases
Marketplace for logging, data
and more
Add-ons
Supported Languages Buildpacks Databases
Heroku supports…
 Ruby
 Node.js
 Java
 Python
 PHP (beta)
– Dart
– GO!
– Scala
– Clojure
– Erlang
– Perl
– And more…
 Postgres
 Redis
 Mongo
 CouchDB
 Hadoop
 TempDB
 MySQL
 Elasticsearch
 Neo4j
Heroku is…
Smart driving assistant tracks driving, parking and vehicle performance
Developers able to focus on feature development by using Heroku Add-ons to provide infrastructure
services
Product improvements deployed frequently to delight early adopters
Help people drive smarter and bring the power of connectivity
to every car
Admittedly “obsessive about creating great user
experiences in well-engineered products,” Automatic knew
the Heroku platform would provide the flexibility their
product requires while allowing them to focus less on
infrastructure and
more on user experience.
Heroku Demo
Heroku Exercises
http://bit.ly/heroku_qs
Alternatively:
http://bit.ly/c9heroku
Double-click to enter title
Double-click to enter text
The Wrap Up
LUNCHSalesforce1 APIs
Family of APIs on the Salesforce1 Platform
LUNCHCanvas
Framework for embedding third party apps in Salesforce
LUNCHMobile SDK
Development Kit for building hybrid and native iOS and Android apps
LUNCHAppExchange
Enterprise marketplace for Salesforce1 Apps
LUNCHHeroku
Polyglot framework for hosting applications
Double-click to enter title
Double-click to enter text
http://developer.force.com
Developer Groups
Join a Salesforce Developer Group
http://bit.ly/fdc-dugs
Los Angeles Salesforce Developer Group:
http://www.meetup.com/Los-Angeles-Force-com-Developer-Group/
Become a User Group Leader
Email: April Nassi <anassi@salesforce.com>
simplicity
is the ultimate
form of
sophistication
- Da Vinci
Thank You

More Related Content

What's hot

What's hot (7)

ERP/CRM Integration Series: Integration Salesforce with Alfresco
ERP/CRM Integration Series: Integration Salesforce with AlfrescoERP/CRM Integration Series: Integration Salesforce with Alfresco
ERP/CRM Integration Series: Integration Salesforce with Alfresco
 
Developing Offline Mobile Apps With Salesforce Mobile SDK SmartStore
Developing Offline Mobile Apps With Salesforce Mobile SDK SmartStoreDeveloping Offline Mobile Apps With Salesforce Mobile SDK SmartStore
Developing Offline Mobile Apps With Salesforce Mobile SDK SmartStore
 
Introduction to Mulesoft and Salesforce Spring '19 release features
Introduction to Mulesoft and Salesforce Spring '19 release featuresIntroduction to Mulesoft and Salesforce Spring '19 release features
Introduction to Mulesoft and Salesforce Spring '19 release features
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Lightning customization with lightning app builder
Lightning customization with lightning app builderLightning customization with lightning app builder
Lightning customization with lightning app builder
 
YETI Simplifies Salesforce/SAP Integration with enosiX by Gerald Schlechter &...
YETI Simplifies Salesforce/SAP Integration with enosiX by Gerald Schlechter &...YETI Simplifies Salesforce/SAP Integration with enosiX by Gerald Schlechter &...
YETI Simplifies Salesforce/SAP Integration with enosiX by Gerald Schlechter &...
 
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
 

Viewers also liked

hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401
hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401
hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401
Viplava Kumar Madasu
 

Viewers also liked (20)

Mds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuMds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to heroku
 
Perimeter Protected Access Design Pattern
Perimeter Protected Access Design PatternPerimeter Protected Access Design Pattern
Perimeter Protected Access Design Pattern
 
Pley Technical Architecture
Pley Technical ArchitecturePley Technical Architecture
Pley Technical Architecture
 
Environment Gap Analysis for Applications
Environment Gap Analysis for ApplicationsEnvironment Gap Analysis for Applications
Environment Gap Analysis for Applications
 
Mobile user single sign on flow
Mobile user single sign on flowMobile user single sign on flow
Mobile user single sign on flow
 
Solution Delivery Calendar
Solution Delivery CalendarSolution Delivery Calendar
Solution Delivery Calendar
 
FPS_Architecture_June
FPS_Architecture_June FPS_Architecture_June
FPS_Architecture_June
 
How Technology has changed the Architecture? (Mobile Apps Only)
How Technology has changed the Architecture?  (Mobile Apps Only) �How Technology has changed the Architecture?  (Mobile Apps Only) �
How Technology has changed the Architecture? (Mobile Apps Only)
 
Design Pattern for Federated Single Sign-On Access
Design Pattern for Federated Single Sign-On AccessDesign Pattern for Federated Single Sign-On Access
Design Pattern for Federated Single Sign-On Access
 
Visio Diagram Scripting and Server Management flow
Visio Diagram Scripting and Server Management flowVisio Diagram Scripting and Server Management flow
Visio Diagram Scripting and Server Management flow
 
Sample Template for Single Sign-On (SSO)
Sample Template for Single Sign-On (SSO)Sample Template for Single Sign-On (SSO)
Sample Template for Single Sign-On (SSO)
 
Design Pattern for Oracle Identity Provisioning
Design Pattern for Oracle Identity ProvisioningDesign Pattern for Oracle Identity Provisioning
Design Pattern for Oracle Identity Provisioning
 
Mds cloud saturday 2015 salesforce intro
Mds cloud saturday 2015 salesforce introMds cloud saturday 2015 salesforce intro
Mds cloud saturday 2015 salesforce intro
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architecture
 
Get Started the server side Swift on server less OpenWhisk
Get Started the server side Swift on server less OpenWhiskGet Started the server side Swift on server less OpenWhisk
Get Started the server side Swift on server less OpenWhisk
 
High-level Architecture viewpoint of a Troux Infrastructure
High-level Architecture viewpoint of a Troux InfrastructureHigh-level Architecture viewpoint of a Troux Infrastructure
High-level Architecture viewpoint of a Troux Infrastructure
 
hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401
hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401
hp_reference_architecture_for_mapr_m7_on_hp_proliant_sl45401
 
Design Pattern Logical Model
Design Pattern Logical ModelDesign Pattern Logical Model
Design Pattern Logical Model
 
Retiree Data Flow Diagram
Retiree Data Flow DiagramRetiree Data Flow Diagram
Retiree Data Flow Diagram
 
Software is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for ChangeSoftware is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for Change
 

Similar to Bbva workshop

Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014
David Scruggs
 
Business Mashups Best of the Web APIs
Business Mashups Best of the Web APIsBusiness Mashups Best of the Web APIs
Business Mashups Best of the Web APIs
dreamforce2006
 

Similar to Bbva workshop (20)

Salesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinSalesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - Dublin
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014
 
Integrating with salesforce
Integrating with salesforceIntegrating with salesforce
Integrating with salesforce
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
 
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
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum
 
Building Apps Faster with Lightning and Winter '17
Building Apps Faster with Lightning and Winter '17Building Apps Faster with Lightning and Winter '17
Building Apps Faster with Lightning and Winter '17
 
Building apps faster with lightning and winter '17
Building apps faster with lightning and winter '17Building apps faster with lightning and winter '17
Building apps faster with lightning and winter '17
 
Boxcars and Cabooses: When One More XHR Is Too Much
Boxcars and Cabooses: When One More XHR Is Too MuchBoxcars and Cabooses: When One More XHR Is Too Much
Boxcars and Cabooses: When One More XHR Is Too Much
 
Trailhead in a Box & Winter 20 Release
Trailhead in a Box & Winter 20 ReleaseTrailhead in a Box & Winter 20 Release
Trailhead in a Box & Winter 20 Release
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App Cloud
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
 
Build custom user interfaces for your Salesforce data with the UI API
 Build custom user interfaces for your Salesforce data with the UI API Build custom user interfaces for your Salesforce data with the UI API
Build custom user interfaces for your Salesforce data with the UI API
 
Toronto dev group mar2019
Toronto dev group mar2019Toronto dev group mar2019
Toronto dev group mar2019
 
Salesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroSalesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer Intro
 
Elevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackElevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance Track
 
Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.com
 
Business Mashups Best of the Web APIs
Business Mashups Best of the Web APIsBusiness Mashups Best of the Web APIs
Business Mashups Best of the Web APIs
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform
 

More from David Scruggs (6)

Atl elevate programmatic developer slides
Atl elevate programmatic developer slidesAtl elevate programmatic developer slides
Atl elevate programmatic developer slides
 
Salesforce Mobile architecture introduction
Salesforce Mobile architecture introductionSalesforce Mobile architecture introduction
Salesforce Mobile architecture introduction
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
 
Salesforce Intro to the Internet of Things
Salesforce Intro to the Internet of ThingsSalesforce Intro to the Internet of Things
Salesforce Intro to the Internet of Things
 
Salesforce1 for developers
Salesforce1 for developersSalesforce1 for developers
Salesforce1 for developers
 
Hca advanced developer workshop
Hca advanced developer workshopHca advanced developer workshop
Hca advanced developer workshop
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

Bbva workshop

  • 3. 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 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, 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, risks associated with 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 quarter ended July 31, 2011. This document and others 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 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.
  • 4. What are we doing?  Setup and Introductions  Salesforce1 Platform Overview  Declarative Development  User Interface  Mobility  Programmatic Development and Heroku
  • 6. Login and get ready Internet Username/Password SF13/SF13
  • 11. Salesforce is a Platform Company. Period. -Alex Williams, TechCrunch 500M API Calls Per Day6B Lines of Apex 4M+ Apps Built on the Platform 72B Records Stored Salesforce1 Platform
  • 13. Core Services Chatter Multi- language Translation Workbench Email ServicesAnalytics Cloud Database Scheema Builder Search Visualforce MonitoringMulti-tenant Apex Data-level Security Workflows APIs Mobile Services Social APIs Analytics APIs Bulk APIsRest APIs Metadata APIs Soap APIs Private App Exchange Custom Actions Identity Mobile Notifications Tooling APIs Mobile Packs Mobile SDK Offline Support Streaming APIs Geolocation ET 1:1 ET Fuel Heroku1 Heroku Add-Ons Sharing Model ET API Salesforce1 Platform
  • 14. Every Object, Every Field: Salesforce1 Mobile Accessible AppExchange Apps: Dropbox Concur Evernote ServiceMax More Custom Apps and Integrations: SAP Oracle Everything Custom More Sales, Service and Marketing Accounts Cases Campaigns Dashboards More
  • 15. Declarative and Programmatic Declarative Programmatic Visualforce Pages Visualforce Components Apex Controllers Apex Triggers Metadata API REST API Bulk API Formula Fields Validation Rules Workflows and Approvals Objects Fields Relationships Page Layouts Record Types User Interface Business Logic Data Model
  • 16. Your App Every Object, Every Field: API Enabled GET POST PATCH DELETE OAuth 2.0 HTTPS
  • 17. Every Object, Every Field: Apex and Visualforce Enabled Visualforce Pages Visualforce Components Apex Controllers Apex Triggers Custom UICustom UI Custom LogicCustom Logic
  • 18. Chatter Framework for the social enterprise
  • 20. Declarative Applications Business logic expressed without programming
  • 21. Warehouse Application Requirements  Track price and inventory on hand for all merchandise  Create invoices containing one or more merchandise items as a line items  Present total invoice amount and current shipping status
  • 22. Warehouse Application Requirements  Track price and inventory on hand for all merchandise  Create invoices containing one or more merchandise items as a line items  Present total invoice amount and current shipping status
  • 23. Warehouse Application Requirements  Track price and inventory on hand for all merchandise  Create invoices containing one or more merchandise items as a line items  Present total invoice amount and current shipping status
  • 24. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 15 $15 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200
  • 25. Declarative Logic: Validation Rules Formulas which validate data before being entered or modified
  • 26. How Validation Rules Work WHEN THENIF Line Item is added or Updated Quantity__c <= 0 Error: “Line Item’s Quantity Should Be Greater Than 0” Record is inserted or updated Statement evaluates to true Block Insert/Update Return error message
  • 27. Hands On Tutorials #1: Create your data model #2: Customize your user interface
  • 28. Declarative Logic: Formula Fields Fields which can calculate data in real time
  • 29. Formula Fields  Excel style formulas  Functions can be nested  Support for commons functions – Math – Text – Date & Time – Logical CASE( MONTH( date ), 1, "January", 2, "February", 3, "March", 4, "April", 5, "May", 6, "June", 7, "July", 8, "August", 9, "September", 10, "October", 11, "November", "December", )
  • 30. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 15 $15 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200 Formula Field Item Total = Unit Price X Quantity
  • 31. Declarative Logic: Roll-Up Summary Fields Fields which can summarize data based on child records
  • 32. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 15 $15 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200 Roll-Up Field Sum of Line Item Value
  • 33. Child of Master-Detail Count or Aggregate Roll-Up Summary Fields
  • 34. Declarative Logic: Workflows Event based actions to express business logic
  • 35. How Workflows Work WHEN THENIF Invoice is updated 30 days later, status is open Change status to “Pending” Record is inserted or updated Defined Conditions are met Perform Workflow actions
  • 37. Warehouse Data Model Merchandise Name Price Inventory Pinot $20 15 Cabernet $30 10 Malbec $20 20 Zinfandel $10 50 Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Invoice Line Merchandise Units Sold Unit Price Value INV-01 1 Pinot 1 20 $20 INV-01 2 Cabernet 5 10 $150 INV-01 3 Malbec 10 20 $200 INV-02 1 Pinot 20 50 $200 Workflow Rule When updated, if unit price is blank then fill it with the Merchandise price value
  • 38. Declarative Logic: Approvals Framework for approval on record updates
  • 40. • Single / Multi / Skip Processes • Role and User based Routing • Chatter and Email Approvals Approvals
  • 41. Security and Identity Services Services to authenticate users and control data visibility
  • 42. Security and Identity Services • User Profiles • User Groups and Hierarchies • Permission Sets • SSO / SAML • OAuth 2.0 • Connected Apps
  • 43. Hands On Tutorials #3: Add App Logic with Clicks, Not Code #4: Secure your System
  • 45. LUNCHSalesforce1 Mobile iOS and Android app for Salesforce1
  • 46. Stay Up to Date with Notifications & Feeds Developers Stay Up to Date with Notifications & Feeds Customers Salesforce1 Mobile Users Distribute, & Manage Apps and Identity Administrators Embed Apps to Extend Business Processes ISVs Use Visualforce, HTML5, CSS, & JavaScript to Customize UI
  • 47. Salesforce1 Mobile Specify order and pin favorites Control visibility with profiles & permission sets Personalize with recent items Add apps
  • 48. Declarative & programmatic actions Universal Notifications Custom apps with HTML5, JavaScript, Visualforce, and Force.com Canvas Global and contextual actions Salesforce1
  • 49. Hands On Tutorials #7: Create a Salesforce1 App
  • 51. Visualforce Component-based user interface framework on Salesforce1
  • 52. Every Object, Every Field: Apex and Visualforce Enabled Visualforce Pages Visualforce Components Apex Controllers Apex Triggers Custom UICustom UI Custom LogicCustom Logic
  • 53. <apex:page StandardController="Contact" extensions="duplicateUtility" action="{!checkPhone}"> <apex:form> <apex:outputField var="{!Contact.FirstName}” /> <apex:outputField var="{!Contact.LastName}" /> <apex:inputField var="{!Contact.Phone}" /> <apex:commandButton value="Update" action="{!quicksave}" /> </apex:form> </apex:page> Visualforce Components Standard & Custom Controllers Custom Extensions  Data bound components Controller Callbacks
  • 54. • Apex Forms Visualforce component bound to an Apex Method • Javascript Remoting Annotated Apex methods exposed to JavaScript Interacting with Data
  • 55. Mobile Cards  Display Visualforce or Related Lookups 1. Record header 2. Mobile cards display above all related items 3. Set width to 100%. It sizes automatically. Mobile card content can’t be scrolled. 4. Control height from the PLE 5. Related lists display after mobile cards
  • 56. Publisher Actions  Create actions and add them to the Chatter publisher • Global vs Object Level • Create actions • Log-a-call actions • Update actions • Custom actions • VF • Canvas
  • 57. Visualforce Use Cases • Embed custom UI into tabs and layouts • Visualforce dashboards • Generate PDF • Email templates
  • 60. Introduction to Apex • Object-Oriented Language • Dot Notation Syntax • Cloud based compiling, debugging and unit testing • “First Class” Citizen on the Platform
  • 61. public with sharing class myControllerExtension implements Util { private final Account acct; public Contact newContact {get; set;} public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); } public PageReference associateNewContact(Id cid) { newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1]; newContact.Account = acct; update newContact; } } Apex Anatomy Class and Interface based Scoped Variables Inline SOQL Inline DML
  • 62. Apex Triggers • Event Based Logic • Associated with Object Types • Before or After: • Insert • Update • Delete • Undelete
  • 63. Custom Controllers and Extensions • Provide Custom Logic to Visualforce • Extensions can be used with Standard Controllers • One controller can span multiple pages • Can expose logic via Remote Action
  • 64. Asynchronous Apex • Batch & Scheduled Interfaces • Asynchronous processing • Can handle queues of data • Can be scheduled to run later • Similar to a cron job
  • 65. Apex Use Cases • Outbound Email • Inbound Email • Custom API Endpoints • HTTP callouts
  • 66. Declarative before Programmatic Use declarative features when possible: • Quicker to build • Easier to maintain and debug • Possible addition of new features • Do not count against governor limits For example: • Will a workflow suffice instead of a trigger? • Will a custom layout work instead of Visualforce?
  • 67. What is Heroku? Everything you need to build, run and scale customer apps Run virtually any language at any scale Dynos Enterprise grade Postgres as a service Databases Marketplace for logging, data and more Add-ons
  • 68. Supported Languages Buildpacks Databases Heroku supports…  Ruby  Node.js  Java  Python  PHP (beta) – Dart – GO! – Scala – Clojure – Erlang – Perl – And more…  Postgres  Redis  Mongo  CouchDB  Hadoop  TempDB  MySQL  Elasticsearch  Neo4j
  • 70. Smart driving assistant tracks driving, parking and vehicle performance Developers able to focus on feature development by using Heroku Add-ons to provide infrastructure services Product improvements deployed frequently to delight early adopters Help people drive smarter and bring the power of connectivity to every car Admittedly “obsessive about creating great user experiences in well-engineered products,” Automatic knew the Heroku platform would provide the flexibility their product requires while allowing them to focus less on infrastructure and more on user experience.
  • 73. Double-click to enter title Double-click to enter text The Wrap Up
  • 74. LUNCHSalesforce1 APIs Family of APIs on the Salesforce1 Platform
  • 75. LUNCHCanvas Framework for embedding third party apps in Salesforce
  • 76. LUNCHMobile SDK Development Kit for building hybrid and native iOS and Android apps
  • 78. LUNCHHeroku Polyglot framework for hosting applications
  • 79. Double-click to enter title Double-click to enter text http://developer.force.com
  • 80. Developer Groups Join a Salesforce Developer Group http://bit.ly/fdc-dugs Los Angeles Salesforce Developer Group: http://www.meetup.com/Los-Angeles-Force-com-Developer-Group/ Become a User Group Leader Email: April Nassi <anassi@salesforce.com>
  • 81. simplicity is the ultimate form of sophistication - Da Vinci

Editor's Notes

  1. Introduce the day. Poll the audience for level of experience. You’ll want to know who is a Java dev and who is a new or experienced to our platform.
  2. Introduce Yourselves Note: this is a slide if there is only one presenter
  3. Safe Harbor
  4. Our next tutorials will add in the logic we’ve been talking about and walk through locking down the system. If you are pressed on time, #4 is optional.
  5. Change this slide to match the local internet requirements.
  6. Highlight that this is not just a day of talking to them, this is a dialogue and they should ask questions as they like – even ones that don’t pertain to the current “section”. Projects they’re working on, features they have heard about, etc.
  7. The attendees should have gotten a DE org when they registered. Have them look in their inbox if they did not realize this. Otherwise, hey should create a brand new DE org if they have not done so recently. They should not use a Trial, Sandbox or Production org. Emphasize our DE orgs are free and do not expire (they are not product trials)
  8. THERE IS NOT A CURRENT ONLINE VERSION OF THE NEW WORKBOOK DRAFT
  9. Salesforce is often thought of as a CRM company, but these stats show we have platform services in use as well
  10. 1.4 million includes Force.com, Heroku and ExactTarget
  11. Our platform is not merely a cloud hosting service, it is a series of tools and features that enable developers to be successful.
  12. On our platform, as you building your data model – you are getting a lot more than just a relational database. You get a mobile app, right out of the gate.
  13. Our Basics workshop covers the declarative side of our platform, but let’s do a quick review.
  14. You get our API’s, automatically extended: REST, SOAP, Bulk, Streaming
  15. And our programmatic features are automatically aware of the data model as well.
  16. Chatter is an example of a robust framework you get right out of the gate with Salesforce1.
  17. A foundation of the Salesforce1 platform is the ability to create applications with a click – not with code.
  18. These are the core business requirements of the Warehouse application
  19. Let’s have an exercise in requirements gathering. Here is some of the core needs for our Warehouse application. What nouns here should we be looking at to model our data with?
  20. Let’s have an exercise in requirements gathering. Here is some of the core needs for our Warehouse application. What nouns here should we be looking at to model our data with?
  21. Here is an overview of what our data model will look like. What is a lookup? What is a master detail? POTENTIAL DEMO: View this in Schema Builder
  22. Validation rules allow us to put some sanity into our data model. It is baked right into the model itself, and keeps us from entering bad data.
  23. This is how the system sees the flow of a validation rule. Note that we are going to define a statement which if TRUE means the data Is bad
  24. Time for the first tutorial – getting your data model together and customizing the interface.
  25. Our next bit of declarative logic is formula fields
  26. These fields will be familiar to anyone who uses Excel heavily. Formula fields are treated like other fields, but calculate in real time.
  27. Here is an example that you’ll add to the data model. We want our value to be calculated, not manually entered.
  28. Next up are roll-up fields, which allow us to calculate data, again in real time, based on child records.
  29. For example, we want our invoices to track a total value based on the line items associated with it – in real time.
  30. We need a master-detail relationship here.
  31. Workflows allow us to chain logic to specific events in the system.
  32. For instance, when an invoice is updated – we might want a time-based workflow that 30 days later checks the status. If the status is open, the invoice is old and should be set to pending.
  33. We can take several actions based on workflows.
  34. In our data model, we update a field if it is blank based on the related merchandise.
  35. Approvals allows us to add a human step into the business logic.
  36. We define them similar to workflows, but here we are defining actions that humans interve on.
  37. We have an interface built into Salesforce for using approvals. And here are some other features with Approvals.
  38. Your data needs to be secure, and you should also have control over who can do what with it.
  39. Some basic features of our security and sharing framework
  40. Our next tutorials will add in the logic we’ve been talking about and walk through locking down the system. If you are pressed on time, #4 is optional.
  41. Update this slide with specifics about lunch
  42. The Salesforce1 platform has an entire reporting engine built right in
  43. Here are some features
  44. Dashboards are widgets we can use to represent distinct bits of data to users.
  45. Some features of dashboards
  46. Alongside the reporting and charting engine is an API
  47. For instance, I can get the data from this report if I hit this endpoint.
  48. Let’s create a report and dashboard for our warehouse
  49. As we mentioned this morning, you’ve been building a mobile app all along.
  50. Salesforce1 mobile offers features for a wide range of users.
  51. What you get from Salesforce1 mobile is based on what you build in your instance of Salesforce. Compare this to what they’ve been building today.
  52. It is highly customizable using actions, Visualforce and Canvas.
  53. Visualforce is the user interface sibling to Apex. It also runs in the cloud, in your instance – and it allows you to create brand new experiences for your customers and users.
  54. Remember how this morning we said that the platform automatically extends our programmatic features?
  55. What do we mean by components? Well you’d start with a page component, and that will define how the whole page is going to be rendered. And then you can add things like a form and fields for the form. Now everything you see here will be HTML when it gets outputted. So you’d have and HTML form, HTML input tags, etc. To the browser, it is just standard HTML. But how are we binding data here? We define a controller, which gets access to server-side logic. Whenever you see these brackets and that exclamation point, you’re looking at dynamically bound data which will effect how the component is rendered. However, the server-side logic here is a little interesting. POTENTIAL DEMO: Do Standard Controller demo, then go back to describe custom controllers and extensions.
  56. We have options, though. While a lot of Visualforce relies on bound forms to transmit data (and a viewstate), we can also talk directly to Apex via JavaScript and avoid the viewstate. This is more JavaScript friendly and also has a small footprint.
  57. Going back to Saleforce1 Mobile – there are different places we can embed VF. One is mobile cards.
  58. Another is actions. POTENTIAL DEMO: Find Nearby.
  59. If you are familiar with Java or C#, you are going to be familiar with Apex. It is OO and uses dot notation. However, Apex is completely cloud based – you can compile and debug right in your browser. Because it runs right in your instance it is also a “first class” citizen – meaning we can do actions right within Apex without any additional configuration or libraries.
  60. For when declarative logic is not enough, we provide Apex. Apex is a cloud-based programming language, very similar to Java – except that you can code, compile and deploy all right from your Salesforce instance. You’ll see how we can create robust programmatic functions right from your browser.
  61. If you are familiar with Java or C#, you are going to be familiar with Apex. It is OO and uses dot notation. However, Apex is completely cloud based – you can compile and debug right in your browser. Because it runs right in your instance it is also a “first class” citizen – meaning we can do actions right within Apex without any additional configuration or libraries.
  62. Let’s take a look at an example Apex class
  63. Overview of Apex Triggers POTENTIAL DEMO: Chatter Blacklist
  64. Overview of Apex Controllers
  65. Overview of Scheduled and Batch Apex
  66. More features of Apex
  67. How do we balance what Apex can do?
  68. Heroku supports Ruby, JVM, Node and Python offically, however there are many 3rd party buildpacks that provide unofficial support for other open source languages
  69. Heroku offers a powerful and clean interface via the command line and web console to manage your applications and addons.
  70. ** Approved for customer-facing use** This week’s “Heroku App of the Week” continues in the vein of hardware and software working together.  It&amp;apos;s a great story supporting the &amp;quot;Internet of Customers&amp;quot; and delivering on one of the Platform&amp;apos;s key value propositions - &amp;quot;Connect Everything.&amp;quot; The company is called Automatic Labs.  (www.automatic.com) Their product is a hardware device that plugs into your car’s data port.  (Every gasoline powered car built since 1996 has this port, called OBD2)  The hardware communicates with your smart phone (either IOS or Android) via Bluetooth.  The magic of their solution is they gather all kinds of data about your trips, driving habits, your car’s location, etc.   The app is a great tool, and showcases some of the amazing mobile appsthat can be built with Heroku. If this sounds like something you want to have in your own vehicles, the folks at Automatic Labs are giving all Salesforce employees a 25% discount.  Go to this link https://www.automatic.com/order/coupon/?coupon=herokudrive2014 and you’ll be all set.  Happy Driving!
  71. Let’s wrap by talking about the wider Salesforce1 platform. There are lots of things we didn’t get a chance to talk about today.
  72. For instance, we talked about how your data model automatically extends what VF and Apex can do – but what about our API’s? We have several.
  73. And Canvas, which allows your third party apps to appear in Salesforce …. And Salesforce1 Mobile. POTENTIAL DEMO: Shipify.
  74. Salesforce1 Mobile is one of our offerings, but you can also create your own custom applications. POTENTIAL DEMO: Quick Start on forceios / forcedroid
  75. We also have an entire marketplace for finding, buying and selling apps. NOTE: Chatter Blacklist as a Labs App (Free and Unmanaged)
  76. Heroku provides a framework for easily deploying the applications in the language of your choice. POTENTIAL DEMO: Quick PHP deployment.
  77. But if you are going to remember one URL….
  78. Update this slide with local DUG information
  79. Because thank you