Something that might contain entries like this:
1. Where Applications Save Data
Many applications need to save data between invocations of the application.
Some examples are:
- User Preferences.
- Documents or other work product from the application (web pages, spreadsheet, reports, images, etc.)
- Cache files.
- Other long-lived data (bookeeping data, emails, audit trails, etc.)
1.1. Forces at Work
Some of the forces at work in determing where an application should save data include:
- Access ability: the application needs write and read access.
- Upgradeability: some data must survive a software upgrade.
- Multiple users: some applications are used by many users.
- Privacy and security: Some data must be protected from unauthorized access.
The types of data an application saves are:
- Temporary vs. Long-Lived
- User-associated vs. Application-associated
- Internal use by the application vs. Suitable for distribution outside the application environment.
- 1.2. General Principles
- Save Long-Lived data where it will survive an upgrade.
- Save Temporary data where it is easily garbage-collected.
- Save per-user data in a place belonging to the user.
- Save data for distribution in a place the user is explicitly informed about.
- Use encryption to help secure privacy.
Technorati Tags: software development