Packaging It Up Latest Enhancements for App Distribution
Please reboot your computer after upgrading...
Packaging It Up: Latest Enhancements for App Distribution Jim Yu, Salesforce.com Track: New AppExchange Developer
Safe Harbor Statement <ul><li>“ 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. </li></ul><ul><li>The risks and uncertainties referred to above include - but are not limited to - risks associated with the integration of Sendia Corporation’s 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. </li></ul><ul><li>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 . </li></ul><ul><li>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. </li></ul>
Agenda <ul><li>Overview </li></ul><ul><li>Demonstration </li></ul><ul><li>Behind the Feature </li></ul><ul><li>Q & A </li></ul>
Business Value With the new packaging enhancements and upgrading capabilities for AppExchange apps in Winter '07... Developers now have access to the most robust development platform in the industry for rapidly sharing and deploying on-demand applications for their customers. Customers will have an easy and seamless way to install and upgrade on-demand applications.
Key Capabilities Upgradeable Packages – Rapidly deploy new functionality in your app to your customer base and protect subscribers from making changes that break S-Controls and integrations Unique Namespaces – Ensure subscribers can successfully install any package from the AppExchange, even if they have another component with the same name License Management Integration – As a framework for future license management functionality, know who's installed your app and what version they're using Additional Packagable Components – Package custom fields on standard objects, custom buttons, validation rules, and record types on custom objects. Package Extensions – Empower your partners to extend the capabilities of your product through package extensions. 1 2 3 4 1 3 5
Introducing Upgrading... <ul><li>How do I get new versions of my applications on the business web? </li></ul>(2) Upgrade (3) Deploy (1) Click
Demonstration Overview Jack is the CTO of Recruit On-Demand, and is developing a new on-demand recruiting product for the AppExchange. He wants the ability to seamlessly roll out new versions to new and existing subscribers of his product. Sue is an VP of HR at Universal Containers. Universal Containers has a very successful and rapidly growing business in selling containers to manufacturers and shipping companies across the world. Because of their fast growth, Sue would like to deploy an on-demand Recruiting solution that will support the recruiting needs of Universal Containers. John is the VP of Marketing at Recruit On-Demand, and he wants the ability to easily reach subscribers who have installed his recruiting application on the AppExchange. Jack Application Developer Sue HR Manager John Marketing
Demonstration: The Big Picture Enhance Release Develop Test
Demonstration: Developing the app Jack Application Developer Signs up for a free Developer Edition organization on the AppExchange Developer Network. 1 Develops, tests, and packages an on-demand recruiting application. 3 Configures his Developer Edition organization for a managed package. 2
Demonstration: Testing the app Jack Application Developer Uploads a Beta version of his recruiting product to get feedback from customers like Universal Container. 4 Installs Recruit On-Demand Version 1.0 Beta to Universal Container’s Sandbox Edition. 6 Sue HR Manager Tests the recruiting application with her recruiting team. 7 Contacts Sue at Universal Container to engage her in the beta testing of Recruit On-Demand. 5 John Marketing
Demonstration: Enhance the app Through beta testing, Sue discovers what she really wants is a dashboard to track the hiring activities across the company. 7 Sue HR Manager Enhances and fixes Recruit On-Demand based on the feedback from Sue and other beta participants. 8 Jack Application Developer
Demonstration: Release the app Jack Application Developer Releases Version 1.0 by uploading Recruit On-Demand to the AppExchange. 9 Deploys Recruit On-Demand from the AppExchange to Universal Container’s Unlimited Edition production org. 11 Sue HR Manager Launches Recruit On-Demand and using the LMA notifies beta participants on the availability of Recruit On-Demand Version 1.0. 10 John Marketing
How It Works <ul><li>Managed (Upgradeable) Package </li></ul><ul><ul><li>A package, created in a Developer Edition salesforce.com organization, containing one or more components to which future enhancements ( non-destructive changes only) can be made, uploaded to the AppExchange Directory, and distributed to subscribers who have installed a previous version. </li></ul></ul>
How It Works Developer Uploads Released Version What happened when Jack uploaded a released version of Recruit On-Demand?
How It Works But what about during the Beta Testing? Manage Component Legend Managed – Released A managed component that has been uploaded in a non-beta packageversion. Only applicable to developer orgs. Managed – Installed A managed component that has been installed in a subscriber org. Only applicable to subscriber orgs. Managed – Beta A managed component that has been added to a managed package since the last uploaded, released package version or has been uploaded in a beta package version. Only applicable to developer orgs.
Implementation Best Practices <ul><li>N/a </li></ul><ul><li>Separate development org from LMO </li></ul><ul><li>Keep it short (makes integration coding easier) </li></ul><ul><li>Namespace prefix + app identifier (Example: prtnr_recruit, drmfctryApp1) </li></ul><ul><li>Use managed packages when you plan on developing new versions of your app, want to manage licenses or ensure no namespace conflicts. </li></ul>Best Practices Additional Packageable Components License Management Integration Unique Namespaces Upgradeable Packages Feature
Other Considerations <ul><li>N/a </li></ul>Additional Packageable Components <ul><li>Once chosen, cannot be changed </li></ul><ul><li>Once chosen, cannot be changed </li></ul><ul><li>1 managed package per developer org ONLY </li></ul><ul><li>Once released version is uploaded, component editability is restricted </li></ul><ul><li>No managed package uploads until ALL developer settings have been specified </li></ul><ul><li>Installers cannot downgrade their managed package. </li></ul>Limitations License Management Integration Unique Namespaces Upgradeable Packages Feature
Session Feedback Let us know how we’re doing! <ul><li>Please score the session from 5 to 1 (5=excellent,1=needs improvement) on the following categories: </li></ul><ul><ul><li>Overall rating of the session </li></ul></ul><ul><ul><li>Quality of content </li></ul></ul><ul><ul><li>Strength of presentation delivery </li></ul></ul><ul><ul><li>Relevance of the session to your organization </li></ul></ul>Save time! Use your cell phone or mobile device to send Feedback via SMS/Text Messaging! Send a message to 26335 In the message body: Session 235, #### For example, “ Session 123, 5555 ” Session ID: 235 Session ID # Scores for 4 categories SMS Voting powered by: