Microsoft Office 2010 для разработчиков

8 июнь, 2010 - 15:25Вячеслав Колдовский

Хотя в ближайшем будущем доминированию Microsoft Office как стандарта «де факто» среди офисных пакетов, похоже, ничто не угрожает, в отдаленной перспективе инициативы конкурентов, активно пытающихся прорваться на этот рынок, могут иметь успех. Один из надежных и не раз проверенных Microsoft на практике методов защиты состоит в том, чтобы превратить продукт в платформу, значительно укрепив свои позиции за счет сторонних разработчиков, создающих на ней собственные решения. Неслучайно так много внимания уделяется развитию соответствующих инструментальных средств.

Приложения из пакета Microsoft Office получили распространение среди различных категорий пользователей, но особо прочно они «окопались» в корпоративном сегменте, причем большую роль в этом сыграли не только богатая функциональность «из коробки», но и возможность ее расширения или даже построения на ее основе законченных высокоуровневых решений. Продолжительное время стандартным механизмом для этого был скриптовый Visual Basic for Applications (VBA), выросший из ориентированного только на Word языка WordBasic. Однако современным требованиям эта среда разработки, уходящая корнями к весьма архаичным технологиям программирования, удовлетворяет слабо, поэтому спустя десятилетие (VBA был представлен в 1993 г.) в качестве опционального компонента Visual Studio 2003 был выпущен совершенно новый инструмент – Visual Studio Tools for Office (VSTO), нашедший достаточно широкое применение начиная с версии 2005 (ko.com.ua/23618). Среда VSTO основана на .NET Framework и предоставляет те же преимущества, что и базовая платформа: выбор из нескольких языков, управляемую среду исполнения, повышенную безопасность, обширные библиотеки классов.

Microsoft Office 2010 для разработчиков
Backstage представляет набор унифицированных функциональных зон для размещения команд, ориентированных на работу со всем документом

Выход Microsoft Office 2010 практически совпал с выпуском Visual Studio 2010, которая позиционируется компанией как универсальная IDE, ориентированная в том числе на офисные решения. Соответственно, состоялся и очередной этап обновления VSTO, впрочем, эволюционный. Среди самых интересных изменений следует назвать поддержку четвертой, наиболее актуальной версии .NET Framework, развитые возможности настройки пользовательского интерфейса приложений, усовершенствованную поддержку серверных расширений Office Services. Наибольшее число обновлений, направленных на создание корпоративных портальных решений, получил SharePoint 2010, чему мы недавно посвящали отдельную публикацию (ko.com.ua/47923). Отметим также, что с учетом позиционирования пакета название VSTO несколько умаляет его роль и может сбить с толку непосвященных, поэтому в маркетинговых материалах все чаще используется термин Microsoft Office Solutions, более точно отражающий место этих средств разработки в экосистеме решений Microsoft.

64-битовые версии

С выходом версии 2010 приложения Microsoft Office впервые получили нативную поддержку 64-битовой платформы. С позиций конечного пользователя отличия будут заметны разве что при операциях с файлами большого объема (сама Microsoft в качестве примера приводит пользователей Excel, которые действительно могут столкнуться с огромными таблицами), однако для создателей всевозможных расширений это нововведение выливается в необходимость адаптировать исходный код, в частности, COM-надстройки для 32-битовых версий Microsoft Office работать без изменений в новой среде не смогут. В лучшем положении оказались те, кто заблаговременно перешел на VSTO, так как их продукты (при условии использования стандартных типов данных) одинаково пригодны для исполнения и в 32-, и в 64-битовых средах.

Обратим внимание, что, несмотря на смещение приоритетов с VBA на VSTO, Microsoft продолжает развивать и первую технологию. Разработчики, применяющие VBA, могут быть уверены в том, что с выходом новой версии офисного пакета их решения останутся востребованными. Однако в долгосрочной перспективе следует все же присматриваться к VSTO, инвестиции в изучение нового инструментального средства с лихвой окупятся за счет широких возможностей и удобств. Тем более что полностью отказываться от VBA совершенно не обязательно: проекты на VSTO могут взаимодействовать со скриптовым кодом, что позволяет плавно перевести сложные решения из одной среды разработки в другую.

Новшества VSTO 2010

Поддержка .NET Framework 4 – пожалуй, наиболее значимое нововведение VSTO 2010. В этой версии библиотека классов сама по себе была значительно усовершенствована, что позволило облегчить разработку, и, помимо прочего, по сравнению с 3.5 она в несколько раз сократилась в объеме, что может заметно сказаться на производительности в системах с ограниченными ресурсами. Но для Office-разработчиков поддержка .NET Framework 4 позволяет устранить одну неприятную особенность VSTO, существующую с первой версии: необходимость контролировать наличие и если нужно – устанавливать интерфейсные сборки взаимодействия (Office Primary Interop Assemblies, PIA). Теперь же при использовании .NET Framework 4 информация о типах внедряется прямо в сборку решения на этапе компиляции, и потребность в дополнительных библиотеках отпадает.

