Visual Studio Tools for Office ( VSTO ) — это набор инструментов разработки, доступных в виде надстройки Visual Studio (шаблонов проектов) и среды выполнения , которая позволяет Microsoft Office 2003 и более поздним версиям приложений Office размещать среду выполнения Common Language Runtime (CLR) .NET Framework для предоставления их функциональности через .NET.
Это позволяет писать расширения для приложений Office на языках, совместимых с CLI , а также использовать функциональные возможности и конструкции пользовательского интерфейса из приложений Office в приложениях .NET. [1] Расширения для Office до Office 2003 позволяли создавать только надстройки COM с использованием Visual Basic или Visual C++ , а также предлагалась редакция «Developer», которая позволяла разработчикам VBA создавать надстройки COM.
VSTO заменяет редакции Office 2000 и Office XP для разработчиков в разработке Office. Редакции Office для разработчиков были прекращены после Office XP, а VSTO доступен только для Office 2003 и более поздних версий. Среда выполнения VSTO, хотя и является частью инструментов разработки VSTO, также может быть загружена отдельно при необходимости. Разработка надстроек COM по-прежнему возможна для Office 2000 и всех более поздних версий с использованием шаблона Shared Add-in в любой версии Microsoft Visual Studio .
Надстройки VSTO (типы проектов и элементы управления) также разрабатываются с использованием Visual Studio. Для Visual Studio .NET 2003 и Visual Studio 2005 он был доступен только как отдельное издание с поддержкой языков .NET, ограниченной Visual Basic.NET и C#. Он также был включен как часть Visual Studio Team System 2005.
Позже Visual Studio Tools for Office 2005 Second Edition (VSTO 2005 SE) был выпущен как бесплатная надстройка для Visual Studio Professional и выше, которая включает поддержку Office 2007 и 2003. Однако для Visual Studio Professional Edition он устанавливает только надстройки уровня приложения; он не добавляет настройки уровня документа или другие функции (панель действий, элементы управления хостом, визуальный конструктор документов и т. д.), доступные в полной версии редакций VSTO или Team System. [2] [3]
Текущая версия — Visual Studio Tools для Office 2012 (VSTO 4.5), которая совместима с Office 2016, Office 2013, Office 2010 и Office 2007.
Как и VBA, код, написанный для VSTO, выполняется отдельной виртуальной машиной (CLR), которая размещается внутри приложений Microsoft Office. Однако, в отличие от VBA, где код хранится в самом файле документа , программы, написанные с помощью VSTO, хранятся в отдельных сборках CLI , которые связаны с документами посредством пользовательских свойств. [4]
Если свойства присутствуют, Microsoft Office размещает CLR и загружает сборку, указанную в свойстве, в отдельный домен приложений, названный по имени документа. [5] Приложения VSTO подчиняются ограничениям безопасности доступа к коду .NET Framework , в дополнение к модели разрешений на основе цифровой подписи , которая управляет макросами VBA. [6]
Разработка VSTO обычно выполняется с использованием Visual Studio, используемой профессиональными программистами. Приложение Office (пере)запускается для каждого сеанса отладки. VBA обычно разрабатывается из приложения Office и не требует специальных инструментов. VBA также имеет макрорекордер, который может генерировать код VBA из действий пользователя, что полезно для непрофессиональных программистов.
Расширения или надстройки Office могут быть разработаны с использованием технологий VSTO и JavaScript API. VSTO — это технология Microsoft .NET, а надстройки, использующие технологию JavaScript API, используют JavaScript, HTML и CSS.
Надстройки JavaScript API легко переносимы на такие платформы, как iOS, мобильные телефоны, планшеты и Windows. Полный процесс и цикл лицензирования просты и поддерживаются в надстройках. Интерактивная визуализация возможна в надстройках JavaScript API с использованием Charts, ClipArt и Maps.
Разработка надстроек JavaScript API — сравнительно новая технология, представленная в Office 2016. Доступно и поддерживается ограниченное количество API и функций.
VSTO имеет полный доступ ко всем объектным моделям Office. Возможно выполнение всех операций на клиенте Office. Функции, требующие доступа к файловым системам локального компьютера и другим приложениям, осуществимы и просты в VSTO. C# или любой другой язык программирования CLI можно использовать для создания новых надстроек Office.
Последняя версия VSTO по состоянию на 2018 год — «Office Tools for Visual Studio» — доступна во всех версиях Microsoft Visual Studio 2017.
Среды выполнения VSTO 2003, 2005, 3.0 и 2010 устанавливаются в параллельном режиме (SxS). Среда выполнения VSTO 2005 SE заменяет более раннюю среду выполнения VSTO 2005. Среда выполнения VSTO 2010 устанавливается параллельно с VSTO 3.0, однако приложения Office 2007 также могут использовать среду выполнения VSTO 2010. Все старые решения VSTO будут продолжать работать в новых версиях Office, пока установлена среда выполнения, для которой они были разработаны.
Решения VSTO, разработанные для новых версий Office, не будут работать в старых версиях Office, поскольку в них отсутствуют необходимые основные сборки взаимодействия (PIA) [7] Приложения Office 2010 всегда будут использовать среду выполнения VSTO 2010. Поддержка времени разработки осуществляется следующим образом:
Код, разработанный с помощью различных редакций VSTO, будет работать только с определенными выпусками и редакциями Microsoft Office 2003 и связанными с ним продуктами. В частности, решения VSTO, разработанные в редакциях до VSTO 2005 SE, не будут работать ни с одной редакцией Office 2003, кроме Professional. Решения VSTO, разработанные с помощью VSTO 2005 SE, будут работать с Office 2003 Standard (только надстройки уровня приложения) и Professional. Решения VSTO 2005 SE будут работать со всеми редакциями Office 2007.