SlideShare uma empresa Scribd logo
1 de 105
Baixar para ler offline
Beginner Developer Workshop

Sandeep Bhanot           Prithpal Bhogill
Developer Evangelist     Solution Architect
@cloudysan               @pbhogill
sbhanot@salesforce.com   pbhogill@salesforce.com
Interactive
Questions? Current projects? Feedback?
http://developer.force.com/join
Check Your Developer Edition
                   Environment




http://developer.force.com/join
Online Workbook
h"p://bit.ly/fdc-­‐jan-­‐2013
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.
Steve Sasson
Engineered the first digital camera prototype
Eastman Kodak
Filed for bankruptcy in 2012
Steve Sasson
Worked for Eastman Kodak in 1975
We are witnessing the Post PC Revolution in the
Enterprise

                                                                      456 Million
                                                                      Tablets at Work


                                                                      782 Million
                                                                      Smartphones at Work




  2009   2010   2011   2012
                              2013(E)   2014(E)
                                                  2015(E)   2016(E)
And this change is happening TODAY….



                            >
  iPhone Revenue – Q1 ’12       TOTAL Microsoft Revenue – Q2 ’12
       $24.42 billion                    $20.89 billion
“By 2015, one of every seven dollars spent on
packaged software, server, and storage offerings will
        be through the public cloud model.”




 http://www.idc.com/prodserv/idc_cloud.jsp
Salesforce Platform
Cloud based, multi-tenant, enterprise class PaaS
The Salesforce Platform
                                          Built-in Services                                                           Your
                                                                                                                   Innovative
  Infrastructure Application               Operations       Platform            Touch              Social
     Services     Services                  Services        Services           Services           Services
                                                                                                                      App




      Network         Security/Sharing     Authentication   Globalization    Native iOS SDK          Feeds
      Storage           Integration         Availability       APIs         Native Android SDK       Profiles
  Operating System     Customization        Monitoring        Security           HTML5            Status updates
      Database         Web Services      Patch Management     Analytics       Xcode wizards           Groups
     App Server       Multi-Language         Upgrades         Search         PIN code support      File sharing
     Web Server          Workflow             Backup          Identity      Custom APEX REST        Approvals
    Data Center                                NOC                          Geo-location Mobile    Messenger
  Disaster Recovery                       Troubleshooting                          APIs             Presence
The Salesforce Platform



Mobile   Social   Identity   Data   Marketplace
800,000
Salesforce Platform developers
9 Billion
API calls last month
2.5x
Increased demand for Force.com developers
YOU
are the makers
Now it’s your turn
Building a cloud based application
Data Modeling
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
                                     Invoice
      Number               Status              Count               Total
          INV-01           Shipped              16                 $370
          INV-02            New                 20                 $200




                              Invoice Line Items                                               Merchandise
Invoice            Line     Merchandise            Units   Unit Price      Value    Name          Price      Inventory
                                                   Sold
                                                                                     Pinot        $20           15
INV-01              1          Pinot                 1        15           $20
                                                                                   Cabernet       $30           10
INV-01              2         Cabernet               5        10           $150
                                                                                   Malbec         $20           20
INV-01              3          Malbec                10       20           $200
                                                                                   Zinfandel      $10           50
INV-02              1          Pinot                 20       50           $200
Validation Rules
Formulas which block data entry if evaluated as true
WHEN             IF          THEN

 Record is      Formula      Return error
inserted or   evaluates to    message
  updated         true
Tutorial 100
Optional: Tutorial 110
DECLARATIVE LOGIC
Declarative Apps
Creating business applications with clicks not code
Spreadsheet Versus Application
Formula Fields
Operations for performing common logic
Excel style formulas
Support for commons functions
   Math
   Text
   Date & Time
   Logical

Can chain functions together:
AND ( OR (
       ISPICKVAL(StageName, "Closed Won"),
       ISPICKVAL(StageName, "Negotiation/Review")),
       ISBLANK(Delivery_Date__c) )
