воскресенье, 7 ноября 2010 г.

ЗАМЕТКА: книга "Внутреннее устройство Microsoft Windows SharePoint Services 3.0", Глава 2. Архитектура sharepoint

Из этой главы я подчеркнул:

  1. ASP.NET это своеобразный framework для ISAPI - низкоуровневого обработчика запросов.
  2. WSS физически хранит ASP.NET страницы не в файловой системе, а в базе. Однако дефолтные страницы, создаваемые на основе шаблона хранятся физически на файловой системе. Если создано очень много сайтов по одному шаблону и дефолтная страница в них не менялась, то она берется из файловой системы и это один файл для всех сайтов. Такая страница называется "призрак". Как только в ней что-то поменяли и сохранили - она хранится в базе и называется "страница без призрака".
  3. SPVirtualPathProvider - штука, позволяющая wss брать страницы не из файловой системы, а из базы. После неё страницы контролируются SPPageParserFilter, который контролирует компилиться ли странице в dll или страница обрабатывается в режиме без поддержки компиляции.
  4. Для веб приложений существуют виртуальные каталоги:
    • _vti_bin - dll и asmx сервисы
    • _controltemplates - пользовательские контролы
    • _wpresources - исходные файлы, используемые наряду с веб-частями. Из этих слов ничего не понятно, думаю вернусь к этому месту когда пойму что это.
    • _layouts - Application pages
  5. Application page отличается от страниц узлов тем, что в них можно писать inline code, они хранятся в единичной dll и не позволяют осуществлять пользовательскую настройку, что обеспечивает масштабируемость, но не дает гибкость.
  6. Чтобы не возникало конфликтов с именование ApplicationPage в папке LAYOUTS лучше создавать подкаталог и хранить в нем свои страницы.
  7. Контекст ApplicationPage зависит от страницы, с которой был осуществлен переход на неё.
  8. Чтобы сделать url относительно текущей SiteCollection можно использовать префикс ~sitecollection. Например ~sitecollection/_layouts/page.aspx
  9. Для передачи параметров элемента списка/библиотеки через контекстное меню (ECM) существуют теги {ItemId} и {ListId}.

Комментариев нет:

Отправить комментарий