Объектная модель расширяемости реализована в трех разных взаимодействующих сборках: EnvDTE, EnvDTE80 и EnvDTE90. EnvDTE — это исходная сборка расширяемости, поставлявшаяся вместе с Visual Studio .NET 2003. EnvDTE80 — это библиотека, которая поставлялась с Visual Studio 2005, a EnvDTE90 поставляется с Visual Studio 2008. Причина использования нескольких сборок проста: они помогают сбалансировать потребность в новых функциональных возможностях с необходимостью сохранения обратной совместимости. Например, в Visual Studio 2008 фирма Microsoft столкнулась с необходимостью принять обычное проектное решение: либо заменить (или обновить) предыдущую сборку, поставлявшуюся с Visual Studio 2005 (EnvDTE80) и получить возможную несовместимость с имеющимися макросами и надстройками — либо поставлять новую сборку, которую можно будет использовать в тех случаях, когда требуется новая функциональность (существующий код будет по-прежнему работать с предыдущей, неизмененной сборкой).
Был выбран второй вариант, и поэтому в сборке EnvDTE90 (90 означает версию 9.0) содержатся те типы и члены расширяемости, которые являются новыми разработками для Visual Studio 2008, в то время как EnvDTE80 (для Visual Studio 2005) и EnvDTE (для более ранних версий Visual Studjo) содержат функциональность начального уровня и обеспечивают обратную совместимость.
В сборке EnvDTE90 вы найдете типы, которые заменяют своих предшественников из сборки EnvDTE80. То же самое верно и для некоторых типов из сборки EnvDTE80, которые заменяют типы, реализованные в EnvDTE. В этих случаях к имени типа добавлена цифра (указывающая на пересмотренную версию). Поэтому у нас есть DTE и DTE2; Solution, Solution2 и Solution3; и т. д.
В табл. 11.1 показан список некоторых самых важных типов, реализованных в библиотеках EnvDTE. Этот список неполный; он дан только для сведения. Однако эта таблица полезна для нахождения обновленных типов в новых сборках; в следующем разделе мы увидим, как эти типы могут быть организованы в категории расширяемости Visual Studio и как они соответствуют физическим конструкциям интегрированной среды.