Roll-Up Fields
Field type calculating on rows of child data
Child of Master-Detail




Count or Aggregate
Workflows
Event based business logic
When this happens




       Meets this Criteria?

Perform These Actions
Update   Outbound
Email   Task            Message
                Field
Approvals
System to route approvals through an organization
Define Criteria




Track Approval History
Single/Multi/Skip step processes


Route based on roles, or queues


Approval via emails or Chatter
Security
Identity, data security and user services
User Profiles


Groups, Queues and Hierarchies


Permission Sets


OAuth 2.0

Connected Apps
TUTORIAL 120
OPTIONAL: TUTORIAL 150
LUNCH:

Down the hall to the right,
Same room as breakfast
APEX
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.
Apex
Cloud based programming language
Apex Anatomy                                                    þ Class and Interface based
public with sharing class myControllerExtension implements Util {   þ Scoped Variables
    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;
    }                                                           þ Inline SOQL
}
                                                                    þ Inline DML
DEVELOPER CONSOLE
Common Use Cases




     Controllers          Custom API and    Inbound/Outbound
                          HTTP Callouts       Email Services




               Triggers          Scheduled and Batched Tasks
Trigger Anatomy                             þ Object Definition
                                            þ Event Definition

trigger HelloWorldTrigger on Book__c (before insert) {

    Book__c[] books = Trigger.new;

    BooksUtil.applyProcessing(books);

}                                           þ Trigger.old and new
                                            þ Bulkify code
Chatter Triggers




    if(feed_text == ‘promote’) {
           rec.status__c = “Approved”
           addToEmailPromotion(rec);
           FeedItem post = new FeedItem();
           post.ParentId = rec.Id;
           post.Body = ‘Record added to promotion’;
           feedsToInsert.addITem(post);
    }
APEX TRIGGERS
Unit Testing

