In computing and networking, a software that supports different logical actions through the same user or application interface is transparent. For example, the Network File System allows users to access files stored on a remote machine as if they were stored locally, through the same file/folder hierarchy.
Similarly, some file systems allow transparent compression and decompression of data, enabling users to store more files on a medium without any special knowledge; other file systems encrypt files transparently. In software engineering, it is also considered good practice to develop or use abstraction layers for database access, so that the same application will work with different databases; here, the abstraction layer allows other parts of the program to access the database transparently. In object-oriented programming, transparency is facilitated through the use of interfaces or header files with different implementations.