bem vindos
@reidcarlberg
@joshbirk
WIFI SSID: SSID

USERNAME: uname

PASSWORD: pword
Interactive
–adjective

1.acting one upon or with the other

2. Of or pertaining to a two-way system of
electronic communications, as by means of
television or computer.
@forcedotcom / #forcewebinar



Developer Force Group



facebook.com/forcedotcom
Data Models Formula Fields
Workflows Declarative Logic Validation Rules
          Controller   Apex Governor Limits SOQL
  Binding       Triggers Visualforce Cloud Deployment
  Data
                 MVC Model   Chatter Spring MVC
              Mobile Interfaces   Site.com OAuth
                              REST API Heroku git
http://developer.force.
        com/join
Check Your Developer Edition
       Environment




http://developer.force.com/join
Got your coffee? Let’s get started:

http://bit.ly/brazilweek
Name, Title
@twitter
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.
Customers, Partners, and Employees Are
Demanding a New Generation of Apps. Now.

                                                                     456 Million
                                                                     Tablets at Work


                                                                     782 Million
                                                                     Smartphones at Work




 2009   2010   2011   2012
                             2013(E)   2014(E)
                                                 2015(E)   2016(E)
“80% of new commercial enterprise apps will
         be deployed on cloud platforms in 2012”




IDC Predictions 2012: Competing for 2020
The Salesforce Platform

   Your Apps                            Our Apps                     Any Apps


                              Salesforce Touch Platform


                                       Chatter




                                                                         Salesforce Identity
                     Heroku            Force.com          Site.com
       AppExchange




                                    Database.com
800,000
developers
9 Billion
API calls last month
2.5x increase in
demand for Force.com
developers
You
are the makers.
App Fundamentals for the
               Enterprise




Mobile      Social   Identity   Data   Marketplace
Data Modelling
             Declarative Applications

             Create
             relationships, requirements and
             validation rules
             Apex, Visualforce and API‟s
             automatically extended
Native Geolocation
SELECT Id, Warehouse_Location__latitude__s,
Warehouse_Location__longitude__s,
Street_Address__c, Name
FROM Vendor__c
WHERE DISTANCE(Warehouse_Location__c,
GEOLOCATION(37.794539,-122.394717), 'mi') <= 10;
Business Logic
            Workflows & Approvals

            Chatter


            Apex & Visualforce


            Enterprise API‟s
Business Logic
                 Data model is API enabled


                 Create Custom API Services

                     Apex & Visualforce
Go Mobile, Go Social
             Mobile SDK for Android and iOS

             Chatter Mobile and Chatter REST


             Salesforce Identity & OAuth
Go Mobile, Go Social
OAuth2 Authentication

 Leverage Existing
  Force.com Skills

Secure Offline Storage

Xcode Project Wizard
Extend and Market
            Heroku


            AppExchange
Heroku

   Polyglot Framework

 Simple Cloud Deployment

   Easy Maintenance

      Quick Scaling
Canvas
  Quickly Create Embedded
        Heroku Apps

Canvas integrates Third Party
applications with Salesforce UI
   Identity enables access
       Salesforce data
AppExchange




1,700+ Apps   20k+ Reviews   1.4m+ Installs
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

   Your Apps                            Our Apps                     Any Apps


                              Salesforce Touch Platform


                                       Chatter




                                                                         Salesforce Identity
                     Heroku            Force.com          Site.com
       AppExchange




                                    Database.com
DATA MODELING


@ReidCarlberg
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.
Data Modeling
            Declarative Applications

            Create
            relationships, requirements and
            validation rules
            Apex, Visualforce and API‟s
            automatically extended
Spreadsheet Versus Application
                          Relational Data
                          Validated data
                          Process driven workflows
              OR          Approval System
                          Field Auditing
                          Users, Profiles and Permissions
                          Enterprise Collaboration



      With the same amount of programming…
Let’s Build an App!
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
TUTORIALS 1 & 2
BUSINESS LOGIC
              COLLABORATION

