Итак, пара вопросов, касающихся типов контента:
Прежде всего, типы контента бывают двух видов: типы контента сайта и типы контента списка. Типы контента сайта - это «шаблоны», которые находятся в галерее. Когда тип контента сайта используется в списке, тип контента создается как тип контента списка в данном списке.
Во-вторых, ваши типы контента могут создаваться и изменяться несколькими способами, что будет определять, в каком из трех режимов ваши данные присутствуют в базе данных.
Если вы создали тип контента с помощью графического интерфейса пользователя или с помощью пользовательского кода с помощью API, то и типы контента вашего сайта, и типы контента вашего списка находятся в состоянии «только для базы данных» в базе данных. Это означает, что он ищет в базе данных определения типа контента.
Если вы создали тип контента как функцию в CAML , ваш site тип контента будет скрыт (или не настроен, как мы должны называть его в v3) в база данных. В основном это означает, что база данных в функции XML в 12-улье ищет столбцы сайта, которые составляют тип контента. Так что это должно означать, что вы можете обновить функцию, и у вас будут новые столбцы сайта, доступные в типе содержимого обновления, верно?
К сожалению, нет: помните, что у нас также были списки типов контента? Облом здесь заключается в том, что эти типы содержимого списка создаются с использованием кода, поэтому они находятся в состоянии «только для базы данных». Это означает, что ваши изменения будут видны только в типах контента вашего сайта, но не в существующих списках, использующих этот тип контента!
Существует несколько подходов к решению этой проблемы, решение зависит от ваших потребностей и изменений, которые вы делаете (удаление полей, добавление полей, изменение полей).
Например, вы часто хотите сохранить существующие метаданные элемента, даже если тип содержимого меняется со временем. Если вы проталкиваете изменения в типе содержимого списка с помощью кода, вы потеряете данные, хранящиеся в измененных / удаленных полях. Решением этой проблемы является добавление совершенно нового типа контента на основе старого, но с измененными полями. Вы бы добавили новый тип контента (с помощью кода или с использованием функционального XML) и использовали приемник функций или аналогичный для распространения нового типа контента во всех списках, в которых использовался старый тип контента, и впоследствии помечали старый тип контента как скрытый. Это позволило бы сохранить старые метаданные, но не добавлять новые элементы, используя другие, чем новые метаданные.
Подход, упомянутый в другом ответе на этот вопрос, предпочтительнее, если у вас есть прямой доступ к производственной среде и если ваш план управления клиентами позволяет это. Однако, как и в случае с другими артефактами в SharePoint, рекомендуется развертывать типы контента структурированным образом. Добавление новых типов контента неструктурированным образом может повлиять на релевантность поиска (управляемые свойства) и также повлиять на общую таксономию сайта (повторное использование столбцов сайта и т. Д.), Поэтому даже если эти изменения можно добавить непосредственно в производственная площадка, я бы не рекомендовал ее!
Это подводит меня к последнему подходу, который я бы рекомендовал, по крайней мере для будущих типов контента: создавайте свои типы контента программно с самого начала, используя приемник функций! Таким образом, вы всегда будете знать истинное состояние ваших типов контента (только для базы данных), и у вас может быть структурированный подход для управления изменениями в будущем! Вы можете найти несколько способов сделать это, прибегая к помощи «создания« типов контента »программно SharePoint»
Для полноты: я упомянул три режима. Последний режим, в котором может быть выбран тип вашего контента - «UnGhosted». Это означает, что ваш тип контента был создан с использованием функции XML, но он был отключен от исходного источника XML в улье 12.
У моего друга Сёрена Нильсена есть несколько полезных советов по типам контента
яn Аудит иерархии типов контента . Некоторые из проблем, описанных выше, можно кратко упомянуть в статье MSDN Обновление типов контента .
У Гэри Лапойнта также есть расширение STSADM, которое решает некоторые проблемы с типами контента, см. Распространение изменений типов контента .
Извините за напыщенную речь, но предмет сложный и требует тщательного объяснения, чтобы избежать каких-либо заблуждений.