Должен ли я сохранять соотношение решений и функций 1:1?

StackOverflow https://stackoverflow.com/questions/374919

Вопрос

У меня сложное развертывание SharePoint с несколькими EventReceivers и Workflows.

Я также вношу изменения в схему существующих списков, добавляю новые столбцы метаданных и изменяю существующие столбцы.

Должен ли я объединить одну функцию, приемник событий или рабочий процесс в одно решение или мне следует поместить несколько функций в одно решение, поскольку все они работают вместе?

Одна из основных причин, по которой я спрашиваю, — это будущие обновления кода.Если функции разделены, то обновление одной части кода не потребует повторного развертывания всех функций решения.Стоит ли мне беспокоиться об этом, или «stsadmin -oupgradesolution» решает любые проблемы с обновлением решения со многими функциями?

Дайте мне знать, имеет ли это смысл для каких-либо гуру SharePoint.

Спасибо,
Кит

Обновлять:Глядя на сайт Дракс по ссылке, я нашел этот справочный сайт: http://msdn.microsoft.com/en-us/library/aa543659.aspx

Это утверждение, по-видимому, сильно затрудняет обновление функций решений:

Обновление решения может использоваться только для замены файлов.Вы можете добавить новые файлы в обновление решения и удалить старые версии файлов, но вы не можете установить функции или использовать обработчики событий функций для запуска кода для установки и активации функций.Следующие операции не поддерживаются при обновлении решения.

  • Удаление старых функций в новой версии решения.

  • Добавление новых функций в обновление решения.

  • Обновление или изменение сборки приемника для существующих функций в новой версии решения.

  • Добавление или изменение элементов функций (файлы element.xml) в новой версии решения.

  • Добавление или изменение свойств функций в новой версии решения.

  • Изменение идентификатора или объема старых функций в новой версии решения.

  • Удаление элементов функций (файлы element.xml) в новой версии решения.

  • Удаление свойств функций в новой версии решения.

Так...Что можно сделать с помощью обновления решения?

Это было полезно?

Решение

Я бы посоветовал против разделение всего на несколько решений.Поддержание этого может быстро стать кошмаром.Попробуйте структурировать свой проект, который должен использоваться для создания WSP, так же, как папку 12 в SharePoint.Тогда вы можете использовать строитель WSP, последняя стабильная версия содержит много полезного.

Также я не заметил никаких проблем с повторным развертыванием решений.В соответствии с этот статья, и, по моему опыту, развертывание WSP обеспечивает синхронизацию между версиями.Поэтому, если вы добавите некоторые новые функции, они появятся, а если вы удалите/измените функции, они будут соответствующим образом изменены.

ОТРЕДАКТИРОВАНО:

Поэтому я провел небольшое исследование по теме обновления MOSS.По словам MS, существует два способа обновления решений:

  1. Обновление на месте
  2. Инкрементное обновление

По сути, обновление на месте — это стандартный способ обновления.Это означает, что вы полагаетесь на встроенные функции, как описано в разделе этот (тот же документ, что был опубликован ранее) document.Проблема с этим решением заключается в том, что ему не хватает многих функций (версии, изменение идентификаторов функций и т. д.).

Инкрементное обновление (вероятно, так его называет MS) не зависит от встроенных решений.Это означает, что каждый должен реализовать это самостоятельно :(.Что еще лучше, мне не удалось найти каких-либо рекомендаций по этому подходу.Я предполагаю, что подход, который вы хотели бы использовать, является примером постепенного обновления (разделение проекта на множество независимых решений).

Также обратите внимание, что добавочное обновление официально не поддерживается MS.

Так что я даже не знаю, какой совет вам дать.Одиночный WSP более удобен в обслуживании, чем многие из них, даже если вы вносите лишь некоторые незначительные изменения, обновления работают отлично.Но если вам нужно внести какие-то более серьезные структурные изменения, начинают проявляться проблемы.

Я, вероятно, подожду и посмотрю, смогут ли люди с большим опытом в MOSS сказать что-нибудь по этой теме.

Другие советы

По сути (по причинам, которые вы упомянули), вам следует думать о решениях так же, как и о сборках .Net - атомарных единицах кода, которые можно развертывать отдельно от других.Использование updatesolution приведет к повторному развертыванию всех содержащихся функций — если ничего не изменилось, то ничего не изменится и для сайтов, использующих эту функцию.Но если это вас нервирует, подумайте о том, чтобы разделить это.

UpgradeSolution действительно удобен, если вы просто обновляете сборку, оставляя подготовленные файлы нетронутыми.

Если вы не укажете -local, то updatesolution выполнит полный сброс iisreset во всей вашей инфраструктуре.На это действительно стоит обратить внимание, когда вы планируете подходящее время для выполнения обновлений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top