ADSI, which provides a Component Object Model (COM) interface to directory objects, is built on a provider-based model. While clients use the COM interfaces exposed by ADSI, providers implement the mapping between those COM interfaces and the underlying directory system. An ADSI application that creates or modifies a user in an NDS directory can also be used to create a user in a Microsoft Exchange Server 5.5 directory.
In contrast, LDAP is a protocol, specifically an on-the-wire protocol for directory access. LDAP applications are restricted to accessing directories that expose the LDAP protocol. As mentioned previously, LDAP is just one directory-service provider among others (such as NTDS); ADSI is not limited to accessing directory data through LDAP.
Because ADSI is a set of COM objects, it can be used within Microsoft Visual Basic or JavaScript to make Web-based applications directory-enabled. It is simpler to program tasks of this type using ADSI than using the C-based LDAP API.