Very important point made about knowing the extended features of each
directory product. For example, Active Directory sets a hard limit on
the number of entries returned by a search. The way around this is to
use the Paged Results control extension (good feature). Problem is that
while this control is supported on AD and OpenLDAP it *is not* thus far
supported by any of the Netscape derived directory products (i.e. Sun,
Fedora/Red Hat). Another extension with uneven support is Server Side
Sort (not my favorite feature). This is available on Sun/Fedora/Red Hat
*but not* on Active Directory or OpenLDAP.
The foregoing brings up another point. Although programming to the LDAP
protocol itself (apart from various vendor extensions) is pretty uniform
the configuration of each individual directory may not necessarily be.
Maximum number of results returned, restrictions on access to the root
dsn or schema dn can differ based on the administrator's preference. So
besides knowing the different directory products and what they can do,
you should also invest some time in getting to know the admins for the
directories you'll be querying and find out how they've been configured.