@isTest
static public void testRequiredFields() {
       Merchandise__c m = new Merchandise__c(Name = 'Test');

       //assertion: Merchandise requires Price and Quantity
       try {
          insert m;
       } catch (DMLException e) {
          System.assert(e.getMessage().length() > 0);
       }

       m.Quantity__c = 0;
       m.Price__c = 9.99;

       //assertion: Merchandise requires Price and Quantity
       try {
Unit Testing

public WarehouseCSVController() {
       Boolean beRandom =
ApexPages.currentPage().getParameters().get('random') != null;
       if(beRandom) {
          allMerchandise = new List<Merchandise__c>();
          for(Integer x = 0; x < 1500; x++) {
              Merchandise__c m = new
Merchandise__c(Name='Widget '+String.valueOf(x),
Quantity__c=100, Price__c=49.99);
              allMerchandise.add(m);
          }
       } else {
          allMerchandise =
WarehouseDataQuery.getAllMerchandise();
       }
TUTORIAL 300
VISUALFORCE
Model View Controller
Application design paradigm to divide data, logic and UI
Visualforce
Cloud based component framework for interfaces
Visualforce Anatomy
                                                                  þ StandardControllers
                                                                     Custom
                                                                              Controllers

                                                                       Custom Extensions
<apex:page StandardController=“Contact” extensions=“duplicateUtilty”
 action=“{!checkPhone}”>
                                                                  þ Data bound components
          <apex:form>
                                                                  þ Controller Callbacks
              <apex:outputField var=“{!Contact.FirstName}” >
              <apex:outputField var=“{!Contact.LastName}” />

              <apex:inputField var=“{!Contact.Phone}” />
              <apex:commandButton value=“Update” action=“{!quicksave}” />

          <apex:form>

</apex>
STANDARD CONTROLLER
JavaScript Remoting                                               þ Access Apex from JavaScript
                                                                      þ Asynchronous Responses
    @RemoteAction
    public static String updateMerchandiseItem(String productId, Integer newInventory) {
          List<Merchandise__c> m = [SELECT Id, Total_Inventory__c from Merchandise__c WHERE
         if(m.size() > 0) {
            m[0].Total_Inventory__c = newInventory;                                          Apex
            try {
                update m[0];                                                           Visualforce
     j$(".updateBtn").click(function() {
                return 'Item Updated';
            } catchid = j$(this).attr('data-id');
                var (Exception e) {
                var inventory = parseInt(j$("#inventory"+id).val());
                return e.getMessage();
            } j$.mobile.showPageLoadingMsg();
         }      MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate);
            });
         else {
            return 'No item found with that ID';
         }
      }
}
Component Anatomy
<apex:page StandardController=“Contact” extension=“duplicateUtilty” action=“checkPhone”>

           <apex:form>
                                                                               þ Custom Controllers
                 <apex:outputField var=“{!Contact.FirstName}” >
                 <apex:outputField var=“{!Contact.LastName}” />
                                                                               þ Custom components
                 <apex:inputField var=“{!Contact.Phone}” />
                 <apex:commandButton value=“Update” action=“{!quicksave}” />
                                                                               þ Page Templates
           <apex:form>


</apex>
Common Use Cases




   Email Templates    Embed in Page Layouts   Generate PDFs




          Mobile Interfaces            Page Overrides
Chatter Components




                          chatter:follow
                        chatter:newsfeed
                           chatter:feed
                         chatter:followers
                     chatter:feedAndFollowers
TUTORIAL 330
MOBILE VF
INTEGRATION


@metadaddy
INTEGRATION
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.
OAuth
Industry standard method of user authentication
OAuth2 Flow


                    Sends App Credentials


                            User logs in,
                        Token sent to callback

       Remote                                      Salesforce
      Application   Confirms token                  Platform
                               Send access token


                         Maintain session with
                            refresh token
WORKBENCH
REST API
API leveraging industry standard HTTP
REST API


                     1. Authenticate

                        login.salesforce.com


        Mobile       2. Access API                Salesforce
      Application      /services/data/query?       Platform
                    SELECT ID FROM ACCOUNT

                    3. Get JSON or XML
                        {“sObject”: “Account”,
                     “id” : “oax02fdr756aFdad”}
WORKBENCH
SOAP API
XML messaging and WSDL based API
SOAP API


                 1. Authenticate

                   login.salesforce.com


      Java Web   2. Access API
                                                Salesforce
       Server
                  <QUERY><SOQL>                  Platform
                  SELECT Id from Account
                  </SOQL></QUERY>

                 3. Get XML
                                <RECORDS>
                   <RECORD type=“Account”>
                    <id>oax02fdr756aFdad</id>
                                 </RECORD>
                               </RECORDS>
Bulk API
Asynchronous API for handling large datasets
BULK API


                  1. Pull Recent Records
                                                    Legacy
                               TITLE: AppCo        Database
                      STREET: 1 Market Street
                                   REF:0001
           ETL
           Tool
                  2. Push Updates
                                                   Salesforce
                                  NAME: AppCo
                  MailingStreet: 1 Market Street
                                                    Platform
                                ExternalID:0001
Streaming API
Bayeux implementation for real-time delivery of data
STREAMING API


                  1. Handshake



       Java       2. Subscribe to Topic
                                          Salesforce
     Web Server
                                           Platform




                  3. Get Updates
Comparison of Force.com APIs
                    Apex REST        Apex SOAP    REST API         SOAP API     Bulk API        Streaming API



       Protocol        REST          SOAP/WSDL      REST          SOAP/ WSDL      REST            CometD

   Data Format      JSON/XML           XML       JSON/XML            XML       CSV/XML             JSON

Client libraries/   HTTP client      SOAP/WSDL   HTTP client      SOAP/WSDL    HTTP client        CometD
           tools     (lightweight)     library    (lightweight)     library     (lightweight)     JQuery

  Data Volume        Medium           Medium      Medium            Large      Very Large       Small-Large

   Sync/Async          Sync            Sync         Sync             Sync         Async            Stream
WORKBENCH
PUSH TOPICS
TUTORIAL 370
Fundamentals for the Enterprise



Mobile   Social   Identity   Data   Marketplace
Mobile SDK
iOS and Android SDK for developing with Force.com
Mobile SDK: Accelerate App Development
Tools for building native, hybrid, and HTML5 apps on iOS and Android

       OAuth2
       Secure authentication and refresh token
       management

       API Wrappers
       Interact with Salesforce REST APIs with
       popular mobile platform languages

       App Container
       Embed HTML5 apps inside a container to
       access powerful native device functionality

       Secure Offline Storage
       Store business data on a device with enterprise-
       class encryption

       Push Notifications
       Dispatch real-time alerts directly to mobile
       devices
Polyglot Framework
PaaS allowing for the deployment of multiple languages
Github Repo                             Heroku


     Pull / Push                      Push Deployments
Development Changes                   Monitor Application
                      Local Repo


  $ git push heroku master
  Counting objects: 67, done.
  Delta compression using up to 4 threads.
  Compressing objects: 100% (53/53), done.
  Writing objects: 100% (67/67), 26.33 KiB, done.
  Total 67 (delta 5), reused 0 (delta 0)
HEROKU
AppExchange
Application Market for the Salesforce Platform
http://appexchange.com




1,700+ Apps     20k+ Reviews   1.4m+ Installs
Double-click to enter title
  The Wrap Up
Double-click to enter text
http://bit.ly/elevatela13
Double-click to enter title
 Double-click to enter text




@forcedotcom
 @cloudysan
  @pbhogill

#forcedotcom
Double-click to enter title
                                    Join A
Double-click to enter text        Developer User Group
                                             
                                  http://bit.ly/fdc-dugs

                                             LA DUG:
                             http://www.meetup.com/Los-Angeles-
                                  Force-com-Developer-Group/
                                                
                                      Leader: Nathan Pepper
Become A 
                 Double-click to enter title Leader
                            Developer User Group
Double-click to enter text               
                                       Email:
                                    April Nassi
                             <anassi@salesforce.com>
Double-click to enter title
    http://developer.force.com
Double-click to enter text
THANK YOU

Mais conteúdo relacionado

Destaque

Elevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackElevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackCarolEnLaNube
 
Introduction to apex code
Introduction to apex codeIntroduction to apex code
Introduction to apex codeEdwinOstos
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginnershrakhra
 
é Tempo de amar é tempo de viver
é Tempo de amar é tempo de viveré Tempo de amar é tempo de viver
é Tempo de amar é tempo de viverLuiz Eduardo
 
Best Practices for Salesforce Admins at Dreamforce 2016
Best Practices for Salesforce Admins at Dreamforce 2016Best Practices for Salesforce Admins at Dreamforce 2016
Best Practices for Salesforce Admins at Dreamforce 2016Salesforce Admins
 

Destaque (6)

Elevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance TrackElevate Madrid Essentials - Advance Track
Elevate Madrid Essentials - Advance Track
 
Introduction to apex code
Introduction to apex codeIntroduction to apex code
Introduction to apex code
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
 
Sales Force Effectiveness Analysis
Sales Force Effectiveness AnalysisSales Force Effectiveness Analysis
Sales Force Effectiveness Analysis
 
é Tempo de amar é tempo de viver
é Tempo de amar é tempo de viveré Tempo de amar é tempo de viver
é Tempo de amar é tempo de viver
 
Best Practices for Salesforce Admins at Dreamforce 2016
Best Practices for Salesforce Admins at Dreamforce 2016Best Practices for Salesforce Admins at Dreamforce 2016
Best Practices for Salesforce Admins at Dreamforce 2016
 

Semelhante a Beginner ELEVATE Hands-on Developer Workshop

Salesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinSalesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinJoshua Hoskins
 
Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013
Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013
Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013Salesforce Developers
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014David Scruggs
 
Assetforce: Force.com Mobile Asset Management Platform
Assetforce: Force.com Mobile Asset Management PlatformAssetforce: Force.com Mobile Asset Management Platform
Assetforce: Force.com Mobile Asset Management PlatformSalesforce Developers
 
Force.com: A Walk on the Enterprise Side
Force.com: A Walk on the Enterprise SideForce.com: A Walk on the Enterprise Side
Force.com: A Walk on the Enterprise SidePat Patterson
 
IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544ypai
 
Sao Paolo Workshop
Sao Paolo WorkshopSao Paolo Workshop
Sao Paolo WorkshopJoshua Birk
 
Building Rich, Interactive E-commerce Applications Using ASP.NET and Silverlight
Building Rich, Interactive E-commerce Applications Using ASP.NET and SilverlightBuilding Rich, Interactive E-commerce Applications Using ASP.NET and Silverlight
Building Rich, Interactive E-commerce Applications Using ASP.NET and Silverlightgoodfriday
 
eCommerce – the next steps… By Manish Chaturvedi
eCommerce – the next steps… By Manish ChaturvedieCommerce – the next steps… By Manish Chaturvedi
eCommerce – the next steps… By Manish Chaturvediiamwire
 
IBM API management Philip Little
IBM API management Philip LittleIBM API management Philip Little
IBM API management Philip LittleValeri Illescas
 
Selling Stuff on the Web in Style with Microsoft Commerce Server
Selling Stuff on the Web in Style with Microsoft Commerce ServerSelling Stuff on the Web in Style with Microsoft Commerce Server
Selling Stuff on the Web in Style with Microsoft Commerce Servergoodfriday
 
Developer Tour on the Salesforce1 Platform
Developer Tour on the Salesforce1 PlatformDeveloper Tour on the Salesforce1 Platform
Developer Tour on the Salesforce1 PlatformSalesforce Deutschland
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platformJohn Stevenson
 
Developers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformDevelopers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformJohn Stevenson
 

Semelhante a Beginner ELEVATE Hands-on Developer Workshop (20)

Brasil Roadshow
Brasil RoadshowBrasil Roadshow
Brasil Roadshow
 
Bbva workshop
Bbva workshopBbva workshop
Bbva workshop
 
Salesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinSalesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - Dublin
 
CV
CVCV
CV
 
Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013
Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013
Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014
 
Assetforce: Force.com Mobile Asset Management Platform
Assetforce: Force.com Mobile Asset Management PlatformAssetforce: Force.com Mobile Asset Management Platform
Assetforce: Force.com Mobile Asset Management Platform
 
Force.com: A Walk on the Enterprise Side
Force.com: A Walk on the Enterprise SideForce.com: A Walk on the Enterprise Side
Force.com: A Walk on the Enterprise Side
 
Srinivas vatte abap
Srinivas vatte abapSrinivas vatte abap
Srinivas vatte abap
 
IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544
 
Sao Paolo Workshop
Sao Paolo WorkshopSao Paolo Workshop
Sao Paolo Workshop
 
Building Rich, Interactive E-commerce Applications Using ASP.NET and Silverlight
Building Rich, Interactive E-commerce Applications Using ASP.NET and SilverlightBuilding Rich, Interactive E-commerce Applications Using ASP.NET and Silverlight
Building Rich, Interactive E-commerce Applications Using ASP.NET and Silverlight
 
eCommerce – the next steps… By Manish Chaturvedi
eCommerce – the next steps… By Manish ChaturvedieCommerce – the next steps… By Manish Chaturvedi
eCommerce – the next steps… By Manish Chaturvedi
 
IBM API management Philip Little
IBM API management Philip LittleIBM API management Philip Little
IBM API management Philip Little
 
Selling Stuff on the Web in Style with Microsoft Commerce Server
Selling Stuff on the Web in Style with Microsoft Commerce ServerSelling Stuff on the Web in Style with Microsoft Commerce Server
Selling Stuff on the Web in Style with Microsoft Commerce Server
 
Developer Tour on the Salesforce1 Platform
Developer Tour on the Salesforce1 PlatformDeveloper Tour on the Salesforce1 Platform
Developer Tour on the Salesforce1 Platform
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
I Phone Dev
I Phone DevI Phone Dev
I Phone Dev
 
Developers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformDevelopers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 Platform
 
Soa Test Methodology
Soa Test MethodologySoa Test Methodology
Soa Test Methodology
 

Último

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 

Último (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 

Beginner ELEVATE Hands-on Developer Workshop

  • 1. Beginner Developer Workshop Sandeep Bhanot Prithpal Bhogill Developer Evangelist Solution Architect @cloudysan @pbhogill sbhanot@salesforce.com pbhogill@salesforce.com
  • 4. Check Your Developer Edition Environment http://developer.force.com/join
  • 6.
  • 7. 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.
  • 8. Steve Sasson Engineered the first digital camera prototype
  • 9. Eastman Kodak Filed for bankruptcy in 2012
  • 10. Steve Sasson Worked for Eastman Kodak in 1975
  • 11. We are witnessing the Post PC Revolution in the Enterprise 456 Million Tablets at Work 782 Million Smartphones at Work 2009 2010 2011 2012 2013(E) 2014(E) 2015(E) 2016(E)
  • 12. And this change is happening TODAY…. > iPhone Revenue – Q1 ’12 TOTAL Microsoft Revenue – Q2 ’12 $24.42 billion $20.89 billion
  • 13. “By 2015, one of every seven dollars spent on packaged software, server, and storage offerings will be through the public cloud model.” http://www.idc.com/prodserv/idc_cloud.jsp
  • 14. Salesforce Platform Cloud based, multi-tenant, enterprise class PaaS
  • 15. The Salesforce Platform Built-in Services Your Innovative Infrastructure Application Operations Platform Touch Social Services Services Services Services Services Services App Network Security/Sharing Authentication Globalization Native iOS SDK Feeds Storage Integration Availability APIs Native Android SDK Profiles Operating System Customization Monitoring Security HTML5 Status updates Database Web Services Patch Management Analytics Xcode wizards Groups App Server Multi-Language Upgrades Search PIN code support File sharing Web Server Workflow Backup Identity Custom APEX REST Approvals Data Center NOC Geo-location Mobile Messenger Disaster Recovery Troubleshooting APIs Presence
  • 16. The Salesforce Platform Mobile Social Identity Data Marketplace
  • 18. 9 Billion API calls last month
  • 19. 2.5x Increased demand for Force.com developers
  • 21. Now it’s your turn Building a cloud based application
  • 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 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
  • 25. 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
  • 26. Warehouse Data Model Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items Merchandise Invoice Line Merchandise Units Unit Price Value Name Price Inventory Sold Pinot $20 15 INV-01 1 Pinot 1 15 $20 Cabernet $30 10 INV-01 2 Cabernet 5 10 $150 Malbec $20 20 INV-01 3 Malbec 10 20 $200 Zinfandel $10 50 INV-02 1 Pinot 20 50 $200
  • 27. Validation Rules Formulas which block data entry if evaluated as true
  • 28. WHEN IF THEN Record is Formula Return error inserted or evaluates to message updated true
  • 31. Declarative Apps Creating business applications with clicks not code
  • 33. Formula Fields Operations for performing common logic
  • 34. Excel style formulas Support for commons functions Math Text Date & Time Logical Can chain functions together: AND ( OR ( ISPICKVAL(StageName, "Closed Won"), ISPICKVAL(StageName, "Negotiation/Review")), ISBLANK(Delivery_Date__c) )
  • 35. Roll-Up Fields Field type calculating on rows of child data
  • 38. When this happens Meets this Criteria? Perform These Actions
  • 39. Update Outbound Email Task Message Field
  • 40. Approvals System to route approvals through an organization
  • 42. Single/Multi/Skip step processes Route based on roles, or queues Approval via emails or Chatter
  • 43. Security Identity, data security and user services
  • 44. User Profiles Groups, Queues and Hierarchies Permission Sets OAuth 2.0 Connected Apps
  • 46. LUNCH: Down the hall to the right, Same room as breakfast
  • 47. APEX
  • 48. 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.
  • 50. Apex Anatomy þ Class and Interface based public with sharing class myControllerExtension implements Util { þ Scoped Variables 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; } þ Inline SOQL } þ Inline DML
  • 52. Common Use Cases Controllers Custom API and Inbound/Outbound HTTP Callouts Email Services Triggers Scheduled and Batched Tasks
  • 53. Trigger Anatomy þ Object Definition þ Event Definition trigger HelloWorldTrigger on Book__c (before insert) { Book__c[] books = Trigger.new; BooksUtil.applyProcessing(books); } þ Trigger.old and new þ Bulkify code
  • 54. Chatter Triggers if(feed_text == ‘promote’) { rec.status__c = “Approved” addToEmailPromotion(rec); FeedItem post = new FeedItem(); post.ParentId = rec.Id; post.Body = ‘Record added to promotion’; feedsToInsert.addITem(post); }
  • 56. Unit Testing @isTest static public void testRequiredFields() { Merchandise__c m = new Merchandise__c(Name = 'Test'); //assertion: Merchandise requires Price and Quantity try { insert m; } catch (DMLException e) { System.assert(e.getMessage().length() > 0); } m.Quantity__c = 0; m.Price__c = 9.99; //assertion: Merchandise requires Price and Quantity try {
  • 57. Unit Testing public WarehouseCSVController() { Boolean beRandom = ApexPages.currentPage().getParameters().get('random') != null; if(beRandom) { allMerchandise = new List<Merchandise__c>(); for(Integer x = 0; x < 1500; x++) { Merchandise__c m = new Merchandise__c(Name='Widget '+String.valueOf(x), Quantity__c=100, Price__c=49.99); allMerchandise.add(m); } } else { allMerchandise = WarehouseDataQuery.getAllMerchandise(); }
  • 60. Model View Controller Application design paradigm to divide data, logic and UI
  • 61. Visualforce Cloud based component framework for interfaces
  • 62. Visualforce Anatomy þ StandardControllers Custom Controllers Custom Extensions <apex:page StandardController=“Contact” extensions=“duplicateUtilty” action=“{!checkPhone}”> þ Data bound components <apex:form> þ Controller Callbacks <apex:outputField var=“{!Contact.FirstName}” > <apex:outputField var=“{!Contact.LastName}” /> <apex:inputField var=“{!Contact.Phone}” /> <apex:commandButton value=“Update” action=“{!quicksave}” /> <apex:form> </apex>
  • 64. JavaScript Remoting þ Access Apex from JavaScript þ Asynchronous Responses @RemoteAction public static String updateMerchandiseItem(String productId, Integer newInventory) { List<Merchandise__c> m = [SELECT Id, Total_Inventory__c from Merchandise__c WHERE if(m.size() > 0) { m[0].Total_Inventory__c = newInventory; Apex try { update m[0]; Visualforce j$(".updateBtn").click(function() { return 'Item Updated'; } catchid = j$(this).attr('data-id'); var (Exception e) { var inventory = parseInt(j$("#inventory"+id).val()); return e.getMessage(); } j$.mobile.showPageLoadingMsg(); } MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate); }); else { return 'No item found with that ID'; } } }
  • 65. Component Anatomy <apex:page StandardController=“Contact” extension=“duplicateUtilty” action=“checkPhone”> <apex:form> þ Custom Controllers <apex:outputField var=“{!Contact.FirstName}” > <apex:outputField var=“{!Contact.LastName}” /> þ Custom components <apex:inputField var=“{!Contact.Phone}” /> <apex:commandButton value=“Update” action=“{!quicksave}” /> þ Page Templates <apex:form> </apex>
  • 66. Common Use Cases Email Templates Embed in Page Layouts Generate PDFs Mobile Interfaces Page Overrides
  • 67. Chatter Components chatter:follow chatter:newsfeed chatter:feed chatter:followers chatter:feedAndFollowers
  • 72. 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.
  • 73. OAuth Industry standard method of user authentication
  • 74. OAuth2 Flow Sends App Credentials User logs in, Token sent to callback Remote Salesforce Application Confirms token Platform Send access token Maintain session with refresh token
  • 76. REST API API leveraging industry standard HTTP
  • 77. REST API 1. Authenticate login.salesforce.com Mobile 2. Access API Salesforce Application /services/data/query? Platform SELECT ID FROM ACCOUNT 3. Get JSON or XML {“sObject”: “Account”, “id” : “oax02fdr756aFdad”}
  • 79. SOAP API XML messaging and WSDL based API
  • 80. SOAP API 1. Authenticate login.salesforce.com Java Web 2. Access API Salesforce Server <QUERY><SOQL> Platform SELECT Id from Account </SOQL></QUERY> 3. Get XML <RECORDS> <RECORD type=“Account”> <id>oax02fdr756aFdad</id> </RECORD> </RECORDS>
  • 81. Bulk API Asynchronous API for handling large datasets
  • 82. BULK API 1. Pull Recent Records Legacy TITLE: AppCo Database STREET: 1 Market Street REF:0001 ETL Tool 2. Push Updates Salesforce NAME: AppCo MailingStreet: 1 Market Street Platform ExternalID:0001
  • 83. Streaming API Bayeux implementation for real-time delivery of data
  • 84. STREAMING API 1. Handshake Java 2. Subscribe to Topic Salesforce Web Server Platform 3. Get Updates
  • 85. Comparison of Force.com APIs Apex REST Apex SOAP REST API SOAP API Bulk API Streaming API Protocol REST SOAP/WSDL REST SOAP/ WSDL REST CometD Data Format JSON/XML XML JSON/XML XML CSV/XML JSON Client libraries/ HTTP client SOAP/WSDL HTTP client SOAP/WSDL HTTP client CometD tools (lightweight) library (lightweight) library (lightweight) JQuery Data Volume Medium Medium Medium Large Very Large Small-Large Sync/Async Sync Sync Sync Sync Async Stream
  • 88.
  • 89. Fundamentals for the Enterprise Mobile Social Identity Data Marketplace
  • 90. Mobile SDK iOS and Android SDK for developing with Force.com
  • 91. Mobile SDK: Accelerate App Development Tools for building native, hybrid, and HTML5 apps on iOS and Android OAuth2 Secure authentication and refresh token management API Wrappers Interact with Salesforce REST APIs with popular mobile platform languages App Container Embed HTML5 apps inside a container to access powerful native device functionality Secure Offline Storage Store business data on a device with enterprise- class encryption Push Notifications Dispatch real-time alerts directly to mobile devices
  • 92.
  • 93. Polyglot Framework PaaS allowing for the deployment of multiple languages
  • 94.
  • 95. Github Repo Heroku Pull / Push Push Deployments Development Changes Monitor Application Local Repo $ git push heroku master Counting objects: 67, done. Delta compression using up to 4 threads. Compressing objects: 100% (53/53), done. Writing objects: 100% (67/67), 26.33 KiB, done. Total 67 (delta 5), reused 0 (delta 0)
  • 97. AppExchange Application Market for the Salesforce Platform
  • 98. http://appexchange.com 1,700+ Apps 20k+ Reviews 1.4m+ Installs
  • 99. Double-click to enter title The Wrap Up Double-click to enter text
  • 101. Double-click to enter title Double-click to enter text @forcedotcom @cloudysan @pbhogill #forcedotcom
  • 102. Double-click to enter title Join A Double-click to enter text Developer User Group http://bit.ly/fdc-dugs LA DUG: http://www.meetup.com/Los-Angeles- Force-com-Developer-Group/ Leader: Nathan Pepper
  • 103. Become A Double-click to enter title Leader Developer User Group Double-click to enter text Email: April Nassi <anassi@salesforce.com>
  • 104. Double-click to enter title http://developer.force.com Double-click to enter text