Name, Title
@twitter
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.
Spreadsheet Versus Application
Business Logic
            Workflows & Approvals

            Chatter


            Apex & Visualforce


            Enterprise API‟s
Declarative Programming

 Formula Fields   Validation Rules



  Workflows         Approvals
Formula Fields
•   „Pre-packaged‟ operations for performing common logic

•   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) )
Validation Rules
     If           Then              Error



Implied on     Formula evals     Return error
record save.   true (error) or     message
                false (save)      (UI or API)
Workflows
            When




   Why

   What
Workflows




               Update   Outbound
Email   Task
                Field   Message
Approvals
    Single/Multi/Skip step processes


    Route based on roles, or queues


    Approval via emails


    Automation of manual processes
Approvals
                         Define Actions




Track Approval History
Business Logic
            Workflows & Approvals

            Chatter


            Apex & Visualforce


            Enterprise API‟s
CHATTER DEMO
Privacy and Security
     Home Tab / Profile Page        Record Detail Page




                                      Only users with
 Every internal user can see what
                                    “Read” access to the
             you post
                                    record can see what
                                          you post
Chatter Components




                 chatter:follow
                chatter:newsfeed
                  chatter:feed
                chatter:followers
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);
TUTORIALS 3 & 4
APEX + VISUALFORCE


Joshua Birk, Developer Evangelist
@joshbirk
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.
Business Logic
            Workflows & Approvals

            Chatter


            Apex & Visualforce


            Enterprise API‟s
Model View Controller (MVC) Pattern
Model                            Controller




                  View
Model View Controller (MVC) Pattern
Your Data                          Your Logic




                  Your Interface
Model View Controller (MVC) Pattern
Custom Objects                          Apex




                     Visualforce
Apex
cloud-based programmatic language with direct
access to Force.com data
Apex Class Anatomy
public with sharing class myControllerExtension {
                                                                            Class and Interface based
  private final Account acct;
  public Contact newContact {get; set;}                                    Scoped Variables
  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
What can you do with Apex?



   Controllers          Custom API and    Inbound/Outbound
                         HTTP Callouts      Email Services




        Database Triggers      Scheduled and Batched Tasks
The Developer Console
Visualforce
A component based framework for building user
interfaces with web standards like HTML, CSS and
JavaScript
Visualforce Page Anatomy
<apex:page controller=“Contact” extension=“duplicateUtilty” action=“checkPhone”>    StandardControllers
                                                                                     Custom
                                                                                              Controllers

            <apex:form>                                                               Custom Extensions

                  <apex:outputField var=“{!Contact.FirstName}” >
                  <apex:outputField var=“{!Contact.LastName}” />                    Data bound components
                  <apex:inputField var=“{!Contact.Phone}” />
                  <apex:commandButton value=“Update” action=“{!quicksave}” />       Controller Callbacks
            <apex:form>


</apex>
JavaScript Remoting                                                                Access Apex from JavaScript
  @RemoteAction                                                                     Asynchronous Responses
  public static String updateMerchandiseItem(String productId, Integer newInventory) {
         List<Merchandise__c> m = [SELECT Id, Name, Price__c, Total_Inventory__c, Description__c from Merchandise__c WHE
        if(m.size() > 0) {
            m[0].Total_Inventory__c = newInventory;
            try {
                update m[0];
                return 'Item Updated';                                                                          Apex
            } catch (Exception e) {
                return e.getMessage();
            }                                                                                           Visualforce
        }
  j$(".updateBtn").click(function() {
        else {
              var id = j$(this).attr('data-id');
            return 'No item found with that ID';
              var inventory = parseInt(j$("#inventory"+id).val());
        }
              j$.mobile.showPageLoadingMsg();
     }
              MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate);
}
          });
What can you do with Visualforce?



 Email Templates    Embed in Page Layouts   Generate PDFs




        Mobile Interfaces               Web Sites
TUTORIAL #9
Salesforce Mobile
No additional development, admin configured and controlled



Mobile HTML Application
Web development skills required, easily made for multiple devices
and screens


Mobile SDK Development
Offers access to device functionality and can
create the most fast performing applications
Salesforce Mobile
No additional development, admin configured and controlled



