Salesforce Campus Tour - Developer Advanced

Post on 10-Jul-2015

166 views 4 download

Transcript of Salesforce Campus Tour - Developer Advanced

Salesforce 2014 Campus Tour

Subtitle placeholder

Speaker Name and Title (second level bullet)

Safe Harbor

Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such

uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ

materially from the results expressed or implied by the forward-looking statements we make. All statements other than

statements of historical fact could be deemed forward-looking, including any projections of product or service availability,

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, new products and services, 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, the outcome of any litigation, risks associated with completed and any 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 year and in our quarterly report on Form 10-Q for the most recent fiscal quarter.

These documents and others containing important disclosures 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 presentations, 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.

#CampusTour14

World’s most admired software company

#1 most

admired in

software

#7 best company

to work for

2011 • 2012 • 2013 • 2014

World’s most innovative company

4TH YEAR IN A

ROW!

*Source: IDC, Worldwide CRM Applications 2014-2018 Forecast and 2013 Vendor Shares, Doc #248875, June 2014

World’s #1 CRM company*

Image

FPO

Celebrating 15 Yearsof Customer Success

1%

Time • Equity • Product

530,000+

Hours Service

20,000

Non-profit organizations

$53M+

Grants

foundation

The Third Wave of Computing

SNA

Terminal

Mainframe LAN / WAN

Client

Server

LAN / WAN

Client

Server

customer transactions

connected things

LTE

Mobile

Cloud

“Third Wave” of Computing

BillionsThousands Millions Trillions

But Most Companies Are Disconnected From Customers

Service Agents

Salespeople

Your

Company

Your

Customers

Your Partners

Become a Customer Company

Analyticsfor the rest of us

Buildmobile apps

faster

Sell, Service, Market & Engage

in a whole new way

Connect with your customers in a whole new way

Salesforce1: A New Customer Platform for the Future

Salesforce1 Platform APIs

Salesforce1 App

Salesforce1 Platform Services

Force.com Heroku1ExactTarget

Fuel

Build Amazing Apps and Connect Everything.

Build Innovative

Customer apps

Automate Processes

with Employee Apps

Connect

Everything

Branded social intranet built mobile first

Key business metrics customized for each ‘teammate”

Chatter collaboration for every department

Business users update content in real-time

Virgin America Connects Every Employee with a Social Intranet

Trunk Club Connects Customers & Employees with Mobile Apps

Customer facing mobile app built on Heroku

Employee mobile app built on Force.com for order fulfillment

Integrated sales, service & marketing built on the Salesforce Platform

Salesforce Academic Program

Demand is Growing Across Multiple Roles

Force.com

Developer

Technical

Architect

Solutions

Architect

Principal

Consultant

Business

Analyst

Source: Hire On-Demand http://www.hireon-demand.com

60% 159% 90%of companies moving

to cloud

Demand growth for all

Salesforce Talent

Demand growth for

Salesforce

Developers

Salary Average

Job Silicon Valley National

Force.com Data Analyst $95k $65k

Salesforce.com Administrators $100k $80k

Global Salesforce Administrators $120k $95k

Force.com Developers $125k $98k

Certified Force.com Developers $135k $115k

Sr. Force.com Developers $150k $125k

Force.com Architects $170k $140k

Force.com Solution Architects $200k $165k

Salesforce CRM Business Analysts $140k $110k

Salesforce CRM Program Managers $185k $135k

Salesforce Implementation Consultants $220k $175k

Source: Nelson Technologies, November 2013

http://www.nelsontechnology.com

Salesforce Skills Earn Top Paying Jobs

Campus Events

Internships &

Recruiting Curriculum

Mentorship &

Experience

Classroom speakers

Workshops

Hackathons

Business Competitions

University

Conferences

Student User Groups

Company visits/tours

Internship Program

Recruitment

Courseware

Curriculum

Student/Faculty

licenses

Training & certification

Capstone projects

Entrepreneurship

Research projects

Student Ambassadors

Academic Program Components

1 2 3

Join Live Telecast on

November 12, 2014Compete in Salesforce1

Challenge to win an Xbox Attend a

Campus Event

Salesforce Campus TourOct 24-Nov 14th

www.salesforcecampustour.com

Keep Learning With Trailheaddeveloper.salesforce.com/trailhead

Salesforce Certifications

Key Skills Preparation

• Manage users, data, and security

• Maintain and customize Sales Cloud and Service Cloud

applications

• Build reports, dashboards, and workflow

Administration Essentials for New

Admins (ADM 201)

FREE Self-paced Training:• certifiedondemand.com

• Leverage advanced administration

• Optimize and extend Sales Cloud and Service Cloud

applications

• Design advanced reports, dashboards, and business

process automation

Administration Essentials for

Experienced Admins (ADM-211)

