Вопрос

Это старая битва между ITPRO и разработчиком. ITPros ненавидят их из -за проблем с обновлением, разработчики, такие как свобода, которую они дают, без необходимости убирать дома с помощью сшивания функций.

Каковы ваши предпочтения, и когда вы используете что?

Когда вы придерживаетесь OOTB SDT, как вы добавляете свои настройки?

Лично я склонен использовать пользовательский SDT только при выполнении WCM (для получения идентификатора) или в редких случаях, когда необходимо очистить коллекцию интрасети -субъекта для чрезмерных артефактов.

В последнее время, когда я Customie OOTB STD я предпочитаю поставщиков пользовательских предварительных поставщиков (как на корневых сайтах, так и на подзаготах) в сочетании с приемниками функций для максимальной гибкости. В моем последнем проекте мы даже сделали общий CPP, который можно было бы настроить с использованием XML, где вы могли бы настроить страницы по умолчанию, какие шаблоны суб сайтов должны быть видны, должны быть замечены, экстремальные списки и элементы списка программно, какие веб -части предоставления, разные конфигурации Как и аудит, конфигурация навигации, определения ролей и т. Д.

Дайте мне знать ваш любимый способ сделать это, и почему вы предпочитаете это делать так.

Отмеченное сообщество вики

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

Решение 6

Итак, в SharePoint 2010 есть новый игрок на поле: пользовательские веб -шаблоны.

Сейчас я использую их почти исключительно, вместо пользовательских определений сайта.

Веб -шаблоны предлагают несколько преимуществ по сравнению с пользовательскими определениями сайта:

Плюс

  • Манифесты могут быть обновлены (это не поддерживается на сайте DEFS!)
  • может работать в песочнице и, следовательно, использоваться для SharePoint Online (сайт defs не может!)
  • Поддержите как фермерские, так и сборы сайтов для гранулированного развертывания
  • Лучшее обновление обещания, так как сайт, по -видимому, был создан с определениями сайта OOB

Минусы

  • Все еще немного багги! Атрибуты локали и субвета в настоящее время не работают
  • Функция сшивания не работает (так как нет идентификатора для его закрепления), это не проблема, поскольку вы можете редактировать onet.xml поддерживаемым образом ...
  • Нет способа определить, какой веб -шаблон использовался для предоставления сайта (установите идентификатор самостоятельно на веб -свойствах)
  • не поддерживается для вариаций сайта

Для SharePoint 2010 пользовательские веб -шаблоны должны быть вашим выбором по умолчанию! Существуют ситуации, когда вы все равно используете пользовательские определения сайта, но список короткий.

Чтобы узнать больше о пользовательских веб -шаблонах, прочитайте эти две статьи Vesa Juvonen:
Определения сайта против веб -шаблонов
SharePoint 2010 и веб -шаблоны

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

Идеальное определение сайта пусто. Встроенные шаблоны бесполезны по чему-либо, кроме самых простых решений. Даже если клиент хочет именно то, что находится в шаблоне сайта команды, я все равно перестраиваю это как решение WSP и не используя код.

Код является Путь идти, потому что он дает сочетание того, чего хотят администраторы и что нужны разработчикам. Последнее важнее, так как хороший разработчик облегчит работу администратора.

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

Думаю, я на самом деле напишу пост в блоге ...

.b

Я все программный. В Teched Australia 2009 я представил на эту тему, все еще ожидая, когда станет вживую. Рекомендую посмотреть его, посмотреть мой блог для объявления.

Просто чтобы добавить к этому обсуждению, SharePointDevwiki имеет две соответствующие страницы:CAML против программного кода Шаблоны сайтов против определений сайта против функций

В настоящее время я предпочитаю работать с «минимальным сайтом def», просто чтобы получить идентификатор, а затем использовать приемники, чтобы добавить крутые вещи. В основном это связано с тем, что я думаю, что я выполняю работу быстрее и проще обновить решение (и поддержка).

Я написал произведение об этом пару дней назад Избегание функций SharePoint на основе XML - используйте путь API.

При публикации сайтов (WCM), я думаю, вам действительно нужно использовать сайт def, если для того, чтобы получить идентификатор, но в противном случае мне нравится оставлять его пустым и использовать функции для всего остального, обычно приемники кодирования, чтобы сделать объем работы.

