A Lotus Notes development environment is easy to establish. One approach is to have three separate databasesone for development, one for quality assurance, and one for productionand to utilize the master design templates to propagate or move database changes from one staging area to the next (see Figure 20.7).
The first database provides a development area where code and design elements can be changed without affecting the production database or any system tests in the quality assurance (or sandbox) database. All database design changes originate in the development database and migrate in stages to the next database. Only those people who actually design and implement changes to the development database should have access to it.
The second database, sometimes referred to as a "Sandbox" or "Quality" database, provides an intermediate point where changes can be function-tested, system-tested, and reviewed by the customer prior to deployment into the production environment. The data stored in this database is typically a full copy or subset of documents from the production database.
As a general rule of thumb, no design changes should be made to this database. If changes are applied here, say for alpha-test purposes, be sure that they are also integrated back into the development database so that the changes are not lost when the next release is moved into the sandbox database. The Quality (or sandbox) database is also the ideal location to verify data imports and to make sure an agent functions properly, especially if it affects a substantial number of documents in the database.
The Access Control List for this database should be identical to the production database. This ensures that the test infrastructure matches the production environment. If the ACL is different between environments, there is the risk that the database will function differently when implemented in production. Although the ACL settings should match, you can still limit access by managing the users assigned to a particular group.
The third database contains real production data and is currently "in use" by the Lotus Notes user community. Because this database contains live data, no design changes should ever be made to this database using the Domino Designer client. Data imports and new agents should only be performed after testing the changes in the sandbox using the current template design.
Add "DEV", "SANDBOX", "QUALITY", or "PRODUCTION" to the database title to distinguish between the various staging database environments (see Figure 20.8).
A development environment can be established at any timefor both new and existing Lotus Notes database applications. Complete the following steps to create a three-tiered development environment.
Create the development database. There are two approaches to this step. The first approach is to make a new database from scratch. If no database is currently in use, develop the database as you normally would, set the ACL permissions, and continue to step 2.
Use caution when making a "new copy" of any Lotus Notes database. Be sure you understand the design of the database and pay particular attention to the scheduled agents. As a general practice, you should disable scheduled agents in the new copy of the database until each can be reviewed. For example, the database may have an agent that archives data from the current database to a secondary database. If the newly created database is a "sandbox" for testing, then you probably do not want the scheduled agent to automatically copy test data into the archive database. This could cause test data and production data to merge in the archive database.
Set the template properties for the development database. With the development database established, next set the master template properties for this database. Select the File > Database > Properties menu options and switch to tab 4. Select Database file is a master template and specify a template name such as MyDatabaseDevTemplate.
Create the Quality database. The Quality database is created by making a copy of the development database. Repeat the process outlined in step 1 to make a new database copy. After the copy has been created, changes from the development environment will be migrated into the Quality database using the master template property. Also remember to set the ACL permissions for this database.
Set the template properties for the Quality database. Select the File > Database > Properties menu options and switch to tab 4. Select Database file is a master template and specify a template name such as MyDatabaseQualityTemplate.
Create the Production database. Unless the database is already established, make a new copy of the Quality database to be used as the production database.
Consider setting the access level for the production database to No Access for all users to ensure that the user community does not start using the application until it has been officially implemented or sanctioned. This will prevent users from accessing the database until it is completely ready.
The Development, Quality, and Production database environments are now set up. To review, a separate database has been established for each stage. The master template name has also been set for the Development and Quality databases. The next section will discuss how design changes are migrated between databases. In this case, changes will migrate from Development to Quality to be tested. After the changes have been validated, the design changes will then migrate from Quality to Production.
An Introduction to the Lotus Domino Tool Suite
Getting Started with Designer
Navigating the Domino Designer Workspace
Domino Design Elements
An Introduction to Formula Language
An Introduction to LotusScript
Fundamentals of a Notes Application
Reference Library Applications
Design Enhancements Using LotusScript
Design Enhancements Using Formula Language
Miscellaneous Enhancements and Tips for Domino Databases
Application Deployment and Maintenance
Appendix A. Online Project Files and Sample Applications
Appendix B. IBM® Lotus® Notes® and Domino®Whats Next?
Lotus Notes Developers Toolbox: Tips for Rapid and Successful Deployment
Authors: Mark Elliott