Электронная библиотека » Сергей Зыков » » онлайн чтение - страница 20


  • Текст добавлен: 19 января 2017, 18:00


Автор книги: Сергей Зыков


Жанр: Экономика, Бизнес-Книги


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 20 (всего у книги 29 страниц)

Шрифт:
- 100% +

Кроме того, для реализации событийной модели открывается возможность использования делегатов. NET. Делегаты – это специальный класс, аналог указателей на функции, которые стандартно существуют в. NET и применяются для обработки событий. Этот механизм возник в языке C# и поддерживается на всей платформе. NET как стандартное средство реализации событийной модели. Важно, что Smart Tag являются динамически настраиваемыми и интерактивными элементами. Они могут динамически распознавать и обрабатывать те или иные данные, которые находятся в документах, в специализированных их фрагментах на основании типа их содержимого. Таким образом, Smart Tag можно называть настраиваемыми.

И целый ряд приложений Office 2003 поддерживает эту технологию, технологию динамически настраиваемых Smart Tag. Это Word, Excel, PowerPoint, Outlook, Access и другие приложения семейства Office. При этом можно осуществлять ассоциативное связывание выбранных Smart Tag с выбранными элементами приложений Excel и Access, ячейками таблиц или полями баз данных. При таком подходе существуют также расширенные возможности Smart Tag, которые включают связывание с XML-элементами и автоматизированное выполнение действий при распознавании того или иного класса Smart Tag. То есть можно осуществлять динамическое взаимодействие пользователя, во многом автоматизированное, с определенными классами фрагментов офисных приложений в достаточно широком диапазоне. Это и текстовые редакторы, и электронные таблицы, и базы данных, и средства взаимодействия между пользователями, и почтовые клиенты, и т. д.

При осуществлении этих двух усовершенствований, динамического распознавания и обработки данных на основании типа их содержимого, и динамического связывания с определенными фрагментами, ячейками Excel или полями баз данных Access, существенно повышается эффективность технологии или концепции Smart Clients – умных клиентов в интегрированных корпоративных приложениях Microsoft Office. Например, при связывании действий Smart Tag с элементами XML или при автоматическом запуске тех или иных действий при распознавании определенных классов Smart Tag умные клиенты могут автоматически получать метаданные по мере их ввода или обновлять данные определенной части приложения или связанных приложений в реальном масштабе времени в зависимости от характера и типа информации, которая вводится в другую часть, т. е. с другой стороны, в другой элемент этих офисных приложений.

По сути, речь может идти о многофункциональных распределенных системах, которые содержат в качестве компонентов интегрированные документы, таблицы, базы данных, средства взаимодействия, в том числе по электронной почте, и в зависимости от тех или иных действий пользователя или вводимых данных автоматически обновляют содержимое в распределенных хранилищах данных. То есть осуществляют централизованное управление и коррекцию состояния этих хранилищ. Это достаточно важная возможность. При таком подходе открывается перспектива построения гетерогенных хранилищ данных с возможностью автоматического обновления. В частности, такого рода технологии могут быть основаны на применении стандарта XML и поддержке программирования на уровне схем данных. При этом разработчики имеют прямой программный доступ к XML-узлам каждого документа, для каждого элемента схемы создаются экземпляры полей и появляется возможность доступа к данным по отдельным полям, а не по элементам интерфейса. При этом XML-схемы поддерживают взаимодействие и связь с данными на основе механизма управления событиями, в том числе событиями, связанными со вставкой, редактированием, контекстным вводом или изменением контекста. На рис. 14.2 представлен шаблон дополнений к клиенту Microsoft Office Outlook 2003 с использованием средства VSTO 2005.


Рис. 14.2..Шаблон для дополнений к MS Office, Outlook 2003 в VSTO 2005


