architecting for success: designing and building your force.com commercial app
DESCRIPTION
You'll certainly face plenty of key questions and decisions as you architect your Force.com app. For example, should you distribute your app as a package or use a single org deployment model? Will internal and external users require access to the app? Will the app extend Salesforce CRM functionality or will it just use the Force.com platform? What licenses do you need to power your app? Join us to learn how to make the big decisions about your app's architecture to get on the path to success.TRANSCRIPT
Architecting for Success: Designing and
Building Your Force.com Commercial App
Developers
Andrew Albert: salesforce.com
David Brooks: salesforce.com
Sarah Whitlock: salesforce.com
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 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 year ended January 31, 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.
Session Overview
Key Points
Force.com is a trusted application platform for ISVs
building cloud-based applications
Choices made early in the ISV Application Lifecycle can
have implications later on
Understand the impact of your choices
Distribute Sell SupportBuild Brand
Decision Points for Success
What are you building?
Who are you selling to?
?
Branding
Distribution Implications
Licenses & Editions
Architecture Model
Architecture Model
Two Fundamental Architecture Models
Single Org ModelDistributed Org Model
Key Points
The overwhelming majority of ISV apps leverage the
distributed org model.
The single org model is suitable for very specific use
cases.
We will first direct attention to the distributed org model.
Distributed Org Architecture Model
Your Force.com App
(Developer Edition)
Your Customers
(Production orgs)
Install/Deploy your Managed Package using
AppExchange/Trialforce
• Each customer has its own org with app installed
• App distributed via Managed Package
• Upgrades, License Management
• Run multiple apps in customer org
• Development in Developer Edition orgs
What are you building?
Who are you selling to?
?
What are you building?
• Email Marketing, Sales
Compensation, etc.
• Extending Salesforce CRM
• Standard + Custom Objects
• ERP, Accounting, Recruiting,
Project Management, etc.
• No reliance on Salesforce CRM
• Custom Objects
Custom ApplicationCRM Extension
Need Screenshot
+ Logo
?
Who are you selling to?
• Package your app
• Provide your prospect with
an org containing your
package
New Customer?Existing Salesforce
Customer?
?
• Package your app
• Customer installs your
package into their org
Licenses & Editions
Two License Types for Internal Users
User License Description Use
Salesforce CRM license
Full platform access
Custom Objects
Selling app into existing
Salesforce customers
App requires CRM
functionality
Salesforce Platform No CRM functionality
Accounts, Contacts, Documents
Custom Objects
Selling to net-new customer
and/or existing customers
App does not leverage
CRM functionality
• What objects does your app need access to?
• Do you need CRM functionality like campaign, case, or opportunity
management?
Two Licenses Types for External Users
Type License Options Use
High Volume (>100K) Authenticated Sites Marketplace/eCommerce
Millions of authenticated
users
Limited sharing needed
Low Volume (<100K) Customer Portal licenses Supports complex sharing
capabilities and standard
reporting
Less than 100,000 users
• Will your customer’s customers (external users) need access to your app?
• How many external users are expected?
• What kind of sharing is needed between external users?
• What kind of sharing is needed between external users and internal users?
What Editions do you need to support?
• Not all the same features and objects
exist as in EE/UE
• No Workflow, Record Types, Custom
Layouts, Custom Profiles
Enterprise &
Unlimited Edition
Group & Professional
Edition
• Workflow, Page Layouts, Record
Types are available
• Do you want to sell to existing Salesforce customers?
• Do you plan to support Group and Professional Edition?
Support GE/PE & EE/UE with Extensions
Support Optional Features with Dynamic Apex
Scenario: Application needs to handle situations where
features may or may not be enabled
Examples: Multi-currency, Record Types, Apex
Sharing, Territory Management
Solution: Dynamic Apex
– Code inspects and checks if certain objects, fields, or features
are enabled before executing logic
Single Run Time
One Package – Any Customer Org
Apex Detection of Major Functional Selections
Apps Execute in “Enterprise Edition Context”
Contact
Manager
Group
Edition
Professional
Edition
Enterprise
Edition
Unlimited
Edition
Access Based Granular Licensing
Separate Profile Per App
Automate ISV App Installation
Permissions Tied to a License
Multiple Licenses per Package/App
As a West Coast Sales Rep
As a CODA GL Manager
As a Job Sciences Recruiter
As a ServiceMax Field Rep
Coming
Soon!
Branding
Salesforce style or custom UI?
• Integrated feel
• Same customization
• Native reporting
• Seamless user adoption
• Custom user experience
• No predefined expectations
• Self contained app
New CustomerExisting Salesforce
Customer
Example: Standard Page Layouts
Example: Custom UI with Salesforce theme
Example: Custom UI with Custom theme
Three Fundamental UI Options
Standard Page
Layouts
Visualforce
(SFDC Style)
Visualforce
(Custom Style)
Drag-and-Drop
Configuration
Multi-step process (ie
wizards)
Create any UI
Seamless adoption
for existing
Salesforce users
Seamless adoption for
existing Salesforce users
Custom user experience
Easy end-user
customization
Limited end-user
customization of UI
Limited end-user
customization of UI
Dynamic Visualforce & Field SetsSpring ‘11
<!-- Dynamic Binding -->
<apex:repeat value="{!myFieldList}" var="f">
<apex:outputField value="{!account[f]}”/>
</apex:repeat>
Subscriber Editable
Visualforce
Automatically include
customer owned fields
ISV Branding Initiatives
Skinnable Reports/DashboardsProtect our customers from attacks by malicious app developers
Branded LoginEmpower ISVs to brand their entire end user experience from signup to logout
Distribution Implications
Managed PackagesTool of choice for commercial apps
Feature Benefit Implication
Upgrades • Seamless upgrades
• Zero downtime patching of customers
• Built in API versioning support
Many components are
locked once a package
is managed-released.
IP Protection • Obfuscated components: Apex Code,
Custom Settings, Visualforce Components
• Locked components: Visualforce Pages
Certain subscriber
customizations are
limited.
License
Management
• Control how many people access your app
• Manage trial prospects
Support Tools • Package Support Access (GA Spring ‘11)
• Grant Login Access (Pilot Spring ‘11)
• Debug Apex Code in Subscriber
Organizations (Pilot Spring ‘11)
Branding • Branded Trial Experience (Pilot Spring ’11)
Implications of Managed Packages
Limitation Example Implication
Not all components can be
packaged for distribution
Approvals,
Profiles, Data
Post-installation steps may be
required when installing your app
from the AppExchange.
Not all components are
upgradeable
Page Layouts,
Reports,
Dashboards
Developers must account for
subscriber customizations when
planning for upgrades.
Not all sensitive components
are obfuscated
Validation Rules,
Visualforce
Pages, Formulas
Use caution when adding code to
any component you cannot hide in
your app.
Developing Packages for Distribution
bitly.com/package-guide
Single Org Model Overview
Two Fundamental Architecture Models
Single Org ModelDistributed Org Model
Single Org Architecture Model
• Suited for apps that require collaboration
or sharing across external users –
“connecting buyers and sellers”
• App is more of a “service” or website than
an enterprise app
• ISV owns the org
• Users are portal users.
• All customers log into the same org
• No application distribution required
• Development in Sandbox
Single Org Architecture: Primary Concerns
Org scalability
Portal licenses do not add to the following org limits:
– Data Storage
– File Storage
– Daily API calls
Data privacy – Will your customers have issues with
you having full access to their data?
Single Org Architecture: A Good Idea?
The single org model is suitable for very specific use
cases.
Engage a salesforce.com ISV Technical Architect to
discuss design details.
– Talk to your ISV Account Exec to arrange
More?
Declarative MigrationStreamline release management for all Salesforce clouds apps
Change Management Key Initiatives
App Identity ArchitectureInfrastructure for defining Apps and managing their development lifecycle
Metadata CompletenessExpose all platform components through the Metadata API
Metadata for Team DevelopmentSimplify metadata for sharing and continuous integration via a source control system
VMforce and Sites 2
Java Managed Services
Prebuilt Sites with Customization Tools and CMS
Available for use with AppExchange Soon After GA
Sites Your Java
ServicesYour
AppExchange
App
Decision Points for Success
What are you building?
Who are you selling to?
?
Branding
Distribution Implications
Licenses & Editions
Architecture Model
Essential Resources
Developing Packages for Distribution
bitly.com/package-guide
Releasing an Application on Force.com
bitly.com/release-an-app
Q&A – Post to ChatterPlease post Questions
to Chatter in Dreamforce
App!
Architecting for Success: Designing
and Building Your Force.com
Commercial App
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
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!
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