Еще один немаловажный нюанс: прежние версии VSTO задействовали механизм управления расширениями .NET Framework под названием Managed Add-in Framework (MAF), который упрощал создание самих компонентов, но привносил чрезмерно много дополнительных составляющих во взаимодействие их с приложениями Microsoft Office, что приводило к снижению производительности. В VSTO 2010 при использовании в качестве целевой платформы .NET Framework 4.0 механизм MAF уже не применяется, а число упомянутых составляющих сократилось, что особенно выгодно скажется на решениях, интенсивно обращающихся к функциям офисных приложений и обрабатывающих большие объемы данных.

Несмотря на очевидные преимущества новой платформы, важно, что поддержка предыдущей .NET Framework 3.5 в VSTO 2010 также сохранилась, а ее реализация дополнена доступом к новой функциональности Microsoft Office 2010. Таким образом, проекты, по той или иной причине разрабатываемые для .NET Framework 3.5, cмогут легко охватить и новую версию офисного пакета.

Пользовательский интерфейс

Microsoft Office 2010 для разработчиков
В Outlook 2010 появилась возможность создавать дополнительные вкладки в панели навигации, позволяющие гибко подстраивать интерфейс приложения под конкретные потребности

Одна из характерных особенностей Microsoft Office 2010, присущая всем приложениям пакета, – новое представление Backstage. В нем сведены воедино команды, которые относятся сразу ко всему документу, а не к отдельным его составляющим. Соответственно, обеспечена возможность программирования не только ленты (Ribbon), но и Backstage. Представление разделено на зоны, типичную функциональность которых разработчики должны учитывать для унификации интерфейса. Левая верхняя часть содержит список «быстрых» команд, обычно не требующих указания дополнительных параметров, ниже следуют вкладки, открывающие панель, в большинстве случаев состоящую из левой и правой частей. Функциональностью последних разработчик может управлять в полной мере, в том числе создавать свои или скрывать стандартные. Например, в корпоративной среде может потребоваться ограничить пользователей в возможностях печати или сохранения копий важных документов. В целом, модели программирования Backstage и ленты схожи, в частности, доступны те же элементы управления и механизм определения разметки с помощью XML.

Поскольку сама лента по сравнению с версией 2007 была несколько переработана (в основном изменения коснулись особенностей ее отображения), сторонние разработчики также получили дополнительные возможности для ее программирования. К примеру, можно программно активировать нужную вкладку ленты с командами, применимыми к выделенному объекту внутри приложения. Далее, поскольку новая лента интеллектуально подстраивается под размеры экрана, разработчики также могут управлять этим процессом для собственных конструкций.

Определенные усовершенствования коснулись и работы с контекстными меню. Их внутренняя архитектура в Microsoft Office 2010 значительно изменена, сами меню стали нагляднее и удобнее, а разработчики теперь могут управлять их содержимым в момент открытия, динамически наполнять актуальными инструментами.

Таким образом, Microsoft Office 2010 предоставляет практически неограниченные возможности по управлению пользовательским интерфейсом, что особенно актуально при создании на базе приложений пакета готовых специализированных решений для корпоративной среды, которая обеспечивает наиболее лояльных клиентов Microsoft.

Office 2010 Services

Хотя необходимость в этом была очевидна, в прошлом приложения Microsoft Office были не слишком приспособлены для работы в скрытом режиме, т. е. для выполнения фоновых задач, не требующих интерактивного участия пользователя. В принципе, такая возможность существовала, однако на практике создание и сопровождение подобных решений были сильно затруднены. С анонсом Office Services наконец-то Microsoft пошла навстречу разработчикам.

Данные компоненты, будучи установленными в серверном окружении, предоставляют средства для решения обычных задач автоматизации: предварительной подготовки документов, преобразования их в различные форматы, массового вывода на печать и пр. Часть работ (но далеко не все) может быть выполнена с помощью Open XML SDK, речь о котором пойдет ниже. Типичный сценарий использования Office Services (которые состоят из отдельных служб, соответствующих «родительским» приложениям: Access Services, Word Services, Excel Services, InfoPath Services, Visio Services) предполагает работу в первую очередь в окружении SharePoint Server. В качестве примера задачи, решаемой таким образом, можно привести автоматическую подготовку документов для посетителя сайта: выполнение нужных расчетов в Excel Services, перенос результата в шаблон документа Microsoft Word и его сохранение в PDF для последующих просмотра и печати без изменения форматирования. Важно, что шаблоны документов Word и Excel, задействованные в выполнении подобных операций, могут быть подготовлены или модифицированы сотрудниками, даже не знакомыми с программированием: таким образом снижается стоимость разработки и сопровождения решений.