Фактически речь идет о внедрении большого количества разнообразных фрагментов офисных приложений в общий документ, в том числе таблицы Excel, и возможно оперативное онлайновое реагирование в реальном масштабе времени на действия пользователя, например коррекция или выбор той или иной ячейки в таблице. Например в ячейке с названием Seattle Home1 появляется полное описание полей извлеченных из базы данных, связанных с ипотечным кредитом для этого строения, справа – фотография этого строения, ссылки, связанные с возможностью заключения договора на ипотечный кредит, с данными о собственниках этого строения, о размере первоначального взноса, кредитной ставке и, естественно, с указанием текущей даты, финансового года и т. д. Таким образом открывается возможность построения гетерогенных приложений, интегрирующих данные из различных источников и объединяющих их на общей и привычной всем пользователям платформе Microsoft Office System. Более подробно об интеграции различного рода данных из гетерогенных источников, в том числе с разной степенью структурированности, преимущественно на основе XML-технологий, будет говориться в следующей главе, которая во многом будет посвящена СУБД, в том числе Microsoft SQL Server.

Важным условием, важной возможностью, которая обеспечивается VSTO 2005, является кэширование данных, оно необходимо для обработки данных пользователями, в данном случае речь идет о редактировании документов Word и таблиц Excel в режиме offline, в отсоединенном и автономном режимах. При этом данные из кэша, из временного хранилища данных на локальной машине пользователя, могут быть связаны с документами и отображаться в режиме выполнения приложений. Кроме того, в кэш-области памяти могут также храниться данные, не связанные непосредственно с элементами интерфейса. Данные из кэша доступны на сервере, и если говорить о модели взаимодействия, об архитектурной модели приложения, в VSTO 2005 используется так называемая асимметричная модель. Для указания полей, данные из которых должны извлекаться и храниться в кэше, разработчиками могут использоваться атрибуты кэша (cash attribute). Достаточно указать список полей, которым нужно установить этот атрибут, и кэширование полей, т. е. сохранение их содержания, будет происходить автоматически. Для доступа к кэшу из других приложений, проектов Visual Studio используется объект ServerDocument, который позволяет открывать документы, не создавая экземпляров приложения Word и Excel, т. е., по сути, на сервере не требуется наличия Office приложения.

Важными особенностями являются возможность извлечения и связи данных из кэша с документами и отображение их в режиме выполнения приложений. Что касается приложений, которые создаются на основе Outlook, на рис. 14.2 было показано такое приложение, где в платформе VSTO 2005 поддерживается клиент Microsoft Outlook 2003. При этом существует полная интеграция с объектной моделью продукта и с кодом на языках C# и Visual Basic. Фактически реализован AddIn – дополнение для VSTO 2005, т. е. появился новый шаблон проекта, наряду со стандартными шаблонами, которые существуют в Visual Studio, например для создания проекта на C#, с помощью которого можно создавать расширения для Microsoft Outlook. Интерфейс VSTO 2005 предоставляет всю необходимую инфраструктуру для создания и использования подобного рода приложений. В том числе специализированный компонент, который называется AddIn Loader, реализован в виде динамически присоединяемой библиотеки dll, т. е. фактически тоже в виде компонента, в виде сборки, и используется для загрузки расширений к Microsoft Outlook. Поддержка MS Office Outlооk в VSTO 2005 позволяет осуществлять стандартное обращение к объектной модели продукта и к модели кода с использованием основных языков платформы. NET: C# и Visual Basic, а также выполнять ряд стандартных операций, некоторые из них будут рассмотрены далее. Это создание расширенных меню, экспорт заданий и совместное использование MS Outlook и XML Expansion Pack. Последнее дает возможность интеграции с основными видами офисных приложений, документами Word и таблицами Excel и самими этими приложениями. При этом существует достаточно большое количество AddIn и удачных примеров их использования для MS Outlook.

Что касается модели безопасности, реализованной в VSTO 2005, то, поскольку речь идет о практически полном погружении новой среды и семейства офисных приложений в платформу. NET, используются все основные механизмы обеспечения безопасности, которые обсуждались ранее. И это дает возможность наиболее полной интеграции продуктов, которые разрабатываются, в платформу, в том числе с использованием механизма сборок. В связи с этим можно говорить о полной поддержке механизмов безопасности. NET Code Access Security. При этом модель безопасности не только распространяется на сборки, которые содержат код, позволяющий расширить стандартные функции традиционных документов Office, но и защищает сами эти документы. Например, перед загрузкой любого управляемого кода, допустим написанного на языке C# или Visual Basic, средства VSTO проверяют политику безопасности, в том числе локальную, чтобы установить статус доверия сборки, на которую ссылается связанный с ней документ. Необходимо при этом убедиться в том, что обеспечивается полное доверие сборке, т. е. установлен статус Full Trust для той сборки, на которую ссылается документ.

Естественно, для разработчиков, которые приняли решение интегрировать свои компоненты, свои надстройки над Office в стандартную среду Office System 2003, эта новая модель, в том числе и с точки зрения обеспечения безопасности, является весьма удобной. До выполнения кода необходимо убедиться в том, что код признан полностью доверенным. При этом на локальном компьютере каждого пользователя корпоративной системы содержится набор правил, который определяет, какого рода операции разрешены для данного кода и какого рода код может быть исполнен. При загрузке кода языковая среда CLR собирает сведения об этом коде. Основное количество сведений относится к сборке – это версия и автор сборки, цифровая подпись, в том числе зашифрованная, алгоритм шифрования, степень доверия и политика безопасности и т. д. Кроме того, необходимо собрать сведения, относящиеся к хосту, т. е. к источнику кода. После этого сведения по сборке и по источнику соотносятся с той или иной политикой безопасности.

При этом существует четыре уровня этой политики, или четыре различных среза для политики безопасности, – Machine, User, Enterprise и Host. То есть на уровне локальной машины, на уровне пользователя, на уровне предприятия в целом и на уровне источника, например того сервера, с которого эта сборка получена по Интернет каналу. Каждая из этих четырех политик может содержать несколько групп кода – от нуля до некоторого их ограниченного количества. При этом каждая группа кода на основе сведений устанавливает тот уникальный набор прав, который включает то или иное количество разрешений, т. е. операции, допустимые в данном случае, например чтение файла с диска, запись на диск, открытие файла, коррекция и т. д. В результате, используя все собранные сведения о хосте, сборке и политике, среда выполнения соотносит сборку с кодовой группой, которая соотносит ее с матрицей прав для всех политик, для каждой из четырех политик безопасности. При этом удается достаточно четко и в то же время гибко определить, во-первых, разрешается ли выполнять этот код и, во-вторых, если разрешается, то какие именно операции допустимы для этого кода и с какими объектами. Естественно, сборки, которые используются документами Word или таблицами Excel, требуют статуса «полное доверие» – Full Trust, независимо от выбранной модели развертывания. Как правило, право на исполнение выдается определенным локациям для сборок, и после этого выбранным сборкам или наборам сборок на основе строгого, т. е. полного, имени присваивается статус доверия.

Наконец, последнее – это модель развертывания, которая реализует технологию, близкую к ClickOnce, т. е. является достаточно экономичной. По сути, в основе модели, которая применяется в VSTO 2005, лежит структурное разделение на документ, на код и на сборку. Код является частью проекта Visual Studio, а сборка – единственное, что поставляется вместе с документом. При этом сборка связана с документом, а реализация привязки осуществляется различным образом: в VSTO 2003 это делалось на основе свойств документа, в более поздней версии – 2005 – используются специализированные средства, доступные при выполнении приложений. Основных моделей развертывания – три: локальная– локальная, локальная – сетевая и сетевая – сетевая (рис. 14.3).

Если речь идет о модели локальная – локальная, то доступ к сети не требуется, необходима явная установка каждым пользователем приложения на базе Office System, а если документ обновляется, требуется физическое копирование его на каждый компьютер. Все обновления требуют установки на каждом компьютере, и пользователи каждый раз работают с локальной копией документа. Если речь идет о модели развертывания локальная – сетевая, то, как правило, загрузка документа потребует доступа к сети. Тем не менее, как и в предыдущей модели, каждый пользователь работает с локальной копией документа, и обновление документа потребует физического копирования на каждый компьютер пользователя. Однако обновление можно производить из централизованного хранилища. Если речь идет о модели сетевая – сетевая, то для распределенной работы с документом пользователям требуется доступ к сети, и для загрузки документов в том числе. Документ хранится на сервере, обновление документа требует его публикации на сервере, и пользователи работают с этим документом в режиме разделения доступа.


Рис. 14.3. Модель развертывания


При этом для корректной установки полного спектра решения VSTO 2005 на машину клиента необходимо обеспечить наличие предварительных компонентов, таких как. NET Framework (поскольку на этой базе классов реализовано VSTO), а также собственной среды исполнения для VSTO, средств поддержки интерфейсов, связанных со сборками, и необходимых обновлений для корректного функционирования офисной среды. Кроме того, поскольку речь идет о распределенной работе и о работе с компонентами, необходимо предоставить пользователям соответствующие права доступа. В том числе пользователи должны получить права на выполнение кода в сборке. Это можно обеспечить путем модификации политик безопасности. NET. Но поскольку некоторые ограничения содержатся в собственно документах, возможно, потребуется модификации политики безопасности самого документа. Здесь, как известно, осуществляется достаточно гибкая настройка уровня безопасности, поэтому интегрированную настройку нужно делать достаточно аккуратно. Наконец, нужно проверить корректность пути к тому размещению сборки, который указан в манифесте, т. е. в метаданных сборки, соответствие ее реальному местоположению. В ряде случаев, например при попытке сохранения пользователем локального документа, открытого ранее на сервере, могут возникать некорректности. Таким образом, обеспечивается реализация модели развертывания.

Для того чтобы проиллюстрировать возможности работы с данными и элементами офисных приложений в рамках технологии VSTO 2005, попробуем рассмотреть пример фрагментов программы на C#, которая осуществляет настройку меню в приложении MS Excel. Нашей задачей является создание новой строки в меню и добавление в эту строку новых элементов, а затем определение конкретных действий, которые будет осуществлять система при возникновении тех или иных событий со стороны пользователя. Желательно осуществить привязку управляемого кода, т. е. кода на C#, при нажатии пользователем кнопки на панели инструментов. В MS Office панели инструментов называются панелями команд и представляют собой общее средство для всех приложений. В данном случае наблюдается пример, связанный с MS Excel. Иногда, например при построении AddIn, возможно, имеет смысл создать собственную панель команд с дополнительными кнопками. В других случаях можно просто добавить элементы управления к уже существующей панели команд или меню. При использовании инструментария VSTO 2005 можно сделать и то и другое. То есть можно как расширить существующее меню, так и создать новое.

Перед автором недавно стояла задача верстки документа в текстовом редакторе TeX для одной из научных конференций, поскольку это являлось необходимым требованием. К сожалению, с TeX автор работал очень давно и решил не вдаваться в подробности, а пойти по другому пути – взять MS Word и найти к нему расширение, которое реализует функции конвертации документа Word в текст формата TeX. Выяснилось, что такое расширение есть, что оно строится на основе. NET Framework, требует. NET Framework версии 1.0, написано на C# и работает вполне корректно. То есть оно позволяет задавать стили, делать корректным перенос формул, это высший пилотаж, это самое сложное, собственно это то, ради чего строился TeX, – создавать многоэтажные, сложные формулы, корректно переносить иллюстрации. Самое главное, что оно как раз внедряет в семейство панелей инструментов MS Word новую строку инструментов и позволяет осуществлять конвертацию посредством этой строки, а также изменяет меню – вводит новый пункт меню и может работать посредством подменю. При этом запуск посредством встроенного в MS Word сценария обеспечивает примерно десятикратное увеличение производительности по сравнению с традиционной работой без использования MS Word. То есть использование надстройки в этом случае существенно помогает.

Итак, в данном примере предлагается добавить новую строчку меню в Excel. Делается это посредством нескольких шагов, при этом каждый из них является достаточно простым. Во-первых, надо взять пространство имен, которое называется Microsoft.Office.Core, и задать ему более простой псевдоним. Для этого используется оператор Using, по сути, слово Office, которое здесь пишется, является Alias – псевдонимом более длинного Microsoft.Office.Core, и впоследствии можно писать не Microsoft.Office.Core, а просто Office, как здесь и делается. После этого в разделе объявлений класса Office.Core.Behind указываются соответствующие элементы, по сути – элементы управления в новом пространстве имен. Office. CommanBar – это, собственно, панель команд. Создаем панель меню, создаем элементы панели меню, это MainMenuBar в главном меню, MenuBarItem – элемент панели меню, MenuItem – элемент меню. Таким образом, используются три переменные уровня модуля. Одна из них, первая, дает ссылку на главную строку меню Excel, другая – на элемент строки меню MenuBarItem, и еще одна – MenuItem – нужна для того пункта меню, для которого и будет обрабатываться событие щелчка по этому пункту. Далее, как только описаны все три уровня, остается написать две функции: первая создает пункт строки меню, вторая – пункт меню, т. е. MenuBarItem и MenuItem. Рассмотрим пример: код первой процедуры, которая называется InitMenuBarItems (рис. 14.4).