FREE Self-paced Training:• Force.com Fundamentals Book

• Build custom applications using point-and-click

• Design the data model, user interface, business logic,

and security for custom applications

• Design reports, dashboards, and portals

Building Applications with Force.com

and Visualforce (DEV401)

FREE Self-paced Training:

• Udacity.com

• Develop custom applications using Apex & Visualforce

• Manage the development lifecycle and environments

• Write and execute comprehensive test plans

Apex and Visualforce Controllers

(DEV501)

FREE Self-paced Training:• Introduction to Visualforce (YouTube)

• www.sfdc99.com

Campus Ambassador

Program

Salesforce FutureForce Program

salesforce.com/futureforce

Lets Build an App

https://ccoenraets.github.io/salesforce-developer-advanced/

Using JavaScript in Visualforce Pages

Why JavaScript?

Build Engaging User Experiences

Leverage JavaScript Libraries

Build Custom Applications

JavaScript in Visualforce Pages

JavaScript Remoting

Remote Objects

(REST)

Visualforce Page

Examples

Using JavaScript and CSS Libraries

Hosted elsewhere

<script src="https://maps.googleapis.com/maps/api/js"></script>

Hosted in Salesforce

•Upload individual file or Zip file as Static Resource

•Reference asset using special tags

Referencing a Static Resource

// Single file

<apex:includeScript value="{!$Resource.jquery}"/>

<apex:image url="{!$Resource.myLogo}"/>

// ZIP file

<apex:includeScript value="{!URLFOR($Resource.MyApp, 'js/app.js')}"/>

<apex:image url="{!URLFOR($Resource.MyApp, 'img/logo.jpg')}/>

<link href="{!URLFOR($Resource.bootstrap, 'bootstrap/css/bootstrap.css')}" rel="stylesheet"/>

JavaScript Remoting - Server-Side

global with sharing class HotelRemoter {

@RemoteAction

global static List<Hotel__c> findAll() {

return [SELECT Id,

Name,

Location__Latitude__s,

Location__Longitude__s

FROM Hotel__c];

}

}

"global with sharing"?

global

•Available from outside of the application

with sharing

•Run code with current user permissions. (Apex code runs in system context by default -- with access to all objects and fields)

JavaScript Remoting - Visualforce Page

<script>

Visualforce.remoting.Manager.invokeAction(

'{!$RemoteAction.HotelRemoter.findAll}',

function (result, event) {

if (event.status) {

for (var i = 0; i < result.length; i++) {

var lat = result[i].Location__Latitude__s;

var lng = result[i].Location__Longitude__s;

addMarker(lat, lng);

}

} else {

alert(event.message);

}

}

);

</script>

Using the REST APIs

When?

Get Salesforce data from outside Salesforce

Integrate Salesforce in existing apps

Build consumer apps

Device integration (Internet of Things)

Mobile SDK Example

REST APIs

OAuth

Browser Cross-Origin Restrictions

REST APIs

app.js

index.html

OAuth

HTTP Server

Cross Origin Policy

Using a Proxy

app.js

index.html

OAuth

REST APIs

HTTP Server

Proxy

Connected App

Libraries

ForceTK

•Salesforce REST API Toolkit

Nforce

•node.js a REST API wrapper

ngForce

•Visualforce Remoting integration in AngularJS

JSForce

Writing Unit Tests

Unit Testing

Code to test code

Increases quality and predictability

Unit test coverage is required to move code to production

•Must have at least 75% of code covered

•Coverage = lines of code exercised by tests / total line of code

Anatomy of a Test Class

@isTest

private class myClass {

static testMethod void myTest() {

// 1. Prepare temporary data

// 2. Start Test

// 3. Execute some code

// 4. Stop Test

// 5. Assert

}

}

Create Temp data

Datetime now = System.now();

// Create speaker

Speaker__c sp = new Speaker__c(First_Name__c='Al', Last_Name__c='Smith');

insert sp;

// Create two sessions starting at the same time

Session__c s1 = new Session__c(Name='Session1', Session_Date__c=now);

insert s1;

Session__c s2 = new Session__c(Name='Session2', Session_Date__c=now);

insert s2;

// Book speaker for session1

Session_Speaker__c booking1 =

new Session_Speaker__c(Session__c=s1.Id, Speaker__c=sp.Id);

insert booking1;

Test and Assert

Test.startTest();

// Try to book speaker to session2

Session_Speaker__c booking2=

new Session_Speaker__c(Session__c=s2.Id, Speaker__c=sp.Id);

Database.SaveResult result = Database.insert(booking2, false);

Test.stopTest();

// Insert should fail: can't book same speaker for 2 sessions happening

// at same time

System.assert(!result.isSuccess());

Running Tests

All done. Take a survey!

http://bit.ly/devdayutaustin