Те, кто имел дело с дизайном мастер страниц (.master) в SharePoint 2010, наверняка замечали, что в разметке встречаются такие тэги:
<SharePoint:UIVersionedContent UIVersion="4" runat="server" id="someID">
<ContentTemplate>
Какой-то контент…
</ContentTemplate>
</SharePoint:UIVersionedContent>
Здесь интересен, как элемент управления UIVersionedContent, так и свойство UIVersion.
Зачем вообще нужны эти элементы управления? Устанавливая значение 3 или 4, Вы можете переключать интерфейс SharePoint 2007/2010. Само свойство находится у веб сайта – SPWeb.UIVersion. Когда администраторы мигрируют SharePoint 2007 на 2010, то у них есть возможность предоставить «пользователям» сайтов выбрать старый или новый дизайн. Это называется Visual Upgrade.
.NET Reflector показывает, как устроен элемент управления (некоторые части кода удалены для удобства):
public sealed class UIVersionedContent : SPControl, INamingContainer
{
// Fields
private ITemplate m_template;
private string m_verUI = "3";
// Methods
[SharePointPermission(SecurityAction.Demand, ObjectModel = true)]
protected override void CreateChildControls()
{
this.Controls.Clear();
SPWeb contextWeb = SPControl.GetContextWeb(this.Context);
if (((this.m_template != null) && (contextWeb != null)) && SPUtility.UIVersionsAreCompatible(contextWeb.UIVersion, this.UIVersion))
{
this.m_template.InstantiateIn(this);
}
}
public string UIVersion
{
get
{
return this.m_verUI;
}
set
{
this.m_verUI = value;
}
}
}
Как видно, при добавлении дочерних элементов управления, сравнивается свойство UIVersion у веб сайта и элемента управления, контент добавляется только в случае их совпадения.
TechNet: Manage visual upgrade (SharePoint Server 2010) - http://technet.microsoft.com/en-us/library/ff607998.aspx
MSDN: Understanding Visual Upgrade in SharePoint 2010 - http://msdn.microsoft.com/en-us/library/gg454789.aspx
Скорее всего, если у Вас был сделан свой дизайн мастер страниц, то все это Вам не пригодится. В SharePoint 2010 для совместимости с 2007 версией оставлена страница default.master, в которой все выглядит по-старому. Есть также страница v4.master, которая используется на большинстве сайтов – это новый дизайн. Так вот там для различных элементов есть две версии 3 и 4.
Что делать, если Вы хотите сделать новый дизайн для сайта на основе SharePoint 2010?
Во-первых, удалите из разметки все блоки, содержащие UIVersion="3" – это никому не нужный мусор, оставшийся в качестве примера и для обратной совместимости.
Во-вторых, удалите из разметки все блоки, содержащие UIVersion="4" – теперь в них нет смысла, оставив вместо них содержимое ContentTemplate.
Удачи с дизайном!
Codeplex: Starter Master Pages for SharePoint 2010 - http://startermasterpages.codeplex.com/
Курс Дизайн порталов SharePoint 2010 - http://www.sharepoint2010.ru/page/iw1005.aspx