Далее создаем новый пункт меню. При этом можно использовать специализированный, заранее определенный обработчик событий ThisWorkBookOpen, т. е., как только открывается книга Excel, автоматически выполняется это событие и фактически в нашем классе Office.Core.Behind создается код, который будет выполняться по этому действию (рис. 14.5).

Здесь командная кнопка создается посредством метода Cre-ateButton, и дальше используется стандартный интерфейс реализации исключений. Наконец можно привязать к скрипту события ThisWorkBookOpen – открытие текущей книги, создание тех элементов управления, о которых было сказано. Создается строка меню, пункт меню и обрабатывается событие – клик по объекту This.MenuItem, снова стандартным образом. При этом используются стандартные процедуры обработки событий, которые существуют в MS Office, точнее в MS Excel. И нужно добавить код, который создает отчет при нажатии кнопки OK или ничего не выполняет при нажатии кнопки Cancel в том окне, которое появляется при выборе пользователем созданного ранее пункта меню. Это происходит при помощи элемента WindowsForm, т. е. создается меню диалога, и можно пользоваться стандартными методами, стандартными результатами DialogResult.OK, DialogResult.Cancel. При этом происходит работа со стандартной формой, которую имеет тип FRMReport и называется FRM, и со стандартным методом ShowDialog, который как раз и генерирует стандартный диалог, стандартное окно с кнопками OK и Cancel.


Рис. 14.4. Создание строки меню


Рис. 14.5. Создание пункта меню и командной кнопки


Завершая разговор о компонентных и офисных приложениях в среде MS.NET, следует сказать о том, что в целом они наследуют важные особенности компонентной модели COM. Но являются более специфичными и позволяют осуществлять построение гибких, настраиваемых, интероперабельных приложений, в том числе с компонентами на разных языках. Что очень важно, осуществляется возможность создания сопровождаемых гибко настраиваемых повторно и многократно используемых приложений на основе различных компонентов, которые могут быть изменены по запросу пользователя и приводить к тиражируемым, коробочным решениям и к решениям, которые не требуют существенных изменений.

Реализация принципа компонентно-ориентированного программирования осуществлена Microsoft и расширена с платформы. NET на надплатформу, которая называется MS Office System, тоже является своего рода платформой и позволяет строить на компонентой основе надстройки – AddIns для приложений уже офисного класса, которые используются в корпорациях для совместной обработки гетерогенных данных. Важно, что все механизмы. NET Framework и CLR внедрены в семейство приложений MS Office, таких как Word – текстовый процессор, Excel – электронные таблицы, Access – базы данных и Outlook – клиент электронной почты. Нужно сказать, что при этом обеспечивается повышенный уровень безопасности за счет интеграции с внутренними политиками безопасности. NET и Windows, реализации механизма сборок, электронной подписи, идентификации автора и версии сборки, за счет манифеста и т. д.

И последнее, что хотелось бы отметить. Сборка, которая для. NET является синонимом компонента, находится структурно посередине между понятием класса языка программирования и понятием модуля корпоративной системы, например модуля учета, планирования и управления основных средств в корпоративной системе Oracle Applications или Oracle Business Suit. Такой подход позволяет создавать интероперабельные, надеждные, масштабируемые и легко изменяемые приложения, и в отличие от конкурирующих подходов, таких как, например, Enterprise Java Beans, обеспечивает языковую интероперабельность, т. е. очень важную возможность реализации компонентов приложения на наиболее подходящих языках программирования.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации