outcoldman
outcoldman Denis Gladkikh

Outcold.SiteManager в действии

ASP.NET and comilfoav.ru

Как я и обещал, что если будут заинтересованные лица, то я выложу код (пример сайта), при помощи которого работает http://comilfoav.ru.

Итак ссылка на скачивание. Проект от Visual Studio 2008 SP1. Дизайн полностью убран. Функциональность обрезана. Оставлены только основные примеры (каталог, items и статистика)

Теперь об установке:

  1. Первые 5 настроек appconfig указывают на xml файлы настроек сайта (rewriter, messages, menu и т.д.)
  2. LogAdminSteps - записывать ли статистику, если пользователь аутентифицирован
  3. NeedStatistic - необходимо ли записывать статистику в базу (число посещений и другое)
  4. WGLicenseKey - ключ для WebGrid (иначе не будет работать) - взять на официальном сайте бесплатно.
  5. connectionStrings под именем Main - строка подключения к базе данных (восстановленной базе из бекапа)
  6. в секции authentication есть пользовать admin - admin для административной части приложения (здесь вы можете менять пароль или добавлять других пользователей).
Пару слов о siteitems.config, он как раз и содержит mapping url путей к физическим путям сайта. В Configuration Extension - указывает какие типы файлов (расширений) нужно перехватывать, Separator - указывают чем разделены Folder в url (catalog/items/10.aspx - в этом случае catalog и items - Folders, а 10 - Item).

Дальше файл описывают структуру сайта при помощи понятий folder и item.

У Folder и Item есть следующие аттрибуты:

Id - просто уникальное имя объекта (чтобы его можно было найти);

Pattern - регулярное выражение, указывающее что в url представляет данный объект.

У обоих элементов xml могут быть вложенные элементы:

User - имя пользователя, под которым могут заходить в данный folder или item;

ContextParameter - параметр, в который будет преобразован url данного элемента (для обозначения идентификаторов, например), которые можно запросто получить в code behind при помощи класса HttpContextHelper (outcold.sitemanager);

Parameter - фиксированный параметр данного item (получить значение можно опять при помощи HttpContextHelper).

У Item есть атрибуты, помимо выше перечисленных:

Location - физический путь к странице;

Title - заголовок страницы.

Чтобы работать с элементами xml файла siteitems.config - существует класс NavigationManager, так чтобы получить url какого то либо item необходим метод NavigationManager.GetUrl, у которого первый параметр обозначает id элемента в xml, а следующие - подставляемые значения в contextparameters (их может и не быть).

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

Have feedback or questions? Looking for consultation?

My expertise: MongoDB, ElasticSearch, Splunk, and other databases. Docker, Kubernetes. Logging, Metrics. Performance, memory leaks.

Send me an email to public@denis.gladkikh.email.

The content on this site represents my own personal opinions and thoughts at the time of posting.

Content licensed under the Creative Commons CC BY 4.0.