В течение лета, однако, я начинал убеждать некоторые очень умные дизайнеры SharePoint в том, что могут быть некоторые преимущества, чтобы позволить им взломать Onet и написать много декларативного CAML- предпосылка здесь заключается в том, что, хотя мне легче написать Получители функций, в контексте того, что дизайнер/эксперт по брендингу занимался публикацией сайтов, им на самом деле может быть легче изменять вещи, чем писать C# код. Я не знаю, на самом деле еще не проверил эту теорию.

То, что я не покупаю, так это то, что вы не должны использовать Def Site Def, потому что это будет улучшаться. Хотя это могло быть правдой в прошлом, были всевозможные вещи, которые приносят сильнее обновления, которые не сталкиваются почти с их справедливой доли.

Мне нравится использовать как определения сайта, так и функции для доставки контента. Я просто должен взвесить то, что нужно для работы. Если я знаю, что требования к Интернету будут содержаться в нескольких списках, я бы занялся одной функцией и использовал сайт OTB def. Если сеть полностью настроена или нуждается в многих функциях, я бы начал с сайта DEF, который тесно соответствует моей базовой функциональности, а затем напишу некоторые функции, чтобы доставить все остальное. Определение сайта должно использоваться для доставки вещей, которые функции труднее делать, например, на разные мастер -страницы, тема, default.aspx и т. Д. Для ITPRO лучше использовать определение моего сайта для создания этой сети, а затем выяснить, какие функции активировать и в каком порядке. Теперь с функциями CAML и приемник код является уравновешенным актом. Иногда вы можете сделать это в CAML, но быстрее писать в коде или наоборот. Я считаю, что декларативному CAML легче захватить для управления источником и настройки сервера, но не все можно сделать в CAML, например, подключения к веб -части и приспосабливание к некоторым веб -частям. Всякий раз, когда у вас есть возможность определить свой собственный удостоверение личности, сделайте это - это значительно облегчает поддержку и расширение.

Лично я предпочитаю идти с шаблоном Lean сайта, а затем используя сшивание функций. Я обычно создаю одну родительскую функцию, которая имеет активацию Depedentes на нескольких детских функциях. Затем я скрепляю эту родительскую функцию на любое определение сайта. Причина, по которой мне это нравится, заключается в том, что я могу деактивировать и реактивировать эту функцию для обновления существующего сайта. Это также позволяет мне создать довольно много, используя CAML и минимальное кодирование.

Я все время использую SpwebProvisioningProvider, чтобы контролировать, какие функции активировать, когда и в том порядке, который я хочу. Я думаю, что я думаю о разработке и отладке и перечисляет предварительную службу, а затем использует onet.xaml и CAML.

Одна из причин, по которой я использую шаблоны сайтов (и я повторяю подробности, чтобы сохранить их чистые и ссылки), заключается в том, что мне нравится опыт конечного пользователя выбора моего пользовательского шаблона со страницы Create Sites. Добавление новых файлов WebTEMP легко, копировать пустой шаблон сайта и модифицировать его легко. Это позволяет проекту (если ему нужен пользовательский шаблон) встать и быстро идти, вы получите первую автоматизацию WSP быстро и проработайте весь жизненный цикл Dev, прежде чем потребовать кода C#.

Если проект требует, чтобы мне нужно изменить сайт OOB, например MySite, я бы всегда шел по маршруту сшивания функции.

Я разработал свою собственную маленькую структуру (слишком большой слово) для достижения полной обновления моих решений. Это было серьезной проблемой для большинства моих клиентов.

Короче говоря: я кормлю свою структуру по активации функции (DE) с некоторыми очень упрощенными определениями CAML, и я рассказал в коде большую часть общепринятого материала (добавление/обновление списков, приемники, типы контента, столбцы сайтов и т. Д.). Изменяя мои определения и, реактивация функции, я могу легко сделать необходимые обновления для уже развернутого решения (это было одной из основных целей). Я использую дополнительный код в приемнике, чтобы сделать все другие «вещи», которые не покрываются моей структурой.

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

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