1. A computer-readable medium having computer-executable instructions for causing a computer to perform steps comprising: enabling tools to be integrated together using an integration framework; enabling the tools participating in the integration framework to be encapsulated in a manner that hides implementation details of the tools; and enabling the tools participating in the integration framework to carry formal type definitions that describe the public behaviors offered by the tools.