Sao Paolo Workshop

Post on 15-Jan-2015

883 views 2 download

Tags:

description

 

Transcript of Sao Paolo Workshop

@reidcarlberg@joshbirk

bem vindos

WIFI SSID: SSID

USERNAME: uname

PASSWORD: pword

–adjective

1.acting one upon or with the other

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

Interactive

@forcedotcom / #forcewebinar

Developer Force Group

facebook.com/forcedotcom

Data ModelsDeclarative Logic

ApexVisualforce

HerokuSite.com

Chatter

REST API

Formula Fields

Mobile Interfaces OAuth

Spring MVC

git

Workflows

Triggers

Validation Rules

MVC Model

Governor Limits

Cloud Deployment

Controller SOQL

Binding Data

http://developer.force.com/join

Check Your Developer Edition Environment

http://developer.force.com/join

Got your coffee? Let’s get started:

http://bit.ly/brazilweek

Name, Title@twitter

Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal quarter ended July 31, 2011. This document and others are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Customers, Partners, and Employees Are Demanding a New Generation of Apps. Now.

456 Million Tablets at Work

782 Million Smartphones at Work

2009 2010 2011 20122013(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

Chatter

Force.comHeroku Site.com

Database.com

Salesforce Touch Platform

App

Exc

hang

e

Sal

esf

orce

Ide

ntity

Your Apps Our Apps Any Apps

The Salesforce Platform

800,000 developers

9 Billion API calls last month

2.5x increase in demand for Force.com developers

You are the makers.

App Fundamentals for the Enterprise

Mobile Social Identity Data Marketplace

Data Modelling

Declarative Applications

Create relationships, requirements and validation rules

Apex, Visualforce and API’s automatically extended

Native Geolocation

SELECT Id, Warehouse_Location__latitude__s, Warehouse_Location__longitude__s,Street_Address__c, Name FROM Vendor__c WHERE DISTANCE(Warehouse_Location__c, GEOLOCATION(37.794539,-122.394717), 'mi') <= 10;

Business Logic

Workflows & Approvals

Apex & Visualforce

Enterprise API’s

Chatter

Business Logic

Data model is API enabled

Create Custom API Services

Apex & Visualforce

Go Mobile, Go Social

Mobile SDK for Android and iOS

Chatter Mobile and Chatter REST

Salesforce Identity & OAuth

Go Mobile, Go Social

OAuth2 Authentication

Leverage Existing Force.com Skills

Secure Offline Storage

Xcode Project Wizard

Extend and Market

Heroku

AppExchange

Heroku

Simple Cloud Deployment

Easy Maintenance

Quick Scaling

Polyglot Framework

Canvas

Canvas integrates Third Party applications with Salesforce UI

Identity enables access Salesforce data

Quickly Create EmbeddedHeroku Apps

AppExchange

1,700+ Apps 20k+ Reviews 1.4m+ Installs

The Salesforce Platform

InfrastructureServices

Network

Storage

Operating System

Database

App Server

Web Server

Data Center

Disaster Recovery

OperationsServices

Authentication

Availability

Monitoring

Patch Management

Upgrades

Backup

NOC

Troubleshooting

Your Innovative

AppApplicationServices

Security/Sharing

Integration

Customization

Web Services

Multi-Language

Workflow

Built-in ServicesTouch

Services

Native iOS SDK

Native Android SDK

HTML5

Xcode wizards

PIN code support

Custom APEX REST

Geo-location Mobile

APIs

SocialServices

Feeds

Profiles

Status updates

Groups

File sharing

Approvals

Messenger

Presence

PlatformServices

Globalization

APIs

Security

Analytics

Search

Identity

Chatter

Force.comHeroku Site.com

Database.com

Salesforce Touch Platform

App

Exc

hang

e

Sal

esf

orce

Ide

ntity

Your Apps Our Apps Any Apps

The Salesforce Platform

@ReidCarlberg

DATA MODELING

Safe HarborSafe 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 ApplicationRelational DataValidated dataProcess driven workflowsApproval SystemField AuditingUsers, Profiles and PermissionsEnterprise Collaboration

OR

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

Merchandise

Name Price Inventory

Pinot $20 15

Cabernet $30 10

Malbec $20 20

Zinfandel $10 50

Invoice

Number Status Count Total

INV-01 Shipped 16 $370

INV-02 New 20 $200

Invoice Line Items

Invoice Line Merchandise Units Sold

Unit Price

Value

INV-01 1 Pinot 1 15 $20

INV-01 2 Cabernet 5 10 $150

INV-01 3 Malbec 10 20 $200

INV-02 1 Pinot 20 50 $200

TUTORIALS 1 & 2

Name, Title@twitter

BUSINESS LOGIC COLLABORATION

Safe HarborSafe 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

Apex & Visualforce

Enterprise API’s

Chatter

Validation Rules

Workflows Approvals

Declarative Programming

Formula Fields

Formula Fields• ‘Pre-packaged’ operations for performing common logic

• Support for commons functions– Math– Text– Date & Time – Logical

• Can chain functions togetherAND ( OR (

ISPICKVAL(StageName, "Closed Won"),

ISPICKVAL(StageName, "Negotiation/Review")),

ISBLANK(Delivery_Date__c) )

If Then Error

Implied on record save.

Formula evals true (error) or false (save)

Return error message (UI or API)

Validation Rules

When

Why

What

Workflows

TaskOutbound Message

Update Field

Email

Workflows

ApprovalsSingle/Multi/Skip step processes

Route based on roles, or queues

Automation of manual processes

Approval via emails

Track Approval History

Define Actions

Approvals

Business Logic

Workflows & Approvals

Apex & Visualforce

Enterprise API’s

Chatter

CHATTER DEMO

Privacy and SecurityHome Tab / Profile Page Record Detail Page

Every internal user can see what you post

Only users with “Read” access to the record can see what

you post

Chatter Components

chatter:follow

chatter:newsfeed

chatter:feed

chatter:followers

chatter:feedAndFollowers

Chatter Triggers

if(feed_text == ‘promote’) {rec.status__c = “Approved”

addToEmailPromotion(rec); FeedItem post = new FeedItem(); post.ParentId = rec.Id; post.Body = ‘Record added to promotion’;

feedsToInsert.addITem(post);}

TUTORIALS 3 & 4

Joshua Birk, Developer Evangelist@joshbirk

APEX + VISUALFORCE

Safe HarborSafe 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

Apex & Visualforce

Enterprise API’s

Chatter

Model View Controller (MVC) Pattern

Model Controller

View

Your Data Your Logic

Your Interface

Model View Controller (MVC) Pattern

Custom Objects Apex

Visualforce

Model View Controller (MVC) Pattern

Apexcloud-based programmatic language with direct access to Force.com data

public with sharing class myControllerExtension {

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; }}

