Зависимости активации и область
Дата последнего изменения: 3 марта 2010 г.
Применимо к: SharePoint Foundation 2010
Зависимость активации компонентов выражает требование, связанное со взаимоотношениями между двумя компонентами. Можно выразить зависимости активации либо для компонентов одной и той же области действия, либо для компонентов с разными областями действия. Зависимость активации, охватывающая несколько областей, имеет место в тех случаях, когда компонент в конкретной области зависит от другого компонента из другой области. Примером может служить зависимость компонента уровня веб-сайта от компонента уровня семейства сайтов.
Зависимости активации обычно используются в следующих двух целях:
Группировка компонентов Если активирован один компонент, можно активировать и другие. Например, если активирован стандартный компонент «Совместная работа группы» (в %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\TeamCollab), он использует зависимости активации для активации других компонентов. Будучи активирован, этот компонент активирует зависимые компоненты, и при этом становятся доступными указанные шаблоны списков. При деактивации компонента деактивируются и зависимые компоненты (если от них не зависят другие компоненты), делая шаблоны списков недоступными.
Гарантии для ресурсов компонентов Для хранения ресурсов может потребоваться компонент уровня семейства сайтов (например, тип контента), а для хранения реализации — компонент уровня веб-сайта. Зависимость активации гарантирует активацию обоих компонентов.
Правила зависимости активации
Зависимости активации должны соответствовать определенным правилам для того, чтобы, к примеру, не допускать циклических зависимостей, цепочек зависимостей, ограничивающих производительность, и так далее.
Правила одинаковой области
Если компонент зависит от другого компонента из этой же области, и второй компонент не активирован при активации первого, система Microsoft SharePoint Foundation активирует второй компонент.
Если компонент деактивирован, система SharePoint Foundation деактивирует скрытый зависимый компонент из той же области, когда деактивируется последний видимый компонент, имеющей зависимость активации от этого скрытого компонента.
Правила перекрестных областей
Зависимости активации для перекрестных областей не поддерживаются, если компонент, от которого зависит другой компонент, относится к области с более строгими ограничениями. Например, компонент области семейства сайтов не может иметь зависимости активации от компонентова области веб-сайта.
Зависимости активации компонента не поддерживаются для нескольких областей, если компонент, от которого зависят другие компоненты, невидим. Иными словами, компонент области веб-сайта не может зависеть от компонента области семейства веб-сайтов, если последний невидим в пользовательском интерфейсе.
Если компонент, от которого зависят другие компоненты, не активирован, активация зависимого компонента невозможна. Например, если компонент уровня веб-сайта зависит от неактивированного компонента уровня семейства сайтов, активировать компонент уровня веб-сайта (или определение сайта, содержащее такой компонент) будет невозможно.
Общие правила
Зависимости могут работать вглубь только на один уровень. Иными словами, цепочки зависимостей не поддерживаются. Система SharePoint Foundation не поддерживает более одного уровня зависимости активации, если последний компонент видим — то есть, если видимый компонент зависит от второго видимого компонента, который в свою очередь зависит от третьего видимого компонента. Однако система SharePoint Foundation поддерживает более одного уровня зависимостей активации, если видимый компонент зависит от второго видимого компонента, в свою очередь зависящего от скрытого компонента.
Возможна зависимость активации от скрытого или видимого компонента, но скрытые компоненты не могут иметь зависимостей активации. Атрибут Hidden элемента Feature определяет, отображается ли компонент в пользовательском интерфейсе.
Если от данного компонента зависит несколько компонентов, нельзя допускать ситуацию, когда один из зависимых компонентов утрачивает связь с главным компонентом. Например, предположим, что один видимый компонент уровня семейства сайтов («Компонент B») зависит от скрытого компонента того же уровня с именем «Компонент A», и третий видимый компонент уровня веб-сайта («Компонент C») также зависит от компонента A. При деактивации компонента B деактивируется и компонент A, в результате чего компонент C остается без обязательных зависимостей.