Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sao Paolo Workshop

1,091 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Sao Paolo Workshop

  1. 1. bem vindos@reidcarlberg@joshbirk
  2. 2. WIFI SSID: SSIDUSERNAME: unamePASSWORD: pword
  3. 3. Interactive–adjective1.acting one upon or with the other2. Of or pertaining to a two-way system ofelectronic communications, as by means oftelevision or computer.
  4. 4. @forcedotcom / #forcewebinarDeveloper Force Groupfacebook.com/forcedotcom
  5. 5. Data Models Formula FieldsWorkflows 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. 6. http://developer.force. com/join
  7. 7. Check Your Developer Edition Environmenthttp://developer.force.com/join
  8. 8. Got your coffee? Let’s get started:http://bit.ly/brazilweek
  9. 9. Name, Title@twitter
  10. 10. 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-lookingstatements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projectionsof subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management forfuture operations, 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.
  11. 11. Customers, Partners, and Employees AreDemanding 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. 12. “80% of new commercial enterprise apps will be deployed on cloud platforms in 2012”IDC Predictions 2012: Competing for 2020
  13. 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. 14. 800,000developers
  15. 15. 9 BillionAPI calls last month
  16. 16. 2.5x increase indemand for Force.comdevelopers
  17. 17. Youare the makers.
  18. 18. App Fundamentals for the EnterpriseMobile Social Identity Data Marketplace
  19. 19. Data Modelling Declarative Applications Create relationships, requirements and validation rules Apex, Visualforce and API‟s automatically extended
  20. 20. Native GeolocationSELECT Id, Warehouse_Location__latitude__s,Warehouse_Location__longitude__s,Street_Address__c, NameFROM Vendor__cWHERE DISTANCE(Warehouse_Location__c,GEOLOCATION(37.794539,-122.394717), mi) <= 10;
  21. 21. Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  22. 22. Business Logic Data model is API enabled Create Custom API Services Apex & Visualforce
  23. 23. Go Mobile, Go Social Mobile SDK for Android and iOS Chatter Mobile and Chatter REST Salesforce Identity & OAuth
  24. 24. Go Mobile, Go SocialOAuth2 Authentication Leverage Existing Force.com SkillsSecure Offline StorageXcode Project Wizard
  25. 25. Extend and Market Heroku AppExchange
  26. 26. Heroku Polyglot Framework Simple Cloud Deployment Easy Maintenance Quick Scaling
  27. 27. Canvas Quickly Create Embedded Heroku AppsCanvas integrates Third Partyapplications with Salesforce UI Identity enables access Salesforce data
  28. 28. AppExchange1,700+ Apps 20k+ Reviews 1.4m+ Installs
  29. 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. 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. 31. DATA MODELING@ReidCarlberg
  32. 32. 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-lookingstatements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projectionsof subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management forfuture operations, 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.
  33. 33. Data Modeling Declarative Applications Create relationships, requirements and validation rules Apex, Visualforce and API‟s automatically extended
  34. 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. 35. Let’s Build an App!
  36. 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. 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. 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. 39. 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
  40. 40. TUTORIALS 1 & 2
  41. 41. BUSINESS LOGIC COLLABORATIONName, Title@twitter
  42. 42. 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-lookingstatements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projectionsof subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management forfuture operations, 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.
  43. 43. Spreadsheet Versus Application
  44. 44. Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  45. 45. Declarative Programming Formula Fields Validation Rules Workflows Approvals
  46. 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. 47. Validation Rules If Then ErrorImplied on Formula evals Return errorrecord save. true (error) or message false (save) (UI or API)
  48. 48. Workflows When Why What
  49. 49. Workflows Update OutboundEmail Task Field Message
  50. 50. Approvals Single/Multi/Skip step processes Route based on roles, or queues Approval via emails Automation of manual processes
  51. 51. Approvals Define ActionsTrack Approval History
  52. 52. Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  53. 53. CHATTER DEMO
  54. 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. 55. Chatter Components chatter:follow chatter:newsfeed chatter:feed chatter:followers
  56. 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. 57. TUTORIALS 3 & 4
  58. 58. APEX + VISUALFORCEJoshua Birk, Developer Evangelist@joshbirk
  59. 59. 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-lookingstatements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projectionsof subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management forfuture operations, 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.
  60. 60. Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  61. 61. Model View Controller (MVC) PatternModel Controller View
  62. 62. Model View Controller (MVC) PatternYour Data Your Logic Your Interface
  63. 63. Model View Controller (MVC) PatternCustom Objects Apex Visualforce
  64. 64. Apexcloud-based programmatic language with directaccess to Force.com data
  65. 65. Apex Class Anatomypublic 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
  66. 66. What can you do with Apex? Controllers Custom API and Inbound/Outbound HTTP Callouts Email Services Database Triggers Scheduled and Batched Tasks
  67. 67. The Developer Console
  68. 68. VisualforceA component based framework for building userinterfaces with web standards like HTML, CSS andJavaScript
  69. 69. 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>
  70. 70. 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);} });
  71. 71. What can you do with Visualforce? Email Templates Embed in Page Layouts Generate PDFs Mobile Interfaces Web Sites
  72. 72. TUTORIAL #9
  73. 73. Salesforce MobileNo additional development, admin configured and controlledMobile HTML ApplicationWeb development skills required, easily made for multiple devicesand screensMobile SDK DevelopmentOffers access to device functionality and cancreate the most fast performing applications
  74. 74. Salesforce MobileNo additional development, admin configured and controlledMobile HTML ApplicationWeb development skills required, easily made for multiple devicesand screensMobile SDK DevelopmentOffers access to device functionality and cancreate the most fast performing applications
  75. 75. MOBILE VF DEMO
  76. 76. INTEGRATION + HEROKUJoshua Birk, Developer Evangelist@joshbirk
  77. 77. 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-lookingstatements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projectionsof subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management forfuture operations, 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.
  78. 78. Business Logic Workflows & Approvals Chatter Apex & Visualforce Enterprise API‟s
  79. 79. curlhttps://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" },
  80. 80. OAuth
  81. 81. 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
  82. 82. Bulk APIAsynchronous API for handling large amountsof XML based data
  83. 83. Extract Transform Load (ETL)A type of toolset which allows for the easymigration and manipulation of data betweendifferent systems
  84. 84. Streaming APIA Bayeux implementation to provide real-timedata updates to clients
  85. 85. Extend and Market Heroku AppExchange
  86. 86. Polyglot frameworkPaaS architecture which allows for multiplelanguage to be deployed
  87. 87. 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)
  88. 88. HEROKU DEMO
  89. 89. Double-click to enter title The Wrap UpDouble-click to enter text
  90. 90. http://bit.ly/brasildevweeksp
  91. 91. Double-click to enter titleDouble-click to enter text@forcedotcom @joshbirk @reidcarlberg@larimaryprairie
  92. 92. Double-click to enter titleDouble-click to enter text http://www.meetup.com/Sao-Paulo- Salesforce-Developer-User-Group/
  93. 93. Double-click to enter titleDouble-click to enter text http://developer.force.com http://youtube.com http://appexchange.com
  94. 94. simplicityis the ultimateform ofsophistication Da Vinci

×