Mobile HTML Application
Web development skills required, easily made for multiple devices
and screens


Mobile SDK Development
Offers access to device functionality and can
create the most fast performing applications
MOBILE VF DEMO
INTEGRATION + HEROKU


Joshua Birk, Developer Evangelist
@joshbirk
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.
Business Logic
            Workflows & Approvals

            Chatter


            Apex & Visualforce


            Enterprise API‟s
curl
https://na1.salesforce.com/services/data/v20.0/query/?q=SELECT+name+from+Account
-H "Authorization: OAuth token" -H "X-PrettyPrint:1"
                                       {
                                          "done" : true,
 REST API                                 "totalSize" : 14,
                                          "records" :
                                          [
                                             {
                                                "attributes" :
                                                {
                                                   "type" : "Account",
                                                   "url" :
                                       "/services/data/v20.0/sobjects/Account/001D00
                                       0000IRFmaIAH"
                                                },
                                                "Name" : "Test 1"
                                             },
OAuth
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
Bulk                                    API
Asynchronous API for handling large amounts
of XML based data
Extract        Transform    Load      (ETL)
A type of toolset which allows for the easy
migration and manipulation of data between
different systems
Streaming                                API
A Bayeux implementation to provide real-time
data updates to clients
Extend and Market
            Heroku


            AppExchange
Polyglot                              framework
PaaS architecture which   allows   for multiple
language to be deployed
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 DEMO
Double-click to enter title
  The Wrap Up
Double-click to enter text
http://bit.ly/brasildevweeksp
Double-click to enter title
Double-click to enter text




@forcedotcom
  @joshbirk
 @reidcarlberg
@larimaryprairie
Double-click to enter title
Double-click to enter text



                      http://www.meetup.com/Sao-Paulo-
                      Salesforce-Developer-User-Group/
Double-click to enter title
Double-click to enter text



         http://developer.force.com
             http://youtube.com
          http://appexchange.com
simplicity
is the ultimate
form of
sophistication
           Da Vinci

Sao Paolo Workshop

  • 1.
  • 2.
    WIFI SSID: SSID USERNAME:uname PASSWORD: pword
  • 3.
    Interactive –adjective 1.acting one uponor with the other 2. Of or pertaining to a two-way system of electronic communications, as by means of television or computer.
  • 4.
    @forcedotcom / #forcewebinar DeveloperForce Group facebook.com/forcedotcom
  • 5.
    Data Models FormulaFields Workflows Declarative Logic Validation Rules Controller Apex Governor Limits SOQL Binding Triggers Visualforce Cloud Deployment Data MVC Model Chatter Spring MVC Mobile Interfaces Site.com OAuth REST API Heroku git
  • 6.
  • 7.
    Check Your DeveloperEdition Environment http://developer.force.com/join
  • 8.
    Got your coffee?Let’s get started: http://bit.ly/brazilweek
  • 9.
  • 10.
    Safe Harbor Safe harborstatement 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.
  • 11.
    Customers, Partners, andEmployees Are Demanding a New Generation of Apps. Now. 456 Million Tablets at Work 782 Million Smartphones at Work 2009 2010 2011 2012 2013(E) 2014(E) 2015(E) 2016(E)
  • 12.
    “80% of newcommercial enterprise apps will be deployed on cloud platforms in 2012” IDC Predictions 2012: Competing for 2020
  • 13.
    The Salesforce Platform Your Apps Our Apps Any Apps Salesforce Touch Platform Chatter Salesforce Identity Heroku Force.com Site.com AppExchange Database.com
  • 14.
  • 15.
  • 16.
    2.5x increase in demandfor Force.com developers
  • 17.
  • 18.
    App Fundamentals forthe Enterprise Mobile Social Identity Data Marketplace
  • 19.
    Data Modelling Declarative Applications Create relationships, requirements and validation rules Apex, Visualforce and API‟s automatically extended
  • 20.
    Native Geolocation SELECT Id,Warehouse_Location__latitude__s, Warehouse_Location__longitude__s, Street_Address__c, Name FROM Vendor__c WHERE DISTANCE(Warehouse_Location__c, GEOLOCATION(37.794539,-122.394717), 'mi') <= 10;
  • 21.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  • 22.
    Business Logic Data model is API enabled Create Custom API Services Apex & Visualforce
  • 23.
    Go Mobile, GoSocial Mobile SDK for Android and iOS Chatter Mobile and Chatter REST Salesforce Identity & OAuth
  • 24.
    Go Mobile, GoSocial OAuth2 Authentication Leverage Existing Force.com Skills Secure Offline Storage Xcode Project Wizard
  • 25.
    Extend and Market Heroku AppExchange
  • 26.
    Heroku Polyglot Framework Simple Cloud Deployment Easy Maintenance Quick Scaling
  • 27.
    Canvas QuicklyCreate Embedded Heroku Apps Canvas integrates Third Party applications with Salesforce UI Identity enables access Salesforce data
  • 28.
    AppExchange 1,700+ Apps 20k+ Reviews 1.4m+ Installs
  • 29.
    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
  • 30.
    The Salesforce Platform Your Apps Our Apps Any Apps Salesforce Touch Platform Chatter Salesforce Identity Heroku Force.com Site.com AppExchange Database.com
  • 31.
  • 32.
    Safe Harbor Safe harborstatement 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.
  • 33.
    Data Modeling Declarative Applications Create relationships, requirements and validation rules Apex, Visualforce and API‟s automatically extended
  • 34.
    Spreadsheet Versus Application Relational Data Validated data Process driven workflows OR Approval System Field Auditing Users, Profiles and Permissions Enterprise Collaboration With the same amount of programming…
  • 35.
  • 36.
    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
  • 37.
    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
  • 38.
    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
  • 39.
    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
  • 40.
  • 41.
    BUSINESS LOGIC COLLABORATION Name, Title @twitter
  • 42.
    Safe Harbor Safe harborstatement 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.
  • 43.
  • 44.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  • 45.
    Declarative Programming FormulaFields Validation Rules Workflows Approvals
  • 46.
    Formula Fields • „Pre-packaged‟ operations for performing common logic • 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) )
  • 47.
    Validation Rules If Then Error Implied on Formula evals Return error record save. true (error) or message false (save) (UI or API)
  • 48.
    Workflows When Why What
  • 49.
    Workflows Update Outbound Email Task Field Message
  • 50.
    Approvals Single/Multi/Skip step processes Route based on roles, or queues Approval via emails Automation of manual processes
  • 51.
    Approvals Define Actions Track Approval History
  • 52.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  • 53.
  • 54.
    Privacy and Security Home Tab / Profile Page Record Detail Page Only users with Every internal user can see what “Read” access to the you post record can see what you post
  • 55.
    Chatter Components chatter:follow chatter:newsfeed chatter:feed chatter:followers
  • 56.
    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);
  • 57.
  • 58.
    APEX + VISUALFORCE JoshuaBirk, Developer Evangelist @joshbirk
  • 59.
    Safe Harbor Safe harborstatement 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.
  • 60.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  • 62.
    Model View Controller(MVC) Pattern Model Controller View
  • 63.
    Model View Controller(MVC) Pattern Your Data Your Logic Your Interface
  • 64.
    Model View Controller(MVC) Pattern Custom Objects Apex Visualforce
  • 65.
    Apex cloud-based programmatic languagewith direct access to Force.com data
  • 66.
    Apex Class Anatomy publicwith sharing class myControllerExtension {  Class and Interface based private final Account acct; public Contact newContact {get; set;} Scoped Variables 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
  • 67.
    What can youdo with Apex? Controllers Custom API and Inbound/Outbound HTTP Callouts Email Services Database Triggers Scheduled and Batched Tasks
  • 68.
  • 69.
    Visualforce A component basedframework for building user interfaces with web standards like HTML, CSS and JavaScript
  • 70.
    Visualforce Page Anatomy <apex:pagecontroller=“Contact” extension=“duplicateUtilty” action=“checkPhone”>  StandardControllers Custom Controllers <apex:form> Custom Extensions <apex:outputField var=“{!Contact.FirstName}” > <apex:outputField var=“{!Contact.LastName}” />  Data bound components <apex:inputField var=“{!Contact.Phone}” /> <apex:commandButton value=“Update” action=“{!quicksave}” />  Controller Callbacks <apex:form> </apex>
  • 71.
    JavaScript Remoting  Access Apex from JavaScript @RemoteAction  Asynchronous Responses public static String updateMerchandiseItem(String productId, Integer newInventory) { List<Merchandise__c> m = [SELECT Id, Name, Price__c, Total_Inventory__c, Description__c from Merchandise__c WHE if(m.size() > 0) { m[0].Total_Inventory__c = newInventory; try { update m[0]; return 'Item Updated'; Apex } catch (Exception e) { return e.getMessage(); } Visualforce } j$(".updateBtn").click(function() { else { var id = j$(this).attr('data-id'); return 'No item found with that ID'; var inventory = parseInt(j$("#inventory"+id).val()); } j$.mobile.showPageLoadingMsg(); } MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate); } });
  • 72.
    What can youdo with Visualforce? Email Templates Embed in Page Layouts Generate PDFs Mobile Interfaces Web Sites
  • 73.
  • 74.
    Salesforce Mobile No additionaldevelopment, admin configured and controlled Mobile HTML Application Web development skills required, easily made for multiple devices and screens Mobile SDK Development Offers access to device functionality and can create the most fast performing applications
  • 75.
    Salesforce Mobile No additionaldevelopment, admin configured and controlled Mobile HTML Application Web development skills required, easily made for multiple devices and screens Mobile SDK Development Offers access to device functionality and can create the most fast performing applications
  • 76.
  • 77.
    INTEGRATION + HEROKU JoshuaBirk, Developer Evangelist @joshbirk
  • 78.
    Safe Harbor Safe harborstatement 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.
  • 79.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  • 80.
    curl https://na1.salesforce.com/services/data/v20.0/query/?q=SELECT+name+from+Account -H "Authorization: OAuthtoken" -H "X-PrettyPrint:1" { "done" : true, REST API "totalSize" : 14, "records" : [ { "attributes" : { "type" : "Account", "url" : "/services/data/v20.0/sobjects/Account/001D00 0000IRFmaIAH" }, "Name" : "Test 1" },
  • 81.
  • 82.
    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
  • 83.
    Bulk API Asynchronous API for handling large amounts of XML based data
  • 84.
    Extract Transform Load (ETL) A type of toolset which allows for the easy migration and manipulation of data between different systems
  • 85.
    Streaming API A Bayeux implementation to provide real-time data updates to clients
  • 86.
    Extend and Market Heroku AppExchange
  • 88.
    Polyglot framework PaaS architecture which allows for multiple language to be deployed
  • 90.
    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)
  • 91.
  • 92.
    Double-click to entertitle The Wrap Up Double-click to enter text
  • 93.
  • 94.
    Double-click to entertitle Double-click to enter text @forcedotcom @joshbirk @reidcarlberg @larimaryprairie
  • 95.
    Double-click to entertitle Double-click to enter text http://www.meetup.com/Sao-Paulo- Salesforce-Developer-User-Group/
  • 96.
    Double-click to entertitle Double-click to enter text http://developer.force.com http://youtube.com http://appexchange.com
  • 97.
    simplicity is the ultimate formof sophistication Da Vinci