Apex Class AnatomyClass and Interface based

Scoped Variables

Inline SOQL

Inline DML

What can you do with Apex?

Controllers Inbound/OutboundEmail Services

Custom API andHTTP Callouts

Database Triggers Scheduled and Batched Tasks

The Developer Console

VisualforceA component based framework for building user interfaces with web standards like HTML, CSS and JavaScript

<apex:page controller=“Contact” extension=“duplicateUtilty” action=“checkPhone”>

<apex:form>

<apex:outputField var=“{!Contact.FirstName}” ><apex:outputField var=“{!Contact.LastName}” />

<apex:inputField var=“{!Contact.Phone}” /><apex:commandButton value=“Update” action=“{!quicksave}” />

<apex:form>

</apex>

Visualforce Page AnatomyStandard ControllersCustom ControllersCustom Extensions

Data bound components

Controller Callbacks

@RemoteAction 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 WHERE Id =: productId LIMIT 1]; if(m.size() > 0) { m[0].Total_Inventory__c = newInventory; try { update m[0]; return 'Item Updated'; } catch (Exception e) { return e.getMessage(); } } else { return 'No item found with that ID'; } } }

JavaScript RemotingAccess Apex from JavaScript

Asynchronous Responses

j$(".updateBtn").click(function() { var id = j$(this).attr('data-id'); var inventory = parseInt(j$("#inventory"+id).val()); j$.mobile.showPageLoadingMsg(); MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate); });

Apex

Visualforce

What can you do with Visualforce?

Email Templates Generate PDFsEmbed in Page Layouts

Mobile Interfaces Web Sites

TUTORIAL #9

Salesforce Mobile

Mobile HTML Application

Mobile SDK Development

No additional development, admin configured and controlled

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

Offers access to device functionality and can create the most fast performing applications

Mobile HTML Application

Mobile SDK Development

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

Offers access to device functionality and can create the most fast performing applications

Salesforce MobileNo additional development, admin configured and controlled

MOBILE VF DEMO

Joshua Birk, Developer Evangelist@joshbirk

INTEGRATION + HEROKU

Safe HarborSafe 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

Apex & Visualforce

Enterprise API’s

Chatter

REST API

curl https://na1.salesforce.com/services/data/v20.0/query/?q=SELECT+name+from+Account -H "Authorization: OAuth token" -H "X-PrettyPrint:1"

{ "done" : true, "totalSize" : 14, "records" : [ { "attributes" : { "type" : "Account", "url" : "/services/data/v20.0/sobjects/Account/001D000000IRFmaIAH" }, "Name" : "Test 1" }, { "attributes" : { "type" : "Account", "url" : "/services/data/v20.0/sobjects/Account/001D000000IomazIAB" }, "Name" : "Test 2" },

...

]}

OAuth

OAuth2 Flow

RemoteApplication

SalesforcePlatform

Sends App Credentials

User logs in,Token sent to callback

Confirms token

Send access token

Maintain session withrefresh token

Bulk APIAsynchronous API for handling large amounts of XML based data

Extract Transform Load (ETL)A type of toolset which allows for the easy migration and manipulation of data between different systems

Streaming APIA Bayeux implementation to provide real-time data updates to clients

Extend and Market

Heroku

AppExchange

Polyglot frameworkPaaS architecture which allows for multiple language to be deployed

$ git push heroku masterCounting 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)

Github Repo Heroku

Local Repo

Pull / PushDevelopment Changes

Push DeploymentsMonitor Application

HEROKU DEMO

Double-click to enter title

Double-click to enter text

The Wrap Up

http://bit.ly/brasildevweeksp

Double-click to enter title

Double-click to enter text

@forcedotcom@joshbirk

@reidcarlberg@larimaryprairie

#askforce

Double-click to enter title

Double-click to enter text

http://www.meetup.com/Sao-Paulo-Salesforce-Developer-User-

Group/

Double-click to enter title

Double-click to enter text

http://developer.force.comhttp://youtube.com

http://appexchange.com

simplicityis the ultimate form ofsophistication

Da Vinci