Visual Studio Tools for Microsoft Office System
В октябре прошлого года мы обсуждали возможности, связанные с созданием приложений для Microsoft Office 2003. Сейчас мы более подробно рассмотрим возможности, предоставляемые разработчикам решений на базе Microsoft Office новым продуктом — Visual Studio Tools for the Microsoft Office System.
Назначение продукта
озможности создания приложений на базе Microsoft Office весьма разнообразны. Как минимум три предыдущие версии этого пакета позволяли встраивать исполняемый код, созданный с помощью Visual Basic for Applications, в документы Office, создавать для приложений Office так называемые контроллеры автоматизации (клиентские приложения, управляющие приложениями Office) с помощью любых средств разработки, поддерживающих технологию Component Object Model, создавать модули расширения (называемые также надстройками) в виде COM-библиотек. Для приложений Microsoft Office XP, помимо указанных возможностей, можно было создавать распознаватели и обработчики смарт-тэгов. Иными словами, спектр средств создания решений на базе Office и ранее был достаточно широк.
Шаблоны проектов Visual Studio Tools for the Microsoft Office System
Отметим, однако, что появление .NET Framework и средств создания управляемого кода вызвало естественное желание разработчиков создавать решения, использующие как возможности самого Office, так и возможности, предоставляемые приложениями с управляемым кодом, среди которых, в частности, средства обеспечения безопасности Common Language Runtime, сборка мусора и иные преимущества, неоднократно описанные в нашем журнале.
VBA-код можно запускать в самом приложении Office. Он выполняется внутри приложения Office, обычно хранится в документе и при этом компилируется в p-код. Надстройки, представляющие собой скомпилированные библиотеки, можно создавать на любом языке программирования, поддерживающем создание COM-серверов. В принципе, можно разрабатывать COM-надстройки и с применением управляемого кода. Помимо этого при создании приложений с помощью Visual Studio .NET можно было применять специальные сборки Office XP Primary Interop Assemblies, позволявшие управлять приложениями Office XP с помощью COM-интерфейсов Microsoft Office из внешних по отношению к ним .NET-приложений, являвшихся, по существу, .NET-аналогами контроллеров автоматизации.
Тем не менее перечисленные возможности могут оказаться недостаточными для решения ряда задач, например для создания управляемого кода, обрабатывающего события Office. Подобные (и другие) задачи решаются с помощью Visual Studio Tools for the Microsoft Office System. Этот продукт представляет собой дополнение к Visual Studio .NET 2003, позволяющее встраивать в документы Word 2003 и Excel 2003 управляемый код на языках Visual Basic .NET и Visual C# .NET, созданный с помощью Microsoft Visual Studio .NET 2003.
Состав продукта
состав Visual Studio Tools for the Microsoft Office System входят Visual Basic .NET Standard Edition (если его возможностей достаточно для решения задач, стоящих перед потенциальным покупателем продукта, можно не приобретать сам пакет Visual Studio), MSDN Library for Microsoft Visual Studio .NET 2003, Microsoft SQL Server Developer Edition (версия Microsoft SQL Server, предназначенная для разработки и отладки приложений для этой СУБД), а также Microsoft Office Access Developer Extensions (этот продукт позволяет поставлять приложения, созданные с помощью Microsoft Office Access, пользователям, не имеющим этого продукта).
Свойства проекта сборки, используемой в документе Microsoft Office Word
Отметим, однако, что при необходимости создания решений для Microsoft Office System с помощью языков программирования, отличных от Visual Basic .NET, таких как Visual C++, Visual C#, Visual J++, требуется приобретение Visual Studio .NET 2003.
Применение
осле установки Visual Studio Tools for the Microsoft Office System разработчику становятся доступны новые шаблоны проектов — Excel Workbook, Word Document, Word Template.
Для создания приложений с помощью этих шаблонов достаточно выбрать нужный и ответить на вопросы мастера создания приложений, связанные с местоположением проекта, документа, в котором будет использоваться создаваемый код, и настроек безопасности доступа к создаваемой сборке.
Мастер Microsoft Office Project Wizard
После этого, как обычно, можно создавать и отлаживать код сборки (соответствующее приложение Microsoft Office будет запущено в процессе отладки кода).
Visual Studio .NET добавляет в документ, указанный при создании проекта, свойства, определяющие то, какую именно сборку следует загрузить.
Отметим, что для обращения к управляемому коду в Word 2003 и Excel 2003 встроен загрузчик Common Language Runtime.
Иными словами, все это выглядит не сложнее, чем создание VBA-кода.
Преимущества
isual Studio Tools for the Microsoft Office System позволяет создавать расширения Office, основанные на управляемом коде и выполняемые изнутри самих документов. Однако, в отличие от VBA-приложений, подобный код хранится в сборке, расположенной отдельно от документа, что позволяет при необходимости легко осуществлять ее обновление. Отметим, что созданный подобным способом код, в отличие от VBA-кода, является скомпилированным, и это во многих случаях положительно сказывается на производительности приложений. Код, созданный с помощью Visual Studio .NET Tools for Office, обладает всеми преимуществами, предоставляемыми платформой Microsoft .NET, такими как поддерживаемые данной платформой средства обеспечения безопасности (в отличие от VBA-кода, сборки, созданные с помощью Visual Studio Tools for the Microsoft Office System, не будут выполняться, если администратор явно не укажет, что данной сборке или каталогу можно полностью доверять), а также возможностью применения при разработке всех поддерживаемых данной платформой технологий. И наконец, при создании подобного кода можно пользоваться всеми инструментами, предоставляемыми Visual Studio .NET.
Создание кода сборки, используемой в документе Microsoft Office Word
В заключение отметим, что Visual Studio Tools for the Microsoft Office System вполне нормально сосуществуют одновременно с Visual Basic for Applications — VBA-код и .NET-код могут использоваться в одном и том же документе. Это позволяет создателям решений на основе Office применять одновременно обе указанные технологии, выбирая при этом наиболее подходящую для решения той или иной задачи.