bem vindos@reidcarlberg@joshbirk
WIFI SSID: SSIDUSERNAME: unamePASSWORD: pword
Interactive–adjective1.acting one upon or with the other2. Of or pertaining to a two-way system ofelectronic communication...
@forcedotcom / #forcewebinarDeveloper Force Groupfacebook.com/forcedotcom
Data Models Formula FieldsWorkflows Declarative Logic Validation Rules          Controller   Apex Governor Limits SOQL  Bi...
http://developer.force.        com/join
Check Your Developer Edition       Environmenthttp://developer.force.com/join
Got your coffee? Let’s get started:http://bit.ly/brazilweek
Name, Title@twitter
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
Customers, Partners, and Employees AreDemanding a New Generation of Apps. Now.                                            ...
“80% of new commercial enterprise apps will         be deployed on cloud platforms in 2012”IDC Predictions 2012: Competing...
The Salesforce Platform   Your Apps                            Our Apps                     Any Apps                      ...
800,000developers
9 BillionAPI calls last month
2.5x increase indemand for Force.comdevelopers
Youare the makers.
App Fundamentals for the               EnterpriseMobile      Social   Identity   Data   Marketplace
Data Modelling             Declarative Applications             Create             relationships, requirements and        ...
Native GeolocationSELECT Id, Warehouse_Location__latitude__s,Warehouse_Location__longitude__s,Street_Address__c, NameFROM ...
Business Logic            Workflows & Approvals            Chatter            Apex & Visualforce            Enterprise API‟s
Business Logic                 Data model is API enabled                 Create Custom API Services                     Ap...
Go Mobile, Go Social             Mobile SDK for Android and iOS             Chatter Mobile and Chatter REST             Sa...
Go Mobile, Go SocialOAuth2 Authentication Leverage Existing  Force.com SkillsSecure Offline StorageXcode Project Wizard
Extend and Market            Heroku            AppExchange
Heroku   Polyglot Framework Simple Cloud Deployment   Easy Maintenance      Quick Scaling
Canvas  Quickly Create Embedded        Heroku AppsCanvas integrates Third Partyapplications with Salesforce UI   Identity ...
AppExchange1,700+ Apps   20k+ Reviews   1.4m+ Installs
The Salesforce Platform                                          Built-in Services                                        ...
The Salesforce Platform   Your Apps                            Our Apps                     Any Apps                      ...
DATA MODELING@ReidCarlberg
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
Data Modeling            Declarative Applications            Create            relationships, requirements and            ...
Spreadsheet Versus Application                          Relational Data                          Validated data           ...
Let’s Build an App!
Warehouse Application Requirements• Track price and inventory on hand for all  merchandise• Create invoices containing one...
Warehouse Application Requirements• Track price and inventory on hand for all  merchandise• Create invoices containing one...
Warehouse Application Requirements• Track price and inventory on hand for all  merchandise• Create invoices containing one...
Warehouse Data Model                                    Invoice      Number              Status              Count        ...
TUTORIALS 1 & 2
BUSINESS LOGIC              COLLABORATIONName, Title@twitter
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
Spreadsheet Versus Application
Business Logic            Workflows & Approvals            Chatter            Apex & Visualforce            Enterprise API‟s
Declarative Programming Formula Fields   Validation Rules  Workflows         Approvals
Formula Fields•   „Pre-packaged‟ operations for performing common logic•   Support for commons functions     – Math     – ...
Validation Rules     If           Then              ErrorImplied on     Formula evals     Return errorrecord save.   true ...
Workflows            When   Why   What
Workflows               Update   OutboundEmail   Task                Field   Message
Approvals    Single/Multi/Skip step processes    Route based on roles, or queues    Approval via emails    Automation of m...
Approvals                         Define ActionsTrack Approval History
Business Logic            Workflows & Approvals            Chatter            Apex & Visualforce            Enterprise API‟s
CHATTER DEMO
Privacy and Security     Home Tab / Profile Page        Record Detail Page                                      Only users...
Chatter Components                 chatter:follow                chatter:newsfeed                  chatter:feed           ...
Chatter Triggers  if(feed_text == „promote‟) {         rec.status__c = “Approved”         addToEmailPromotion(rec);       ...
TUTORIALS 3 & 4
APEX + VISUALFORCEJoshua Birk, Developer Evangelist@joshbirk
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
Business Logic            Workflows & Approvals            Chatter            Apex & Visualforce            Enterprise API‟s
Model View Controller (MVC) PatternModel                            Controller                  View
Model View Controller (MVC) PatternYour Data                          Your Logic                  Your Interface
Model View Controller (MVC) PatternCustom Objects                          Apex                     Visualforce
Apexcloud-based programmatic language with directaccess to Force.com data
Apex Class Anatomypublic with sharing class myControllerExtension {                                                       ...
What can you do with Apex?   Controllers          Custom API and    Inbound/Outbound                         HTTP Callouts...
The Developer Console
VisualforceA component based framework for building userinterfaces with web standards like HTML, CSS andJavaScript
Visualforce Page Anatomy<apex:page controller=“Contact” extension=“duplicateUtilty” action=“checkPhone”>    StandardContr...
JavaScript Remoting                                                                Access Apex from JavaScript  @RemoteAc...
What can you do with Visualforce? Email Templates    Embed in Page Layouts   Generate PDFs        Mobile Interfaces       ...
TUTORIAL #9
Salesforce MobileNo additional development, admin configured and controlledMobile HTML ApplicationWeb development skills r...
Salesforce MobileNo additional development, admin configured and controlledMobile HTML ApplicationWeb development skills r...
MOBILE VF DEMO
INTEGRATION + HEROKUJoshua Birk, Developer Evangelist@joshbirk
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain...
Business Logic            Workflows & Approvals            Chatter            Apex & Visualforce            Enterprise API‟s
curlhttps://na1.salesforce.com/services/data/v20.0/query/?q=SELECT+name+from+Account-H "Authorization: OAuth token" -H "X-...
OAuth
OAuth2 Flow                Sends App Credentials                        User logs in,                    Token sent to cal...
Bulk                                    APIAsynchronous API for handling large amountsof XML based data
Extract        Transform    Load      (ETL)A type of toolset which allows for the easymigration and manipulation of data b...
Streaming                                APIA Bayeux implementation to provide real-timedata updates to clients
Extend and Market            Heroku            AppExchange
Polyglot                              frameworkPaaS architecture which   allows   for multiplelanguage to be deployed
Github Repo                             Heroku     Pull / Push                      Push DeploymentsDevelopment Changes   ...
HEROKU DEMO
Double-click to enter title  The Wrap UpDouble-click to enter text
http://bit.ly/brasildevweeksp
Double-click to enter titleDouble-click to enter text@forcedotcom  @joshbirk @reidcarlberg@larimaryprairie
Double-click to enter titleDouble-click to enter text                      http://www.meetup.com/Sao-Paulo-               ...
Double-click to enter titleDouble-click to enter text         http://developer.force.com             http://youtube.com   ...
simplicityis the ultimateform ofsophistication           Da Vinci
Sao Paolo Workshop
Sao Paolo Workshop
Sao Paolo Workshop
Upcoming SlideShare
Loading in …5
×

Sao Paolo Workshop

1,068 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,068
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Can you guess the word? This is the theme for the day. Social and interactive. This is not a one way conversation. That wouldn’t be very social would it?Emphasize that questions can be asked about anything, it doesn’t require to be related to the tutorials, etc. It’s an open dialog.
  • OK, we have a lot to talk about today. It might seem a little overwhelming, but let’s focus on the big topics.
  • Disruptive changes require fast and agile development
  • Enterprises are responding to this demand by going to the cloud
  • 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?
  • 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?
  • 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?
  • 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
  • Relational DataValidated dataProcess driven workflowsApproval SystemField AuditingUsers, Profiles and PermissionsEnterprise Collaboration
  • Formulas are the building blocks of creating our business logic declaratively, and you’ll see them appear again throughout the day.
  • Formula fields work like formulas work in Excel spreadsheets.The formula here insists that a delivery date is needed for these stages.
  • 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
  • This is hard to see
  • Automated, time based processes that can integrate into backend systemsGreat for consistency, and removing human involvementEg:
  • How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  • 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.
  • 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.
  • Let’s talk about anatomy, specifically the anatomy of an application. If you are going to build something which is easy to maintain in an enterprise setting, how would you do it? What would be the bones, muscle and skin of your application?
  • The MVC pattern is one of the most commonly used design paradigms to create enterprise web applications. It neatly divides and conquers the application into distinct components to solve specific problems.
  • Specifically it keeps your data, your logic and your interfaces distinct while allowing them to interoperate. Think of your data like the bones of an animal – it defines the structure of what that animal will be, but it doesn’t need to know how to move around. Logic, your muscle, will do that for it. But Logic isn’t worried about appearances – that’s what your interfaces … the skin of your application … is for.
  • On the Force.com platform, we give all the tools to get this done. You’ve already seen custom objects, now let’s look into what makes that work with Apex and Visualforce to give your applications logic and a UI.
  • So we know how to get our data. What can we do with it? With Apex, it might be easier to ask what you can’t do with it.
  • 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.
  • Let’s have a look at what Apex looks like. We are going to build the worlds most simple Apex Class, HelloContacts. This is a great example for seeing how we can use the new Developer console within Force.com to code completely in the cloud. Much of the workbook will talk about use the Force.com IDE, an eclipse-based development environment. For today however, we are going to use the developer console. Talk through dev console with the repository view, highlight SOQL (we are going to need that to achieve our requirements) then execute the class and show how to use the log viewer to see execution time etc.
  • OK. We can do all of this powerful logic, right in our cloud – right from your web browser. It seems just too easy, right?There’s a catch. Think about an airport, and all the planes that are flying in the airspace and their trajectories and where they are heading and where they are going. Imagine being a pilot in that situation trying to land without an air traffic control tower.Force.com is an enterprise class multitenant architecture. We have a lot of planes in the air, and they all have places to go – but we get them where they are going, we do it safely and securely, and we’re doing it faster and faster with every release. We do this with some pretty excellent technology, but we also put some limits on what some of the our technologies like Apex can do. This makes sure someone isn’t able to fly a big, huge jet really quickly right through the middle of everyone’s path.
  • So what are some of those things?
  • OK, we have our bones and our muscle – what about our skin?
  • 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.
  • 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.
  • 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

    ×