|
|
|||||||||||||||||||||||||||||
|
Руководство разработчика по .NET Framework. Обзор надстройкиИсточник: msdnmicrosoft
Модель программирования .NET Framework для надстроек поддерживает разработку конвейера взаимодействия, который разрешает размещение надстроек в различных настраиваемых сценариях. Модель надстроек состоит из ряда сегментов, из которых состоит конвейер надстройки (также известный как конвейер взаимодействия), который ответственен за все взаимодействие между надстройкой и основным приложением. Конвейер - это симметричная модель взаимодействия сегментов, которые обмениваются данными между надстройкой и основным приложением. Разработка этих сегментов между основным приложением и надстройкой предоставляет требуемые уровни абстракции, которые поддерживают управление версиями и изоляцию надстройки. На следующем рисунке показан конвейер. Сборки для этих сегментов могут и не находиться в том же домене приложения. Можно загрузить надстройку в собственный домен приложения, в существующий домен приложения или даже в домен приложения основного приложения. Можно загрузить несколько надстроек в один домен приложения, что позволяет надстройкам совместно использовать ресурсы и контексты безопасности. Модель надстройки поддерживает рекомендованные, но необязательные границы между основным приложением и надстройкой, которая называется границей изоляции (или границей удаленного взаимодействия). Эта граница может быть границей домена приложения или процесса. Сегмент контракта посередине конвейера загружается как в домен приложения основного приложения, так и в домен приложения надстройки. Контракт определяет виртуальные методы, которые используются основным приложением и надстройкой для совместного обмена типами. Чтобы пройти границы изоляции, типы должны быть или контрактами, или сериализуемыми типами. Типы, которые не являются ни тем, ни другим, должны быть преобразованы в контракты сегментами адаптера в конвейере. Сегменты представления конвейера являются абстрактными базовыми классами или интерфейсами, которые предоставляют основному приложению и надстройке представление используемых ими методов, как определено в контракте. В следующих разделах описываются функциональные возможности модели надстройки. Независимое управление версиямиМодель надстроек позволяет раздельно управлять версиями основных приложений и надстроек. В результате в модели надстроек допускаются следующие сценарии:
Обнаружение и активацияМожно активировать надстройку с помощью маркера из коллекции, которая представляет обнаруженные надстройки в банке данных. Надстройки обнаруживаются посредством поиска типа, который определяет представление основного приложения, связанное с надстройкой. Можно найти определенную надстройку по типу, который определяет эту надстройку. Банк данных состоит из двух файлов кэша: хранилища конвейера и хранилища надстройки. Уровни изоляции и внешние процессы Модель надстроек поддерживает несколько уровней изоляции надстройки от своего основного приложения и других надстроек. Ниже приведены эти уровни, начиная с наименее изолированного:
Управление жизненным циклом объектаТак как модель надстроек распространяется на домены приложения и границы процессов, одной сборки мусора будет недостаточно для освобождения и удаления объектов. Модель надстроек предоставляет механизм управления жизненным циклом, в котором используются маркеры и подсчет ссылок, и который не требует дополнительного программирования. Отличия между надстройками и основными приложениями Отличия между надстройкой и основным приложением заключается в том, что основное приложение активирует надстройку. Основное приложение может быть больше надстройки, например текстовый редактор и его модули проверки орфографии, или же основное приложение может быть меньше надстройки, например клиент обмена мгновенными сообщениями, который использует проигрыватель мультимедиа. Модель надстроек поддерживает надстройки в клиентских и серверных сценариях. Примерами серверных надстроек служат надстройки, предоставляющие для почтовых серверов проверку на наличие вирусов, фильтрацию нежелательной почты и защиту протокола IP. Примерами клиентских надстроек могут быть надстройки для текстовых редакторов, специальные функциональные возможности графических программ и игр, а также проверка на наличие вирусов в локальных клиентов электронной почты. Ссылки по теме
|
|