Title: Out of Bounds with AJAX
1Out of Bounds with AJAX
Track Advanced AppExchange Developer
- Dave Carroll, Salesforce.com
- Jan Sabelstrom, CaSa Customer Solutions
- Henry Hai, OKERE
2Safe Harbor Statement
- Safe harbor statement under the Private
Securities Litigation Reform Act of 1995 This
presentation may contain forward-looking
statements the achievement of which involves
risks, uncertainties and assumptions. If any such
risks or uncertainties materialize or if any of
the assumptions proves incorrect, our results
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 the integration of Sendia
Corporations technology, operations,
infrastructure and personnel with ours
unexpected costs or delays incurred in
integrating Sendia with salesforce.com, which
could adversely affect our operating results and
rate of growth any unknown errors or limitations
in the Sendia technology any third party
intellectual property claims arising from the
Sendia technology customer and partner
acceptance and deployment of the AppExchange and
AppExchange Mobile platforms interruptions or
delays in our service or our Web hosting our new
business model breach of our security measures
possible fluctuations in our operating results
and rate of growth the emerging market in which
we operate our relatively limited operating
history our ability to hire, retain and motivate
our employees and manage our growth competition
our ability to continue to release and gain
customer acceptance of new and improved versions
of our CRM service unanticipated changes in our
effective tax rate fluctuations in the number of
shares outstanding the price of such shares
foreign currency exchange rates and interest
rates. - Further information on these and other factors
that could affect our financial results is
included in the reports on Forms 10-K, 10-Q and
8-K and in other filings we make with the
Securities and Exchange Commission from time to
time, including our Form 10-K for the fiscal year
ended January 31, 2006. These documents are
available on the SEC Filings section of the
Investor Information section of our website at
www.salesforce.com/investor. - 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 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, except as required by
law.
3Sample Agenda
- Welcome
- Introductions
- SControls and AJAX (client side)
- No-limits Composite SControls (server side)
- Closing
4Salesforce.com AppExchange Developer Network /
Dave Carroll
Principal Developer Program Manager AppExchange
Developer Network
dcarroll_at_salesforce.com
5On-demand App Dev Evolution
Winter 07
- 2003
- sforce launched
- Soap API version 1.0
- Custom fields on some objects
- No Custom objects
- 2004
- API version 4.0
- Custom links and SControls introduced.
- No real SControl story
- 2005
- AJAX Toolkit Beta
- Now we have a story
- AJAX becomes an official buzz-word
- AJAX Toolkit productized
- SControls take the spotlight
- DOJO support included
- SFA/SSS/CRM now using AJAX technologies
- Composite SControls
- SOQL-R - expands AJAX use cases
- And more
6Demos - not your fathers S-Controls!
- Inline SControls
- Opportunity Editor
- Animation and Graphing
- Account Revenue
- Active Detail Pages
- New ways to visualize Related Lists
- New Buttons!
- Make my day
- More Mapping fun
- Related Accounts
- Mashboards
7Yahoo User Interface Sample - Coding!!
8 HENRY HAI
HEAD OF TECHNICAL SERVICES
henry.hai_at_okere.com
8
9OKERE
- Consulting and Systems Integration Firm
- Focused on Software as a Service market
- Delivering client management solutions to
enterprise organizations - Experience in all industries, core strength
Financial Services - Please visit us at the Financial Services
Pavilion
INDUSTRY Financial Services
EMPLOYEES 4,500
GEOGRAPHY Global
USERS 585
PRODUCT(S) USED SFA, Service Support, 3
downloaded AppExchange applications
9
10Concepts in S-Controls and AJAX
- Building a re-usable AJAX List Control
- Accelerate your development
- Native salesforce look and feel
- Customized features
(Tool Tips, Hot Lists, Icons) - Available through Snippets
- Call Log S-Control
- Dynamic Content (Meta Data Driven)
- Review contact activity quickly
- Mass activity creation using AJAX
- Leverages new SOQL features
(Relationship Queries, Order By, Count, Limit)
10
11Salesforce.com AppExchange Developer Network /
Jan Sablestrom
Managing Director CaSa Customer Solutions, LLC
jan.sabelstrom_at_casallc.com
11
12About CaSa Customer Solutions
- Full-service CRM Solutions provider
- Strategy
- Process
- Technology
- Talent
- Specialized in Salesforce implementation
- First implementation 2001
- AppExchange go-to-market services
- Market Strategy
- Product Design/Development
- AppExchange Process Management (Listing,
Certification Posting) - Support Process and Automation Design
Implementation - Associates average over 15 years CRM experience
- Visit us at www.casallc.com
- Marketing
- Sales
- Service Support
13Sample Application OnPoint Direct Response
- What does it do?
- Allows users to build micro-websites to capture
information from visitors for registration,
surveys or any business communications objective! - Data model integration technology creates or
updates records in Salesforce.com for any object
or maps to flexible meta-data object - How Why is AJAX employed?
- Performance improvement
- Pre-loading of org configuration meta data
- Client-server messaging for content
save/retrieve - Use of server-side .NET classes (C or VB) to
perform heavy lifting return primitive and
complex data types, including .NET library
classes (e.g., DataTable) - Simplifies javascript DHTML code on client
- Powerful, simplified client-side object
management - Leverage AppEx WSDL class definitions from
Salesforce.com to DR server to client - No-Postback form field validation
14Direct Response in Action Demo
15Direct Response AJAX Library Used
- Ajax.NET (AjaxPro)
- First .NET AJAX library, continuous upgrades
open source community support - Substantially endorsed by Microsoft prior to
Atlas - Strengths Benefits
- Reuse your existing .NET classes
- Abstraction from XMLHttpRequest usage
- Leverage built-in JSON engine to return complex
data types to client, including .NET objects and
any serializable custom objects - Simple implementation
- Include AjaxPro library in project embeds
javascript file in ASP.NET pages provides web
service to handle asynchronous calls to server
and serves as request/response broker to your
.NET classes - Register your server-side classes as
AjaxPro-enabled and then - Call methods normally from client-side
javascript! - Download and information at http//www.schwarz-in
teractive.de/
16Direct Response Deep (Code) Dive
- Retrieve org meta-data, dynamic ltselectgt
population
17Direct Response Deep (Code) Dive
- Retrieving/Saving page content meta-data
18AJAX Best Practices Considerations (aka Back
to the Future client-server, that is)
- Define objectives/gains to be achieved
- Usability
- Is dynamic nature beneficial, necessary or just
flashy - Consider true value-add to user experience when
weighing AJAX vs. page postback - Performance
- Can you or do you need to do things behind the
scenes and is it worth it - Component re-use
- Consider complexity of app when determining
whether to build a hosted versus pure-client
solution - Data model defining variability interactive
nature of your page(s) - Single or few pages, 100 Salesforce-oriented or
do not have hosting environment for application - client-side library Salesforce AJAX Toolkit
usually the best bet - Significant composite application business logic
- server-side AJAX library, such as Ajax.NET
19AJAX Best Practices Considerations (aka Back
to the Future client-server, that is)
- Beware moving (too much) business logic to the
presentation layer - Remember client-server architecture pushed most,
if not all, biz logic to client decidedly not a
Web 2.0 concept, but AJAX is causing more of
this! - Inherently, some business logic bleeds to the
client-side javascript, but for debugging,
patching, re-use and IP protection this should be
mitigated as much as possible - AJAX DHTML tied at the hip
- and tools to debug javascript not yet as robust
- and js and CSS implemented differently in
different browsers - and with Firefox, Opera, Safari, etc the
post-Netscape world is not all IE anymore so
plan development testing time accordingly
20Other Considerations (your CIO Legal will
thank you!!!)
- If using Open Source libraries for AJAX and/or
DHTML - Understand nature of OS license (GPL vs. LGPL)
- Evaluate source of code
- Reputation
- Private individual or company? Public or private?
- Evaluate nature of code
- Available how long?
- Number of available alternatives
- Community size, feedback, etc.
21Resources
- AppExchange Developer Network (ADN)
- Comprehensive web site for AppExchange Developers
- Documentation Samples (API, AJAX)
- Developer community forum
- www.salesforce.com/developer
- AppExchange Developer Support (ADS)
- Per-incident, code-level support for developers
creating solutions on the AppExchange platform - Support for Custom apps, Custom integrations,
S-Controls - 4 hour response time for logged cases
- More info devsupport_at_salesforce.com
22Resources, contd
- Creating On-Demand Applications with AppExchange
- Salesforce.com publication
- Illustrates technologies and concepts required to
develop AppExchange apps - AppExchange Laboratory (AppLab)
- 5-day Hands-On Instructor Led Course
- Instruction for how to build, deploy, and install
native and composite AppExchange apps - For Developers, IT Managers and Power Users
- More info and to register http//www.salesforce.c
om/trainingsupport/workshops.jsp
23Session FeedbackLet us know how were doing!
Session ID 245
Save time! Use your cell phone or mobile device
to send Feedback via SMS/Text Messaging!
- Please score the session from 5 to 1
(5excellent,1needs improvement) on the
following categories - Overall rating of the session
- Quality of content
- Strength of presentation delivery
- Relevance of the session to your organization
Send a message to 26335
In the message body Session 245,
Session ID
Scores for 4 categories
For example, Session 123, 5555
SMS Voting powered by