Страницы с тегами : spcaf
Релиз SPCAF Contrib
SPCAF создавался для крупных компаний, которые работают с кучей подрядчиков, и для них очень актуальна проблема стабильности фермы в таких условиях. Проблемы, с которыми программисты сталкиваются во время разработки, в базовом наборе правил SPCop адресованы очень слабо.
Поэтому мы решили создать набор правил для SPCop, чтобы облегчить процесс разработки решений и ловить многие проблемы до того, как они проявятся во время тестирования или промышленной эксплуатации. Также создали правила, которые подсказывают best pratices при разработке решений.
Кстати мы это:
Как использовать
1. Поставить SPCop из галереи расширений Visual Studio
2. Скачать spcafcontrib.dll и положить в папку C:\Program Files (x86)\SPCOPCE\
3. Запустить анализ в Visual Studio

4. Анализируйте результаты и настраивайте правила

Заключение
Сайт SPCAF - http://www.spcaf.com/Ссылка на сайт проекта - http://spcafcontrib.codeplex.com/
Презентация - http://www.slideshare.net/gandjustas/sharepoint-code-quality
Ставьте, используйте, оставляйте feedback на сайте проекта.
Развертывание полей таксономии в SharePoint
Поля таксономии, также известные как поля управляемых метаданных (managed metadata), появились в SharePoint 2010. Метаданные позволяют создавать иерархии терминов, которые можно использовать как справочные значения (c typeahead в UI) и, начиная с SharePoint 2013, для навигации.
Метаданные поддерживают множество языков, синонимы и дополнительные свойства. Можно организовать навигацию по метаданным в библиотеке или фильтрацию по поддереву в поиске SharePoint.
И все было бы прекрасно, но развернуть в составе WSP пакета поле метаданных в списке – очень нетривиальная задача. Можно конечно сделать с помощью кода, некоторые даже очень любят этот подход, но в большом масштабе будет много копипасты и статический анализ делать гораздо сложнее.
Если деплоить с помощью CAML, то возникает две проблемы, но об этом по порядку
Проблема первая – схема поля
Если вы погуглите, то найдете минимум четыре статьи как деплоить таксономические поля:
- http://www.sharepointconfig.com/2011/03/the-complete-guide-to-provisioning-sharepoint-2010-managed-metadata-fields/
- http://www.instantquick.com/index.php/correctly-provisioning-managed-metadata-columns?c=elumenotion-blog-archive/random-whatnot
- http://magenic.com/Blog/CorrectlyProvisioningManagedMetadataTaxonomyF
- http://www.wictorwilen.se/Post/How-to-provision-SharePoint-2010-Managed-Metadata-columns.aspx
Все рецепты приведут к неверному результату. Ближе всех к правде оказался последний пост, но и в нем есть проблемы.
Ни в одном посте не указано как поле попадает в список. А именно от этого зависит как поле будет работать. В прошлом посте я писал, что методы полей срабатывают, только если используется ContenTypeRef в схеме List Definition. Эти методы выполняют много работы – добавляют поля в список, привязывают event receiver_ы для синхронизации значений полей таксономии и catchall поля.
Итак правильная схема таксономического поля:
<Field ID="{defbf0ed-377a-4e62-a980-0493ac0ef42e}" Name="TaxonomyColumn" DisplayName="Taxonomy Column" Type="TaxonomyFieldType" Required="FALSE" Group="Custom Site Columns" DisplaceOnUpgrade="TRUE" Overwrite="TRUE" > </Field>
3 правила создания списков SharePoint
Как ни странно, но на просторах интернета крайне мало информации как правильно делать списки и библиотеки SharePoint. В книгах об этом тоже редко пишут. Горькая правда заключается в том, что подавляющее большинство приложений содержит ошибки, связанные с развертыванием списков в SharePoint.
Чтобы устранить львиную долю этих ошибок, надо придерживаться следующих правил:
ContentType
Если вы хотите создать список, то не надо лезть в меню Add –> New Item –> List. Для начала создайте поля для списка и тип контента. Даже если вы думаете, что тип контента будет ровно в одном списке, то все равно создавайте тип контента.
Тип контента вместе с полями деплойте в фиче уровня Site, желательно скрытой, чтобы никто не смог просто так отключить и поломать решение.
В этой же фиче необходимо выполнить все привязки Workflow, различных Policy и форм.
Важно чтобы после активации фичи тип контента был готов к использованию.
ContentTypeBinding
Элемент ContentTypeBinding позволяет привязать тип контента к экземпляру списка. При этом нет необходимости создавать List Definition. Достаточно создать список из одного из стандартных шаблонов, а потом сделать привязку.
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ListInstance Title="List1" OnQuickLaunch="TRUE" TemplateType="100" FeatureId="00bfea71-de22-43b2-a848-c05709900100" Url="Lists/List1" Description="My List Instance"> </ListInstance> <ContentTypeBinding ContentTypeId="0x0100EDFEDEA571A241FD80430F4D48A91346" ListUrl="Lists/List1"/> </Elements>