Professional Web Site Development

22
Professional Website Development Ryan Ellis: salesforce.com John Stritzinger: Radian Guaranty Inc Phil Calvin: salesforce.com Developers

description

Truly robust, useful, and professional-looking Web sites require more than just publishing a page to the Web. Join us to find out how you can really make your Web sites discoverable, searchable, and consummately professional. This session will enable you to expertly implement URL rewriting, and cookie management and provide the insight you need for absolute maintainability.

Transcript of Professional Web Site Development

Page 1: Professional Web Site Development

Professional Website Development

Ryan Ellis: salesforce.com

John Stritzinger: Radian Guaranty Inc

Phil Calvin: salesforce.com

Developers

Page 2: Professional Web Site Development

Questions

Please post your questions to

Dreamforce Chatter

Page 3: Professional Web Site Development

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-Q for the most recent fiscal quarter ended April 30, 2010. 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.

Page 4: Professional Web Site Development

CachingLeverage the Akamai Content Delivery Network (CDN)

Fast page load times

Global reach

Offload bandwidth

Keep in mind:

Entire page

content is static

Page 5: Professional Web Site Development

CachingUse static resources to store and cache js, css and images

Page 6: Professional Web Site Development

Caching

Base class for all Controllers in AppExchange

Page tag for AppExchange home page

Set your cache configuration on each page

Page 7: Professional Web Site Development

Search Engine Optimization

global class appexchangeRewriter implements Site.UrlRewriter {

global PageReference mapRequestUrl(PageReference externalUrl) {

String url = externalUrl.getUrl();

if(url.startsWith('/')){

String name = url.substring(1,url.length());

Listing__c listing = [select Listing_ID__c from Listing__c where Listing_URL__c =:name LIMIT 1];

System.debug('Returning Friendly URL');

return new PageReference('/listingDetail?listingId=' + listing.Listing_id__c);

} else {

return externalUrl;

}

}

global List<PageReference> generateUrlFor(List<PageReference> internalLinks) {

System.debug('In Generate URL');

List<PageReference> newLinks = new List<PageReference>();

List<String> newIds = new List<String>();

for(PageReference link : internalLinks) {

System.debug(link.getUrl());

if(link.getUrl().indexOf('/listingDetail?listingId=') >= 0) {

String lid = link.getUrl().substring(22,link.getUrl().length());

Listing__c listing = [select Listing_URL__c from Listing__c where Listing_ID__c =:lid LIMIT 1];

newLinks.add(new PageReference('/'+listing.ListingURL__c));

} else {

newLinks.add(link);

}

}

return newLinks;

}

}

Visualforce Page

<apex:page showHeader="false" standardStylesheets="false" standardController="Listing__c">

<h1><apex:outputLabel value="{!Listing__c.Name}"></apex:outputLabel></h1>

{!Listing__c.Description__c}

<HR />

<a href="{!URLFOR($Page.ListingDetail,null,[id=Listing__c.Listing_ID__c])}">Detail Link</a>

</apex:page>

Controlled through configuration and simple code

Verify Your Site with Search Engines

Page 8: Professional Web Site Development

Internationalization & LocalizationMake your website available to the world

Translation Workbench

• Get it enabled on your Salesforce organization

• Select your supported languages

Custom Labels

• labels/CustomLabels.Labels

Translations

• translations/ja.translation

Page 9: Professional Web Site Development

Internationalization & Localization

HomePageController Class Util Class

Exchange Class

Page 10: Professional Web Site Development

Web Analytics

1 2Google Analytics Omniture

Multiple options for tracking web activity

Include js snippet on pages you want to track

Page 11: Professional Web Site Development

Content Management Systems

1

2

CMSForce 2

AppExchange Partners

OrchestraCMS

Arxxus

Cool Sites

3 Build Your Own

Enable easy management of your content

Page 12: Professional Web Site Development

John Stritzinger

Radian Guaranty Inc

Page 13: Professional Web Site Development
Page 14: Professional Web Site Development

CMSForce* and Dynamic Content

Content Pushed to Site

Realtime Web Service Calls

Dynamic Data Driven Architecture

Page 15: Professional Web Site Development

Phil Calvin

salesforce.com

Page 16: Professional Web Site Development

What's wrong with this?

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%>

<%@ taglib tagdir="/WEB-INF/tags/Front" prefix="front" %>

<%@ taglib tagdir="/WEB-INF/tags/UI" prefix="ui" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Login Page</title>

<!-- Frame buster.. -->

<script type="text/javascript"> if (window != top) top.location.href = location.href; </script>

<!-- CSS for new configuration/ui. Will be moved to external file -->

<style type='text/css'> body { background: #F7F7F7 url(bg_body.png) 0 0 repeat-x; }</style>

</head>

<body id="studioBody" onload="if (typeof(startSessionTimer)!='undefined') {startSessionTimer(); }">

<%

// Inject the session timeout popup code.

if (!Ctx.config().get().getConfigInfo().isTimeoutEnabled()) { SessionTimeout.display(); }

%>

<ul class='loginForm'>

<li>Please enter your login creentials</li>

<li>Login</li><li><input type='text' id='loginID' /></li>

<li>Login</li><li><input type='password' id='password' /></li>

<li>Login</li><li><input type='submit' id='loginButton' value='LoginNow' /></li>

</ul>

</body>

</html>

Page 17: Professional Web Site Development

SiteforceMaking web content management easy

Unauthenticated websites

myDomain

Built with visual force pages

Integrated with your Force.com data/content

Content Delivery Network

URL rewriting

myDomain for sandbox

Usage workflow alerts

301/302 redirects

Coming soon…Integrated CMS

Pixel perfect Declarative Designer

Collaboration

Drag and drop data integrations

Analytics

Dashboard for governance

Page 18: Professional Web Site Development

SiteforceDesign, Build, Manage and Monitor on Force.com

Build a new site

Change the layout, add new pages

Edit the content

Make it Social

Hook up some data

Publish it

We have 10 mins to do all this !

Page 19: Professional Web Site Development

Professional Website Development

Page 20: Professional Web Site Development

D I S C O V E R

Visit the Developer Training and Support Booth

in Force.com Zone

Developer training, certification and support resources

S U C C E S SFind us in the Partner Demo Area of

Force.com Zone 2nd Floor Moscone West

that help you achieve

Page 21: Professional Web Site Development

Remember. . .

Check Chatter for additional session information

Get your developer Workbooks and Cheat Sheets in

the Force.com Zone

Visit for more information related to

this topic

Don’t forget

the survey!

Page 22: Professional Web Site Development

How Could Dreamforce Be Better? Tell Us!

Log in to the Dreamforce app to submit

surveys for the sessions you attended

Use the

Dreamforce Mobile

app to submit

surveysEvery session survey you submit is

a chance to win an iPod nano!

OR