Сегодня наткнулся на этот потрясающий пост на GotDotNet. Код в 20 строк изобилует практически всеми ошибками, которые можно совершить при разработке для SharePoint.

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

Привожу текст письма с правилами “как есть”:

Господа, давайте сразу делать веб-части для главной НОРМАЛЬНО

1. Никаких visual web part, используйте sandboxed visual web part

2. Никаких ссылок на скрипты и css в разметке, используйте классы CssRegistratoin и ScriptLink

3. Получение списков только через web.GetList(SPUrlUtility.CombineUrls(web.Url, listRelativeUrl)

4. Списки для веб-частей на главной лежат в корневом сайте, доступ к которому только через SPContext.Current.Site.RootWeb

5. Никаких вызов конструкторов SPSite и site.OpenWeb крайней необходимости

6. В JS учитывайте что может быть много экземпляров веб-частей на странице, передавайте в скрипты id элементов с помощью control.ClientID

7. Так как веб-части на страницу могут быть добавлены после постбека – не используйте Page.IsPostBack для проверки первой загрузки

8. Лучший вариант – грузите данные в createchildcontrols

9. Используйте репитеры вместо склейки HTML в коде

10. Вставляйте везде SPMonitoredScope

11. Структурируйте код так, чтобы загрузка данных была отделена от генерации HTML (чтобы можно было кеширование прикрутить)

12. Отключайте по возможности ViewState

13. Обрабатывайте ошибки, чтобы при ошибке в веб-части не падала страница. Надо обрабатывать SPException, FileNotFoundException (сайт не найден, нет доступа), DirectoryNoFoundException (список не найден, нет доступа)

14. Если напишите try с пустым catch – оторву йайтса

15. Ошибки пишите в лог и выводите в красном Literal на страницу

16. Используйте только exception.ToString()

17. Корректно обрабатывайте случаи отсутствия элементов при выводе

18. На странице может быть две одинаковые веб-части и они должны корректно работать

Две ссылки по теме:

http://msdn.microsoft.com/en-us/library/bb985502(v=office.12).aspx

http://msdn.microsoft.com/en-us/library/dd583141(v=office.11).aspx

PS. Пункт 1 актуален для Visual Studio 2010, в 2012 такие веб-части создаются по-умолчанию.

Теги : SharePoint