Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
Большее количество ограничений связано с использованием COM-расширений. Здесь тоже можно применять управляемый код, но если нужна более тесная интеграция и ориентация на управляемый код и более высокую безопасность, имеет смысл использовать VSTO, которая работает с естественной средой приложения. NET Framework. Система VSTO позволяет создавать приложения офисного класса, которые не только основаны на управляемом коде, погружены в среду. NET, используют. NET Framework, но и могут выполняться изнутри документа. То есть похожи на макросы, которые встраиваются в документ. Но если говорить, например, о VBfA-приложениях, по сути макросах, то отличие кода, который был создан для VSTO, состоит в том, что этот код разработан для. NET, т. е. представляет собой сборку. Сборка хранится отдельно от документа, и можно, не затрагивая документ, произвести коррекцию сборки, ее функциональной направленности и ее обновление. Кроме того, в отличие от VBfA, предоставляющего собой интерпретируемый код, который нужно каждый раз выполнять при запуске документа, интерпретировать заново, сборка является уже откомпилированным кодом, ее выполнение происходит гораздо оперативнее и способствует повышению производительности, что крайне важно для корпоративных приложений.
Естественно, код, созданный с помощью VSTO, обладает всеми преимуществами приложений на платформе. NET, если говорить о VBfA коде. Конечно, макросы являются небезопасными: существует достаточно большое количество вирусов, которые распространяются вместе с этими макросами и достаточно быстро расходятся по корпорациям внутри соответствующих документов. Если говорить о сборках, то каждая сборка идентифицируется цифровой подписью, автором сборки, версией сборки и политикой безопасности, которая дает возможность ограничения тех документов, с которыми она будет использоваться, тех операций, которые она может выполнять. Это будет более подробно обсуждено дальше. Важно отметить возможность применения всех технологий, которые поддерживаются платформой. NET, и всем инструментарием, который реализован на этой платформе.
Что можно отметить нового в среде VSTO 2005 по сравнению с предыдущими версиями. По сути, речь идет о более тесном взаимодействии с. NET и более тесной интеграции офисных приложений, а также взаимодействии со сторонними приложениями на основе COM-модели. Итак, основными нововведениями можно считать: поддержку компонентов интерфейса, который создан на основе средств. NET, поддержку расширенных компонентов Office, панели действия, Action Pane и Smart Tag, возможность создания Smart Tag. Рассмотрим более подробно функции, которые появились в VSTO 2005. Очевидно, что кроме локальной работы и поддержки всех возможностей основных продуктов Microsoft Word и Excel возникает возможность создания панелей задач с использованием средств. NET, полной поддержкой веб-служб посредством. NET Framework, возможностью offline работы с документами, кэширования и использования кэш-сервера. Появилась возможность использовать все сервисные функции Visual Studio.NET, в том числе отладчик, при построении приложений на базе Office, использовать расширение Visual Studio для создания приложений на основе Office и расширить средства обеспечения безопасности с использованием стандартных политик безопасности, криптографической защиты информации, а также достаточно широкий спектр возможностей, связанных с интеграцией приложений на основе XML-технологии.
Наконец, последнее нововведение, которое следует отметить и которое будет проиллюстрировано далее более подробно, – это модель облегченного и ускоренного разворачивания приложения (в идеале – одним щелчком), которая называется ClickOnce. Такая возможность осуществима благодаря использованию погружения в среду CLR и теснейшей интеграции VSTO c библиотекой классов. NET Framework. Что касается объектов Word и Excel, объектов основных офисных приложений, то с ними взаимодействует большинство офисных пользователей и, наверное, все без исключения корпоративные, если они пользуются Microsoft Office. Расширения связаны с целым спектром компонентов, которые доступны через стандартную панель компонентов: можно наблюдать и изменять их свойства в Properties Explorer, т. е. стандартном средстве Visual Studio, можно менять свойства, исследовать и настраивать свойства офисных компонентов, прежде всего приложений Word и Excel. При этом возможны программный доступ через именованные поля, а также связь с данными, т. е. извлечение живых данных, коррекция и обновление данных, в том числе и расположенных на удаленных серверах, поддержка событийной модели.
Ранее, в главе о Windows Forms, было показано, каким образом осуществляется привязка скрипта или фрагмента кода к событию, определенному действию пользователя, например щелчку левой кнопкой мыши по полю формы. Практически таким же образом можно взаимодействовать с офисными приложениями Word и Excel стандартными средствами Visual Studio. Расширенные компоненты приложений либо представляют собой расширения функциональности, либо позволяют добавить функциональность, которая отсутствует на уровне традиционной объектной модели. Если в Excel объектная модель доступна через пространство имен, InterOp (Microsoft.Office.InterOp.Excel), то здесь поддерживается дополнительно целый ряд объектов, например стандартной объектной моделью Excel поддерживаются только события на уровне листа и книги, и в ней невозможна привязка данных таким образом, как это реализовано в Windows Forms, например, когда рассматривался навигатор, который позволяет извлекать данные. Несмотря на то что в управляемом коде некоторые объекты, например Name-ListObject недоступны напрямую, использование расширенных компонентов позволяет обратиться к этим объектам. Таким образом, в VSTO 2005 реализован ряд расширенных компонентов для Excel, таких как NameRange, XML markering, Chart, ListObject и др. Кроме того, применение расширенных компонентов в отношении текстового процессора Word открывает доступ к ранее недоступным в стандартной модели компонентам. Это связано с извлечением данных, с использованием формата XML, а также манипуляцией с закладками (bookmark). При этом поддерживаются события, которые связаны с обработкой закладок и отсутствуют в стандартной объектной модели. Компоненты XML-note и XML-notes реализуют работу с XML-документами стандартной панели задач и поддерживают реализацию целого ряда событий, включая проверку корректности документа.
Поговорим подробнее о панели задач. Собственно все дальнейшее обсуждение будет посвящено настройке панели задач, ее управлению программным путем. В итоге будет рассмотрена программа или фрагмент программы на C#, который осуществляет настройку этой панели задач, дополнение туда новых командных кнопок и средств обработки событий. Сначала рассмотрим, что такое Action Pane, или панель задач, чем панель задач в VSTO 2003 отличается от более поздней версии 2005 и какого рода возможности поддерживаются. По сути, речь идет о настройке функционирования документов и гибкого конфигурирования возможностей работы с ними. Впервые это было реализовано в продуктах Microsoft Word и Excel 2003 в версии Professional и с точки зрения VSTO было добавлено в версию 2005. Речь идет о программных объектах Word и Excel и возможности настройки их атрибутов и действий с ними посредством механизмов Visual Studio. Если говорить об Excel, то существует класс Exсel.Workbook – рабочая книга Excel, который доступен из VSTO 2005. Точно так же можно настраивать свойства документа Word (Word.Document). При этом та программная модель, которая поддерживается панелью задач, во многом похожа на модель Windows Forms, рассмотренную ранее. То есть можно создавать объекты стандартных классов, настраивать их свойства и устанавливать реакцию на определенные события, которые инициируются пользователем или системой. При этом, так же как и в Windows Forms, программная модель является достаточно простой, и не требуется реализация сложных интерфейсов для инициализации или создания панели задач, например такого интерфейса, как Smart Document, который описывает интеллектуальные документы.