Те, кто имел дело с дизайном мастер страниц (.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