none
При деактивации фичи веб-часть не исчезает RRS feed

  • Вопрос

  • Всем привет!

    SharePoint 2013. В VS в проекте создаю визуальную веб-часть, без создания фичи она не появится на портале. Создаю фичу, деплою, веб-часть появляется. Фичу деактивирую (в возможностях коллекции сайтов) - веб-часть по-прежнему остается доступной (как ранее добавленная на страницу, так и если вновь добавлять на страницу). Как-то не логично, ведь если фичу деактивировать, то и веб-часть должна перестать быть доступной... Или я не прав?

    3 октября 2014 г. 11:58

Ответы

  • Логично, но неверно.

    Суть в том что Активация и Деактивация фичи вовсе не должны быть взаимно-обратными операциями. Более того, в 90% случаев они не будут такими.

    Веб-часть например состоит из двух компонент:

    1) код веб-части в виде библиотеки, ставящейся в GAC

    2) .webpart файл, ставящийся в галерею веб-частей

    Код ставится при установке решения и фичами никак не управляется. Файл .webpart попадает в галерею при активации фичи и при деактивации не удаляется.

    Если фича была добавлена на страницу, то ссылка на код веб-части сохраняется даже если .webpart файл удалить.


    Business Solutions Architect, SharePoint Expert, Trainer, Speaker and Author http://gandjustas.blogspot.com/ Join Russian SharePoint Community at https://www.facebook.com/groups/sharepointrussian/

    3 октября 2014 г. 12:45

Все ответы

  • Логично, но неверно.

    Суть в том что Активация и Деактивация фичи вовсе не должны быть взаимно-обратными операциями. Более того, в 90% случаев они не будут такими.

    Веб-часть например состоит из двух компонент:

    1) код веб-части в виде библиотеки, ставящейся в GAC

    2) .webpart файл, ставящийся в галерею веб-частей

    Код ставится при установке решения и фичами никак не управляется. Файл .webpart попадает в галерею при активации фичи и при деактивации не удаляется.

    Если фича была добавлена на страницу, то ссылка на код веб-части сохраняется даже если .webpart файл удалить.


    Business Solutions Architect, SharePoint Expert, Trainer, Speaker and Author http://gandjustas.blogspot.com/ Join Russian SharePoint Community at https://www.facebook.com/groups/sharepointrussian/

    3 октября 2014 г. 12:45
  • Спасибо, теперь ясно.
    Получается такого рода фичи есть смысл делать невидимыми в Возможностях сайта, чтобы они там "глаза не мозолили", все равно деактивация фичи не приведет к её удалению с сайта (только если решение отозвать, тогда удалится полностью :)).
    3 октября 2014 г. 15:14
  • Точно.

    Вообще деактивация фич - опасная операция. Надо её или запрещать в случае возможной потери данных и\или функциональности, или скрывать фичи, чтобы никто этого не делал, или делать так, чтобы повторная активация была идемпотентна.


    Business Solutions Architect, SharePoint Expert, Trainer, Speaker and Author http://gandjustas.blogspot.com/ Join Russian SharePoint Community at https://www.facebook.com/groups/sharepointrussian/

    4 октября 2014 г. 0:17
  • Коллеги, подыму свою старую тему и продолжу вопросом: каким образом корректно удалить

    1) код веб-части в виде библиотеки, ставящейся в GAC?

    2) .webpart файл, ставящийся в галерею веб-частей?

    Т.к. при отзыве и удалении решения в ЦА веб-часть в галерее действительно остается...

    Как почистить все концы?

    25 февраля 2016 г. 8:13
  • Чтобы корректно все удалить, сначала деактивируйте фичу, потом отзовите решение.

    Если фичу не деактивировать, а сразу отозвать решение, то "хвосты" от этой фичи останутся.

    Если вы хотите удалить web-часть со всех страниц при деактивации фичи, можно попробовать написать Feature Event Receiver на событие FeatureDeactivating, воспользовавшись классом SPLimitedWebPartManager.

    Пример добавления и удаления веб части

    25 февраля 2016 г. 10:09