Поделиться через


Зависимости активации и область

Дата последнего изменения: 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 остается без обязательных зависимостей.