Sharepoint: терпимо ли выполнять итерацию по всем дочерним сайтам?

Мне нужно создать функцию, которая будет перебирать все дочерние сайты семейства сайтов и добавлять образец контента к каждому из них (образец контента = новые страницы, изображения, документы, возможно, некоторые списки). Существует решение, использующее рекурсию для циклического просмотра сайтов (его можно найти здесь).

Итак, я спрашиваю:

  1. Кто-нибудь из вас реализовал что-то подобное, может быть, по-другому?
  2. Какова была производительность такой итерации?

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


person Marian Polacek    schedule 16.12.2008    source источник


Ответы (3)


Это очень распространенный метод зацикливания сайтов и веб-частей.

Скорость со 100 подсайтами не будет проблемой. Это действительно быстро, если вы делаете много обработки, которая может замедлить ее.

Единственное, на что следует обратить внимание, - это избавление от элементов, если вы оставите открытыми или не закрываете, вы можете высосать всю память из WFE, особенно если множество пользователей перезагружают страницу одновременно. См. http://www.sharepointnutsandbolts.com/2008/06/disposing-sharepoint-objects-what-they.html и http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx для примеров у них также есть инструмент удаления по адресу http://blogs.msdn.com/sharepoint/archive/2008/11/12/announcing-spdisposecheck-tool-for-sharepoint-developers.aspx

person Will Dieterich    schedule 16.12.2008
comment
Спасибо за полезные ссылки. Я, может быть, немного параноик по поводу производительности SP :) - person Marian Polacek; 16.12.2008
comment
просто придирка: при утилизации высвобождаются ресурсы (например, соединения с базой данных), а не память. - person vitule; 20.09.2010

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

person LeonZandman    schedule 01.04.2009

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

http://hristopavlov.wordpress.com/2008/10/20/a-very-fast-method-to-get-the-site-collections-web-structure/

person anchorpoint    schedule 01.04.2009