Editor's Notes

  • #4 Can you guess the word? This is the theme for the day. Social and interactive. This is not a one way conversation. That wouldn’t be very social would it?Emphasize that questions can be asked about anything, it doesn’t require to be related to the tutorials, etc. It’s an open dialog.
  • #6 OK, we have a lot to talk about today. It might seem a little overwhelming, but let’s focus on the big topics.
  • #12 Disruptive changes require fast and agile development
  • #13 Enterprises are responding to this demand by going to the cloud
  • #37 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?
  • #38 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?
  • #39 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?
  • #40 Here is an overview of what our data model will look like. Recommended: Break into a demo of building data in the browser, either custom object wizard or schema builder depending on audience/workbooks
  • #44 Relational DataValidated dataProcess driven workflowsApproval SystemField AuditingUsers, Profiles and PermissionsEnterprise Collaboration
  • #46 Formulas are the building blocks of creating our business logic declaratively, and you’ll see them appear again throughout the day.
  • #47 Formula fields work like formulas work in Excel spreadsheets.The formula here insists that a delivery date is needed for these stages.
  • #48 Validation rules are always in 3 parts IF-&gt;then-ERROR.Let’s have a look how this is implemented in Force.com - flip to the app now and check out the check_inventory rule on LineItem
  • #49 This is hard to see
  • #50 Automated, time based processes that can integrate into backend systemsGreat for consistency, and removing human involvementEg:
  • #55 How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  • #56 We’re going to look at Visualforce later, but let’s have a bit of a preview here. Visualforce is our user interface framework in the cloud, and it knows all about Chatter.
  • #57 Want to make Chatter smarter? You can extend it with Apex Triggers to associate highly custom behaviors. Here if someone adds a hash tag “promote”, Apex will automatically add it to the promotion and even update the record to let everyone know it just did that. We’ll also be doing a deeper dive into Apex and triggers today as well.
  • #62 Let’s talk about anatomy, specifically the anatomy of an application. If you are going to build something which is easy to maintain in an enterprise setting, how would you do it? What would be the bones, muscle and skin of your application?
  • #63 The MVC pattern is one of the most commonly used design paradigms to create enterprise web applications. It neatly divides and conquers the application into distinct components to solve specific problems.
  • #64 Specifically it keeps your data, your logic and your interfaces distinct while allowing them to interoperate. Think of your data like the bones of an animal – it defines the structure of what that animal will be, but it doesn’t need to know how to move around. Logic, your muscle, will do that for it. But Logic isn’t worried about appearances – that’s what your interfaces … the skin of your application … is for.
  • #65 On the Force.com platform, we give all the tools to get this done. You’ve already seen custom objects, now let’s look into what makes that work with Apex and Visualforce to give your applications logic and a UI.
  • #66 So we know how to get our data. What can we do with it? With Apex, it might be easier to ask what you can’t do with it.
  • #67 For those unfamiliar with OO, here’s what a simple class structure looks like.NOTE: If you’re using this slide deck for a very technical audience, breeze through this section and get to meatier features of Apex.
  • #69 Let’s have a look at what Apex looks like. We are going to build the worlds most simple Apex Class, HelloContacts. This is a great example for seeing how we can use the new Developer console within Force.com to code completely in the cloud. Much of the workbook will talk about use the Force.com IDE, an eclipse-based development environment. For today however, we are going to use the developer console. Talk through dev console with the repository view, highlight SOQL (we are going to need that to achieve our requirements) then execute the class and show how to use the log viewer to see execution time etc.
  • #70 OK. We can do all of this powerful logic, right in our cloud – right from your web browser. It seems just too easy, right?There’s a catch. Think about an airport, and all the planes that are flying in the airspace and their trajectories and where they are heading and where they are going. Imagine being a pilot in that situation trying to land without an air traffic control tower.Force.com is an enterprise class multitenant architecture. We have a lot of planes in the air, and they all have places to go – but we get them where they are going, we do it safely and securely, and we’re doing it faster and faster with every release. We do this with some pretty excellent technology, but we also put some limits on what some of the our technologies like Apex can do. This makes sure someone isn’t able to fly a big, huge jet really quickly right through the middle of everyone’s path.
  • #71 So what are some of those things?
  • #72 OK, we have our bones and our muscle – what about our skin?
  • #73 For those unfamiliar with OO, here’s what a simple class structure looks like.NOTE: If you’re using this slide deck for a very technical audience, breeze through this section and get to meatier features of Apex.
  • #74 For those unfamiliar with OO, here’s what a simple class structure looks like.NOTE: If you’re using this slide deck for a very technical audience, breeze through this section and get to meatier features of Apex.