В отдельных приложениях

Учитывая, что программа Outlook заняла ключевое место в системах коммуникаций и обеспечения документооборота многих компаний, было удивительно слышать многолетние оправдания представителей Microsoft по поводу того, что модификация ее интерфейса под конкретные нужды (например, создание собственных вкладок в панели навигации) противоречит неким принципам, призванным унифицировать опыт пользователей. В новой версии создатели наконец-то вняли просьбам сторонних разработчиков и обеспечили штатные средства настройки интерфейса Outlook, в том числе и создания новых вкладок в панели навигации. Последние нужны, если в них предполагается отображать данные, которые не входят ни в одну из стандартных категорий (почта, контакты, задачи и т. д.). Для этого объектная модель (в целом существенно переработанная и расширенная) дополнена объектом SolutionsModule – он позволяет создать собственные вкладки, отображающие произвольное содержимое внутри окна программы или корректировать под конкретные потребности имеющиеся представления. Кроме того, Outlook 2010 получила стандартные для всех приложений пакета ленту и Backstage, что вкупе с SolutionsModule открывает двери для достаточно гибкой настройки интерфейса.

Microsoft Office 2010 для разработчиков
Новый построитель макросов в Access 2010 призван облегчить жизнь VBA-разработчикам

Табличный процессор Excel в новой версии не получил особых улучшений, ориентированных на разработчиков, если не принимать во внимание стандартные для всех приложений возможности настройки. Самые заметные усовершенствования коснулись компонента Excel Services и нацелены на более широкое его применение в многопользовательской среде. Тем не менее разработчикам могут быть интересны новые возможности условного форматирования, сводных диаграмм, фильтрации данных.

Хорошим известием также окажется снятие ограничения в 2 ГБ на размер файла данных в новой 64-битовой версии Excel.

СУБД Access 2010, похоже, утрачивает свой настольный статус благодаря возможности создания и публикации баз данных для Веба на основе Access Services (в первую очередь, конечно, для сайтов под управлением SharePoint). Еще одна достойная упоминания особенность Access 2010, нацеленная на VBA-разработчиков, – это новый построитель макросов, который позволяет в полностью визуальном режиме конструировать достаточно сложные последовательности команд.

Open XML SDK

Незадолго до выхода Microsoft Office 2010 была выпущена вторая версия Open XML SDK, обеспечивающего работу с файлами Microsoft Office (формат которых имеет статус открытого стандарта ECMA 376 и ISO/IEC 29500) полностью программными средствами. Ориентированным на офисные приложения Microsoft разработчикам использование Open XML SDK, построенного на .NET Framework, сулит весьма интересные перспективы для генерации, считывания и модификации документов без необходимости развертывания самого пакета (а чаще – из-за его невозможности, особенно в серверном окружении). По сравнению с первой версией основной упор сделан на расширенные средства манипулирования контентом с поддержкой строгой типизации при доступе к объектам внутри файлов.

Хотя Open XML SDK не заменит самих офисных приложений, а также не может быть использован без дополнительного кода для решения определенных задач (скажем, конвертации документов в другие форматы) по «политическим» мотивам, его вклад в развитие Microsoft Office как платформы для сторонних решений, что называется, трудно переоценить. В частности, одна из наиболее интересных функций Open XML SDK 2.0 состоит в поддержке языка LINQ (ko.com.ua/36977), который может быть использован, например, для запроса данных из листов книги Microsoft Excel.

Помимо самого SDK, на сайте CodePlex.com развивается проект Open XML Power Tools, объединяющий множество скриптов и дополнительных инструментов для создания программных решений, взаимодействующих с офисными документами.

Заключение

Итак, наряду с обновлением ориентированной на конечного пользователя функциональности офисного пакета, в Microsoft Office 2010 произошло и немало значимых изменений для разработчиков. Среди наиболее важных из них: поддержка .NET Framework 4 в VSTO 2010, серверные компоненты для автоматической обработки данных, дополнительные средства настройки и расширения пользовательского интерфейса всех приложений, развитые возможности построения решений на основе SharePoint 2010 (за информацией о них мы отправляем читателя к специальной публикации, размещенной на сайте ko.com.ua), а также синхронный выпуск Open XML SDK 2.0, открывающего новые возможности манипулирования содержимым документов программным путем. В целом, эволюционные сами по себе, улучшения в Microsoft Office 2010 демонстрируют неизменное стремление Microsoft позиционировать пакет офисных приложений не только в виде готового решения для конечных пользователей, но и в качестве платформы, интересной разработчикам. И надо признать, нет никаких причин сомневаться, что у компании это получится.

Сайт автора: koldovsky.com