Beginner Developer WorkshopSandeep Bhanot           Prithpal BhogillDeveloper Evangelist     Solution Architect@cloudysan ...
InteractiveQuestions? Current projects? Feedback?
http://developer.force.com/join
Check Your Developer Edition                   Environmenthttp://developer.force.com/join
Online Workbookh"p://bit.ly/fdc-­‐jan-­‐2013
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
Steve SassonEngineered the first digital camera prototype
Eastman KodakFiled for bankruptcy in 2012
Steve SassonWorked for Eastman Kodak in 1975
We are witnessing the Post PC Revolution in theEnterprise                                                                 ...
And this change is happening TODAY….                            >  iPhone Revenue – Q1 ’12       TOTAL Microsoft Revenue –...
“By 2015, one of every seven dollars spent onpackaged software, server, and storage offerings will        be through the p...
Salesforce PlatformCloud based, multi-tenant, enterprise class PaaS
The Salesforce Platform                                          Built-in Services                                        ...
The Salesforce PlatformMobile   Social   Identity   Data   Marketplace
800,000Salesforce Platform developers
9 BillionAPI calls last month
2.5xIncreased demand for Force.com developers
YOUare the makers
Now it’s your turnBuilding a cloud based application
Data Modeling
Warehouse Application Requirements•  Track price and inventory on hand for all   merchandise•  Create invoices containing ...
Warehouse Application Requirements•  Track price and inventory on hand for all   merchandise•  Create invoices containing ...
Warehouse Application Requirements•  Track price and inventory on hand for all   merchandise•  Create invoices containing ...
Warehouse Data Model                                     Invoice      Number               Status              Count      ...
Validation RulesFormulas which block data entry if evaluated as true
WHEN             IF          THEN Record is      Formula      Return errorinserted or   evaluates to    message  updated  ...
Tutorial 100Optional: Tutorial 110
DECLARATIVE LOGIC
Declarative AppsCreating business applications with clicks not code
Spreadsheet Versus Application
Formula FieldsOperations for performing common logic
Excel style formulasSupport for commons functions   Math   Text   Date & Time   LogicalCan chain functions together:AND ( ...
Roll-Up FieldsField type calculating on rows of child data
Child of Master-DetailCount or Aggregate
WorkflowsEvent based business logic
When this happens       Meets this Criteria?Perform These Actions
Update   OutboundEmail   Task            Message                Field
ApprovalsSystem to route approvals through an organization
Define CriteriaTrack Approval History
Single/Multi/Skip step processesRoute based on roles, or queuesApproval via emails or Chatter
SecurityIdentity, data security and user services
User ProfilesGroups, Queues and HierarchiesPermission SetsOAuth 2.0Connected Apps
TUTORIAL 120OPTIONAL: TUTORIAL 150
LUNCH:Down the hall to the right,Same room as breakfast
APEX
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
ApexCloud based programming language
Apex Anatomy                                                    þ Class and Interface basedpublic with sharing class myCo...
DEVELOPER CONSOLE
Common Use Cases     Controllers          Custom API and    Inbound/Outbound                          HTTP Callouts       ...
Trigger Anatomy                             þ Object Definition                                            þ Event Defin...
Chatter Triggers    if(feed_text == ‘promote’) {           rec.status__c = “Approved”           addToEmailPromotion(rec); ...
APEX TRIGGERS
Unit Testing@isTeststatic public void testRequiredFields() {       Merchandise__c m = new Merchandise__c(Name = Test);    ...
Unit Testingpublic WarehouseCSVController() {       Boolean beRandom =ApexPages.currentPage().getParameters().get(random) ...
TUTORIAL 300
VISUALFORCE
Model View ControllerApplication design paradigm to divide data, logic and UI
VisualforceCloud based component framework for interfaces
Visualforce Anatomy                                                                  þ StandardControllers               ...
STANDARD CONTROLLER
JavaScript Remoting                                               þ Access Apex from JavaScript                          ...
Component Anatomy<apex:page StandardController=“Contact” extension=“duplicateUtilty” action=“checkPhone”>           <apex:...
Common Use Cases   Email Templates    Embed in Page Layouts   Generate PDFs          Mobile Interfaces            Page Ove...
Chatter Components                          chatter:follow                        chatter:newsfeed                        ...
TUTORIAL 330
MOBILE VF
INTEGRATION@metadaddy
INTEGRATION
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
OAuthIndustry standard method of user authentication
OAuth2 Flow                    Sends App Credentials                            User logs in,                        Token...
WORKBENCH
REST APIAPI leveraging industry standard HTTP
REST API                     1. Authenticate                        login.salesforce.com        Mobile       2. Access API...
WORKBENCH
SOAP APIXML messaging and WSDL based API
SOAP API                 1. Authenticate                   login.salesforce.com      Java Web   2. Access API             ...
Bulk APIAsynchronous API for handling large datasets
BULK API                  1. Pull Recent Records                                                    Legacy                ...
Streaming APIBayeux implementation for real-time delivery of data
STREAMING API                  1. Handshake       Java       2. Subscribe to Topic                                        ...
Comparison of Force.com APIs                    Apex REST        Apex SOAP    REST API         SOAP API     Bulk API      ...
WORKBENCHPUSH TOPICS
TUTORIAL 370
Fundamentals for the EnterpriseMobile   Social   Identity   Data   Marketplace
Mobile SDKiOS and Android SDK for developing with Force.com
Mobile SDK: Accelerate App DevelopmentTools for building native, hybrid, and HTML5 apps on iOS and Android       OAuth2   ...
Polyglot FrameworkPaaS allowing for the deployment of multiple languages
Github Repo                             Heroku     Pull / Push                      Push DeploymentsDevelopment Changes   ...
HEROKU
AppExchangeApplication Market for the Salesforce Platform
http://appexchange.com1,700+ Apps     20k+ Reviews   1.4m+ Installs
Double-click to enter title  The Wrap UpDouble-click to enter text
http://bit.ly/elevatela13
Double-click to enter title Double-click to enter text@forcedotcom @cloudysan  @pbhogill#forcedotcom
Double-click to enter title                                    Join ADouble-click to enter text        Developer User Grou...
Become A                  Double-click to enter title Leader                            Developer User GroupDouble-click t...
Double-click to enter title    http://developer.force.comDouble-click to enter text
THANK YOU
Beginner ELEVATE Hands-on Developer Workshop
Beginner ELEVATE Hands-on Developer Workshop
Beginner ELEVATE Hands-on Developer Workshop
Beginner ELEVATE Hands-on Developer Workshop
Upcoming SlideShare
Loading in...5
×

Beginner ELEVATE Hands-on Developer Workshop

342

Published on

For those new to the Salesforce Platform, we’ll get you up and building cloud apps quickly by introducing you to the basics of the platform with step-by-step hands-on tutorials. You’ll be able to create an app with point-and-click development and then see how you go a little further with Apex Code and Visualforce.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
342
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Beginner ELEVATE Hands-on Developer Workshop"

  1. 1. Beginner Developer WorkshopSandeep Bhanot Prithpal BhogillDeveloper Evangelist Solution Architect@cloudysan @pbhogillsbhanot@salesforce.com pbhogill@salesforce.com
  2. 2. InteractiveQuestions? Current projects? Feedback?
  3. 3. http://developer.force.com/join
  4. 4. Check Your Developer Edition Environmenthttp://developer.force.com/join
  5. 5. Online Workbookh"p://bit.ly/fdc-­‐jan-­‐2013
  6. 6. Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-lookingstatements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions provesincorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statementswe make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscribergrowth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for futureoperations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments andcustomer 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 newfunctionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate ofgrowth, interruptions or delays in our Web hosting, breach of our security measures, risks associated with possible mergers andacquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivateour employees and manage our growth, new releases of our service and successful customer deployment, our limited history resellingnon-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that couldaffect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal quarter endedJuly 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 maynot be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features thatare currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  7. 7. Steve SassonEngineered the first digital camera prototype
  8. 8. Eastman KodakFiled for bankruptcy in 2012
  9. 9. Steve SassonWorked for Eastman Kodak in 1975
  10. 10. We are witnessing the Post PC Revolution in theEnterprise 456 Million Tablets at Work 782 Million Smartphones at Work 2009 2010 2011 2012 2013(E) 2014(E) 2015(E) 2016(E)
  11. 11. And this change is happening TODAY…. > iPhone Revenue – Q1 ’12 TOTAL Microsoft Revenue – Q2 ’12 $24.42 billion $20.89 billion
  12. 12. “By 2015, one of every seven dollars spent onpackaged software, server, and storage offerings will be through the public cloud model.” http://www.idc.com/prodserv/idc_cloud.jsp
  13. 13. Salesforce PlatformCloud based, multi-tenant, enterprise class PaaS
  14. 14. 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
  15. 15. The Salesforce PlatformMobile Social Identity Data Marketplace
  16. 16. 800,000Salesforce Platform developers
  17. 17. 9 BillionAPI calls last month
  18. 18. 2.5xIncreased demand for Force.com developers
  19. 19. YOUare the makers
  20. 20. Now it’s your turnBuilding a cloud based application
  21. 21. Data Modeling
  22. 22. Warehouse Application Requirements•  Track price and inventory on hand for all merchandise•  Create invoices containing one or more merchandise items as a line items•  Present total invoice amount and current shipping status
  23. 23. Warehouse Application Requirements•  Track price and inventory on hand for all merchandise•  Create invoices containing one or more merchandise items as a line items•  Present total invoice amount and current shipping status
  24. 24. Warehouse Application Requirements•  Track price and inventory on hand for all merchandise•  Create invoices containing one or more merchandise items as a line items•  Present total invoice amount and current shipping status
  25. 25. Warehouse Data Model Invoice Number Status Count Total INV-01 Shipped 16 $370 INV-02 New 20 $200 Invoice Line Items MerchandiseInvoice Line Merchandise Units Unit Price Value Name Price Inventory Sold Pinot $20 15INV-01 1 Pinot 1 15 $20 Cabernet $30 10INV-01 2 Cabernet 5 10 $150 Malbec $20 20INV-01 3 Malbec 10 20 $200 Zinfandel $10 50INV-02 1 Pinot 20 50 $200
  26. 26. Validation RulesFormulas which block data entry if evaluated as true
  27. 27. WHEN IF THEN Record is Formula Return errorinserted or evaluates to message updated true
  28. 28. Tutorial 100Optional: Tutorial 110
  29. 29. DECLARATIVE LOGIC
  30. 30. Declarative AppsCreating business applications with clicks not code
  31. 31. Spreadsheet Versus Application
  32. 32. Formula FieldsOperations for performing common logic
  33. 33. Excel style formulasSupport for commons functions Math Text Date & Time LogicalCan chain functions together:AND ( OR ( ISPICKVAL(StageName, "Closed Won"), ISPICKVAL(StageName, "Negotiation/Review")), ISBLANK(Delivery_Date__c) )
  34. 34. Roll-Up FieldsField type calculating on rows of child data
  35. 35. Child of Master-DetailCount or Aggregate
  36. 36. WorkflowsEvent based business logic
  37. 37. When this happens Meets this Criteria?Perform These Actions
  38. 38. Update OutboundEmail Task Message Field
  39. 39. ApprovalsSystem to route approvals through an organization
  40. 40. Define CriteriaTrack Approval History
  41. 41. Single/Multi/Skip step processesRoute based on roles, or queuesApproval via emails or Chatter
  42. 42. SecurityIdentity, data security and user services
  43. 43. User ProfilesGroups, Queues and HierarchiesPermission SetsOAuth 2.0Connected Apps
  44. 44. TUTORIAL 120OPTIONAL: TUTORIAL 150
  45. 45. LUNCH:Down the hall to the right,Same room as breakfast
  46. 46. APEX
  47. 47. Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-lookingstatements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions provesincorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statementswe make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscribergrowth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for futureoperations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments andcustomer 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 newfunctionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate ofgrowth, interruptions or delays in our Web hosting, breach of our security measures, risks associated with possible mergers andacquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivateour employees and manage our growth, new releases of our service and successful customer deployment, our limited history resellingnon-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that couldaffect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal quarter endedJuly 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 maynot be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features thatare currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  48. 48. ApexCloud based programming language
  49. 49. Apex Anatomy þ Class and Interface basedpublic 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
  50. 50. DEVELOPER CONSOLE
  51. 51. Common Use Cases Controllers Custom API and Inbound/Outbound HTTP Callouts Email Services Triggers Scheduled and Batched Tasks
  52. 52. Trigger Anatomy þ Object Definition þ Event Definitiontrigger HelloWorldTrigger on Book__c (before insert) { Book__c[] books = Trigger.new; BooksUtil.applyProcessing(books);} þ Trigger.old and new þ Bulkify code
  53. 53. 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); }
  54. 54. APEX TRIGGERS
  55. 55. Unit Testing@isTeststatic public void testRequiredFields() { Merchandise__c m = new Merchandise__c(Name = Test); //assertion: Merchandise requires Price and Quantity try { insert m; } catch (DMLException e) { System.assert(e.getMessage().length() > 0); } m.Quantity__c = 0; m.Price__c = 9.99; //assertion: Merchandise requires Price and Quantity try {
  56. 56. Unit Testingpublic WarehouseCSVController() { Boolean beRandom =ApexPages.currentPage().getParameters().get(random) != null; if(beRandom) { allMerchandise = new List<Merchandise__c>(); for(Integer x = 0; x < 1500; x++) { Merchandise__c m = newMerchandise__c(Name=Widget +String.valueOf(x),Quantity__c=100, Price__c=49.99); allMerchandise.add(m); } } else { allMerchandise =WarehouseDataQuery.getAllMerchandise(); }
  57. 57. TUTORIAL 300
  58. 58. VISUALFORCE
  59. 59. Model View ControllerApplication design paradigm to divide data, logic and UI
  60. 60. VisualforceCloud based component framework for interfaces
  61. 61. 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>
  62. 62. STANDARD CONTROLLER
  63. 63. 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; } }}
  64. 64. Component Anatomy<apex:page StandardController=“Contact” extension=“duplicateUtilty” action=“checkPhone”> <apex:form> þ Custom Controllers <apex:outputField var=“{!Contact.FirstName}” > <apex:outputField var=“{!Contact.LastName}” /> þ Custom components <apex:inputField var=“{!Contact.Phone}” /> <apex:commandButton value=“Update” action=“{!quicksave}” /> þ Page Templates <apex:form></apex>
  65. 65. Common Use Cases Email Templates Embed in Page Layouts Generate PDFs Mobile Interfaces Page Overrides
  66. 66. Chatter Components chatter:follow chatter:newsfeed chatter:feed chatter:followers chatter:feedAndFollowers
  67. 67. TUTORIAL 330
  68. 68. MOBILE VF
  69. 69. INTEGRATION@metadaddy
  70. 70. INTEGRATION
  71. 71. Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-lookingstatements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions provesincorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statementswe make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscribergrowth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for futureoperations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments andcustomer 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 newfunctionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate ofgrowth, interruptions or delays in our Web hosting, breach of our security measures, risks associated with possible mergers andacquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivateour employees and manage our growth, new releases of our service and successful customer deployment, our limited history resellingnon-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that couldaffect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal quarter endedJuly 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 maynot be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features thatare currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  72. 72. OAuthIndustry standard method of user authentication
  73. 73. 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
  74. 74. WORKBENCH
  75. 75. REST APIAPI leveraging industry standard HTTP
  76. 76. REST API 1. Authenticate login.salesforce.com Mobile 2. Access API Salesforce Application /services/data/query? Platform SELECT ID FROM ACCOUNT 3. Get JSON or XML {“sObject”: “Account”, “id” : “oax02fdr756aFdad”}
  77. 77. WORKBENCH
  78. 78. SOAP APIXML messaging and WSDL based API
  79. 79. SOAP API 1. Authenticate login.salesforce.com Java Web 2. Access API Salesforce Server <QUERY><SOQL> Platform SELECT Id from Account </SOQL></QUERY> 3. Get XML <RECORDS> <RECORD type=“Account”> <id>oax02fdr756aFdad</id> </RECORD> </RECORDS>
  80. 80. Bulk APIAsynchronous API for handling large datasets
  81. 81. BULK API 1. Pull Recent Records Legacy TITLE: AppCo Database STREET: 1 Market Street REF:0001 ETL Tool 2. Push Updates Salesforce NAME: AppCo MailingStreet: 1 Market Street Platform ExternalID:0001
  82. 82. Streaming APIBayeux implementation for real-time delivery of data
  83. 83. STREAMING API 1. Handshake Java 2. Subscribe to Topic Salesforce Web Server Platform 3. Get Updates
  84. 84. Comparison of Force.com APIs Apex REST Apex SOAP REST API SOAP API Bulk API Streaming API Protocol REST SOAP/WSDL REST SOAP/ WSDL REST CometD Data Format JSON/XML XML JSON/XML XML CSV/XML JSONClient libraries/ HTTP client SOAP/WSDL HTTP client SOAP/WSDL HTTP client CometD tools (lightweight) library (lightweight) library (lightweight) JQuery Data Volume Medium Medium Medium Large Very Large Small-Large Sync/Async Sync Sync Sync Sync Async Stream
  85. 85. WORKBENCHPUSH TOPICS
  86. 86. TUTORIAL 370
  87. 87. Fundamentals for the EnterpriseMobile Social Identity Data Marketplace
  88. 88. Mobile SDKiOS and Android SDK for developing with Force.com
  89. 89. Mobile SDK: Accelerate App DevelopmentTools for building native, hybrid, and HTML5 apps on iOS and Android OAuth2 Secure authentication and refresh token management API Wrappers Interact with Salesforce REST APIs with popular mobile platform languages App Container Embed HTML5 apps inside a container to access powerful native device functionality Secure Offline Storage Store business data on a device with enterprise- class encryption Push Notifications Dispatch real-time alerts directly to mobile devices
  90. 90. Polyglot FrameworkPaaS allowing for the deployment of multiple languages
  91. 91. Github Repo Heroku Pull / Push Push DeploymentsDevelopment 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)
  92. 92. HEROKU
  93. 93. AppExchangeApplication Market for the Salesforce Platform
  94. 94. http://appexchange.com1,700+ Apps 20k+ Reviews 1.4m+ Installs
  95. 95. Double-click to enter title The Wrap UpDouble-click to enter text
  96. 96. http://bit.ly/elevatela13
  97. 97. Double-click to enter title Double-click to enter text@forcedotcom @cloudysan @pbhogill#forcedotcom
  98. 98. Double-click to enter title Join ADouble-click to enter text Developer User Group http://bit.ly/fdc-dugs LA DUG: http://www.meetup.com/Los-Angeles- Force-com-Developer-Group/ Leader: Nathan Pepper
  99. 99. Become A Double-click to enter title Leader Developer User GroupDouble-click to enter text Email: April Nassi <anassi@salesforce.com>
  100. 100. Double-click to enter title http://developer.force.comDouble-click to enter text
  101. 101. THANK YOU
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×