bem vindos
@reidcarlberg
@joshbirk
SSID: CiscoNet-Manage

WIFI Username / Password
        On table


 http://bit.ly/brazilweek
Interactive
Questions? Current projects? Feedback?
http://developer.force.com/join
Check Your Developer Edition
                   Environment




http://developer.force.com/join
http://bit.ly/brazilweek
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 1954
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
Salesforce Platform
Cloud based, multi-tenant, enterprise class PaaS
800,000
Force.com developers
9 Billion
API calls last month
2.5x
Increased demand for Force.com developers
YOU
are the makers
Fundamentals for the Enterprise



Mobile   Social   Identity   Data   Marketplace
Data Modeling
            Declarative Applications

            Create relationships,
            requirements and validation rules

            Apex, Visualforce and API’s
            automatically extended
Business Logic
            Workflows & Approvals

            Chatter


            Apex & Visualforce


            Enterprise API’s
Go Mobile, Go Social
             Mobile SDK for Android and iOS

             Chatter Mobile and Chatter REST


             Salesforce Identity & OAuth
Extend and Market
            Heroku


            AppExchange
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
Now it’s your turn
Building a cloud based application
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
http://bit.ly/brasilportal-rj
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 Applications
Creating business applications without programmatic code
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) )
Validation Rules
Formulas which block data entry if evaluated as true
IF          ERROR?          THEN

Record is saved     Formula      Return error
                  evaluates to    message
                      true
Workflows
Event based business logic
When this happens




       Meets this Criteria?

Perform These Actions
Update   Outbound
Email   Task
                Field   Message
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
Chatter
Social framework for the enterprise
CHATTER DEMO
Chatter 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
TUTORIALS 3 & 4
http://bit.ly/brasilportal-rj
LUNCH:

Room 119

To the left, down the stairs
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
Application design paradigm to divide data, logic and UI
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
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);
DEVELOPER CONSOLE DEMO
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>
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';
          }
       }
}
Email Templates    Embed in Page Layouts   Generate PDFs




       Mobile Interfaces            Page Overrides
Chatter Components




                          chatter:follow
                        chatter:newsfeed
                           chatter:feed
                         chatter:followers
                     chatter:feedAndFollowers
MOBILE VF DEMO
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
TUTORIAL #9
   http://bit.ly/brazilweek
               OR
http://bit.ly/mobilevf-tutorial
     http://bit.ly/wareutil
     http://bit.ly/vfchart
 http://bit.ly/mvf-phonegap
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
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
REST API
HTTP based API
SOAP API
XML messaging and WSDL based API
Bulk API
Asynchronous API for handling large datasets
Streaming API
Bayeux implementation for real-time delivery of data
Extend and Market
            Heroku


            AppExchange
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 DEMO
THANK YOU
Double-click to enter title
  The Wrap Up
Double-click to enter text
http://bit.ly/brasildevweek-fp
Double-click to enter title
    Double-click to enter text



@forcedotcom
  @joshbirk
@reidcarlberg
 larimaryprairie
@eddyrperez
brasildevweek
Double-click to enter titleA
                                   Become
                              Developer User Group Leader
Double-click to enter text

                                          Email:
                                       Eddy Perez
                             <eduardo.perez@salesforce.com>
Double-click to enter title
    Double-click to enter text




          http://developer.force.com
        http://youtube.com/salesforce
           http://appexchange.com
    http://salesforce.stackexchange.com

                  #askforce
http://webchat.freenode.net/?channels=salesf
                     orce
simplicity
is the ultimate
form of
sophistication
         Da Vinci

