- Я понял в чем соль использования "призраков" страниц. "Призрак" единожды загружается в пул приложения в виде DLL. "Без призрака" хранится в базе и вытаскивается из базы при каждом запросе. Если бы все страницы были бы в памяти пула, то они занимали бы очень много памяти. Однако нельзя обходиться "призраками", т.к. они совсем не гибки.
- Все файлы (aspx страницы, css таблицы и пр.) можно получить из SPWeb при помощи метода GetFile(string FileName), который имеет методы OpenBinary и OpenBinaryStream позволяющие прочитать файл.
- Иерархия файлов в SPWeb организована аналогичной файловой системе. Есть корневой каталог RootFolder, который содержит в себе подкаталоги и файлы, доступ к которым осуществляется через свойства SubFolders и Files
- Шаблоны страниц, на основе которых делаются "страницы с призраком", можно создавать программно.
- По умолчанию все страницы "без призрака" обрабатываются в безопасном режиме. Это означает, что нельзя использовать inline коды. К кастомизации страниц могут иметь доступ простые пользователи и если они смогут писать inline коды, то будет открытая возможность для взлома злоумышленниками. По мимо этого, минус inline кодов - необходимость компиляции страницы. А после компиляции и внесения в пул, DLL вытащить из пула (из оперативной памяти) без перезагрузки процессов нельзя. Однако, не смотря на эти минусы, через web.config можно разрешить обработку страниц в небезопасном режиме.
- Для того, чтобы на страницу можно было занести элементы управления и обрабатывать страницу в безопасном режиме, их нужно занести в блок SafeControls в web.config. Любая веб часть может быть использована только если её DLL внесена в этот блок.
- Пользовательские элементы управления компилятся в DLL и заносятся в GAC или папку bin корневого сайта. При их создании невозможно использовать визуальный редактор Visual Studio. Они более легкие.
- Элементы управления пользователя представляют собой ASCX файлы, обрабатываемые аналогично ASPX страницам. Хранятся они в файловой системе веб-сервера и компилируются при каждом запросе к ним. Специально отведенная виртуальная директория для них: TEMPLATES/CONTROLTEMPLATES или _controltemplates.
- Страница веб частей - это страница с призраком. Она содержит в себе лишь WebPartZone, а информация о том, какие там вебчасти и кастомизации вебчастей хранится в базе.
- Элементы управления делегирования - это элементы, на месте которых устанавливаются контролы. В ЭУД указывается ControlID. Control с соответствующим ID заменяет ЭУД через активацию специфичной фичи. Замена может происходит на разных scope активации: ферма, веб-приложение, семейство сайтов, сайт.
- master page также может быть "с призраком". При её изменении, она становится "без призрака". Поэтому лучше делать её на основе шаблона.
- ~masterurl/default.master ссылается на _catalogs/masterpage/ + SPWeb.MasterUrl, ~masterurl/custom.master ссылается на _catalogs/masterpage/ + SPWeb.CustomMasterUrl. Для смены master page семейства сайтов необходимо рекурсией пройтись по всем узлам и поменять свойство MasterUrl
- core.css лучше не менять и не использовать для создания брендинга. Этот файл может быть перезаписан при обновлении sharepoint. Для брендинга нужно использовать темы. Они представляют собой css файлы и графику, причем css файлы подключаются после core.css. Таким образом стили будут отрисовываться из css файла стилей, а не core.css. Все эти файлы хранятся в TEMPLATE\THEMES\THEMENAME. Когда пользователь выбирают тему узла, эти файлы копируются на узел и с ними можно работать как с любыми другими файлами, т.е. версионность и прочие плюшки.
- AlternateCssUrl в книги не объяснен. Следующие вопросы: Если назначить это свойство, то будет браться css по нему или будет браться "не alternate"(оригинальная css). Как после установки AlternateCssUrl вернуть все в зад? Ясно только одно - css файлы тем перекрывают AlternateCss
Установка, внедрение, администрирование Sharepoint 2010. Разработка под Sharepoint.
понедельник, 8 ноября 2010 г.
ЗАМЕТКА: книга "Внутреннее устройство Microsoft Windows SharePoint Services 3.0", Глава 3. Страницы и дизайн
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий