Development Lifecycle
A typical environment may consist of three Salesforce Orgs:
- Development Org - primarily used for writing code
- User Acceptance Testing (UAT) or Staging - primarily used for testing completed sites, processes and applications
- Production - used for user or customer-facing sites, processes and applications
OrchestraCMS consists of three layers in relation to this type of environment:
- The OrchestraCMS application
- The code for page templates, content templates, static resources and JavaScript Remoting
- The pages, content and media within OrchestraCMS
OrchestraCMS Application
The OrchestraCMS application can be installed into any of the Salesforce Orgs listed. However, if you first install OrchestraCMS into your production Org and then refresh a sandbox from production that is not a full sandbox, the OrchestraCMS application in the refreshed sandbox will not be functional unless you use the SandboxCleaner Apex class when refreshing the sandbox. There are supporting records and settings that do not get copied from production to any sandbox that is not a full sandbox so the sites, content, media and pages will not get copied to the sandbox. Instead any non full sandbox will essentially be a brand new installation of OrchestraCMS.
OrchestraCMS Code
The code created for your page templates, content templates, static resources and JavaScript Remoting are all code at the Salesforce level and can be moved between Orgs using standard Salesforce code management techniques (e.g. changes sets or code pushes using development tools). Stantive recommends:
- The use of a code repository for change management (e.g. BitBucket, ProjectLocker, etc.)
- Testing your code in the development Org using representative sample pages and content
Pages, Content and Media
Due to the template nature of most OrchestraCMS code, pages and content in OrchestraCMS are not files that can be moved between Orgs using changes sets or stored in code repositories. OrchestraCMS pages, content and media are stored as a series of Salesforce records with complex relationships. Stantive provides a tool called OrchestraCMS Shift to move pages, content and media files from one Salesforce Org or OrchestraCMS site to another. To get a copy of this tool please send a request to customer-support@stantive.com.
Recommended Approach
Stantive recommends the following approach for the development and testing of the site:
- Install and configure OrchestraCMS in a developer sandbox
- Create your template code and static resources in the developer sandbox
- Create only test pages and content in the developer sandbox, enough to test the functionality of your code
- Store your code in a code repository for change management
- Install OrchestraCMS in production
- Push the code from the repository to production
- Build out your site, pages, content and media in production
- Create a full sandbox for use as UAT
- Keep a change log of all changes made in UAT to be replicated manually in production
- When UAT is complete, go live in production