Brasil Roadshow

  • 1.
  • 2.
    SSID: CiscoNet-Manage WIFI Username/ Password On table http://bit.ly/brazilweek
  • 3.
  • 4.
  • 5.
    Check Your DeveloperEdition Environment http://developer.force.com/join
  • 6.
  • 8.
    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.
  • 9.
    Steve Sasson Engineered thefirst digital camera prototype
  • 10.
    Eastman Kodak Filed forbankruptcy in 2012
  • 11.
    Steve Sasson Worked forEastman Kodak in 1954
  • 12.
    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)
  • 13.
    “80% of newcommercial enterprise apps will be deployed on cloud platforms in 2012” IDC Predictions 2012: Competing for 2020
  • 14.
    Salesforce Platform Cloud based,multi-tenant, enterprise class PaaS
  • 15.
  • 16.
  • 17.
    2.5x Increased demand forForce.com developers
  • 18.
  • 19.
    Fundamentals for theEnterprise Mobile Social Identity Data Marketplace
  • 20.
    Data Modeling Declarative Applications Create relationships, requirements and validation rules Apex, Visualforce and API’s automatically extended
  • 21.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API’s
  • 22.
    Go Mobile, GoSocial Mobile SDK for Android and iOS Chatter Mobile and Chatter REST Salesforce Identity & OAuth
  • 23.
    Extend and Market Heroku AppExchange
  • 24.
    AppExchange 1,700+ Apps 20k+ Reviews 1.4m+ Installs
  • 25.
    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
  • 26.
    Now it’s yourturn Building a cloud based application
  • 27.
  • 28.
    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.
  • 29.
    Data Modeling Declarative Applications Create relationships, requirements and validation rules Apex, Visualforce and API’s automatically extended
  • 30.
    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…
  • 31.
  • 32.
    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
  • 33.
    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
  • 34.
    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
  • 35.
    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
  • 36.
    TUTORIALS 1 &2 http://bit.ly/brasilportal-rj
  • 37.
    BUSINESS LOGIC COLLABORATION Name, Title @twitter
  • 38.
    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.
  • 39.
  • 40.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API’s
  • 41.
    Declarative Applications Creating businessapplications without programmatic code
  • 42.
    Formula Fields Operations forperforming common logic
  • 43.
    Excel style formulas Supportfor 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) )
  • 44.
    Validation Rules Formulas whichblock data entry if evaluated as true
  • 45.
    IF ERROR? THEN Record is saved Formula Return error evaluates to message true
  • 46.
  • 47.
    When this happens Meets this Criteria? Perform These Actions
  • 48.
    Update Outbound Email Task Field Message
  • 49.
    Approvals System to routeapprovals through an organization
  • 50.
  • 51.
    Single/Multi/Skip step processes Routebased on roles, or queues Approval via emails or Chatter
  • 52.
  • 53.
  • 54.
    Chatter 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.
    TUTORIALS 3 &4 http://bit.ly/brasilportal-rj
  • 56.
    LUNCH: Room 119 To theleft, down the stairs
  • 57.
    APEX + VISUALFORCE JoshuaBirk, Developer Evangelist @joshbirk
  • 58.
    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.
  • 59.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API’s
  • 60.
    Model View Controller Applicationdesign paradigm to divide data, logic and UI
  • 61.
  • 62.
    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
  • 63.
    Controllers Custom API and Inbound/Outbound HTTP Callouts Email Services Triggers Scheduled and Batched Tasks
  • 64.
    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
  • 65.
    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);
  • 66.
  • 67.
    Visualforce Cloud based componentframework for interfaces
  • 68.
    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>
  • 69.
    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'; } } }
  • 70.
    Email Templates Embed in Page Layouts Generate PDFs Mobile Interfaces Page Overrides
  • 71.
    Chatter Components chatter:follow chatter:newsfeed chatter:feed chatter:followers chatter:feedAndFollowers
  • 72.
  • 73.
    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
  • 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.
    TUTORIAL #9 http://bit.ly/brazilweek OR http://bit.ly/mobilevf-tutorial http://bit.ly/wareutil http://bit.ly/vfchart http://bit.ly/mvf-phonegap
  • 76.
    INTEGRATION + HEROKU JoshuaBirk, Developer Evangelist @joshbirk
  • 77.
    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.
  • 78.
    Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API’s
  • 79.
    OAuth Industry standard methodof user authentication
  • 80.
    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
  • 81.
  • 82.
    SOAP API XML messagingand WSDL based API
  • 83.
    Bulk API Asynchronous APIfor handling large datasets
  • 84.
    Streaming API Bayeux implementationfor real-time delivery of data
  • 85.
    Extend and Market Heroku AppExchange
  • 87.
    Polyglot Framework PaaS allowingfor the deployment of multiple languages
  • 89.
    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)
  • 90.
  • 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 @eddyrperez brasildevweek
  • 95.
    Double-click to entertitleA Become Developer User Group Leader Double-click to enter text Email: Eddy Perez <eduardo.perez@salesforce.com>
  • 96.
    Double-click to entertitle Double-click to enter text http://developer.force.com http://youtube.com/salesforce http://appexchange.com http://salesforce.stackexchange.com #askforce http://webchat.freenode.net/?channels=salesf orce
  • 97.
    simplicity is the ultimate formof sophistication Da Vinci

Editor's Notes

  • #13 Disruptive changes require fast and agile development
  • #14 Enterprises are responding to this demand by going to the cloud
  • #34 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?
  • #35 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?
  • #36 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?
  • #37 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
  • #41 Relational DataValidated dataProcess driven workflowsApproval SystemField AuditingUsers, Profiles and PermissionsEnterprise Collaboration
  • #45 Formula fields work like formulas work in Excel spreadsheets.The formula here insists that a delivery date is needed for these stages.
  • #47 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:
  • #56 How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  • #64 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.
  • #66 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.
  • #67 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.
  • #70 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.
  • #71 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.
  • #72 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 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.
  • #101 statue