Vlad Hill


Web Development, Web Design, Graphic Design, Systems Administration

BlogEngine.NET - Установка и настройка блога

Для того, чтобы создать блог можно воспользоваться соответствующим сервисом в сети, такими как bloger.com, livejournal.com, habrahabr.ru. Или создать свой собственный блог с использованием распространяемых программных модулей. Первый способ более простой и не требует специальных знаний. Но на ряду с этим имеет ряд недостатков: ограничения в уровне доменного имени блога, возможность расширения функциональности и т.п. Мы рассмотрим второй способ.

Для моего блога я использовал программный модуль (движок) BlogEngine.NET версия 1.5.0 по ряду причин:

  • это веб-приложение с открытым исходным кодом, предоставляющее возможность вносить свои изменения и дополнения к его функциональности;
  • создан с использованием проверенных временем технологий ASP.NET, MSSQL;
  • бесплатный;
  • широко используется в среде Интренет, что позволяет надеяться на существование решений возможных проблем с его установкой, настройкой и эксплуатацией.

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

Не будем углубляться в вопросы регистрации доменного имени и хостинга. Рассмотрим только проблемы, связанные с установкой и настройкой.

Отмечу сразу, что при установке более старой версии движка - 1.4.5 пришлось повозиться с настройками приложения в файле Web.config. С версией 1.5.0 этих проблем у меня не возникло. Поэтому рекомендую использовать версию 1.5.0 или выше.

Данные моего блога хранятся на сервере базы данных Microsoft SQL Server. По умолчанию, приложение настроено на хранение данных в формате XML-файлов. Все настройки на использование нужного хранилища данных делаются в файле конфигурации Web.config, логичны и понятны.

Сценарий создания базы данных MSSQLSetup1.5.0.sql находится в каталоге приложения ~/blog/setup/SQLServer/. Там же находится файл SQLServerWeb.config, который можно использовать как Web.config (переименовать и заменить старый файл в каталоге приложения) с минимальными изменениями (указать надо только строку соединения к базе данных). Про сценарий создания базы данных отмечу то, что он у меня выполнился только после того как я удалил из него все инструкции GO. Причину выяснять не стал. Задача была другая.

С использованием SQL Server была выявлена следующая проблема. В базе данных не реализовано сохранение синонима имени страницы - Slug. В результате этого после очистки кэша обращение к вновь созданной странице невозможно.

Решение следующее:

В таблице Pages базы данных создаем поле Slug. Можно воспользоваться следующим sql-запросом

ALTER TABLE [dbo].[Pages]
ADD Slug nvarchar(255) NOT NULL

В исходниках BlogEngine.Core в классе DbBlogProvider вносим изменения в методы InsertPage и UpdatePage для обработки поля Slug таблицы Pages (по аналогии с методами InsertPost и UpdatePost). Компилируем библиотеку с изменениями и перемещаем в bin-каталог приложения.

Еще одна проблема заключается в транслитерации русскоязычных заголовков постов. Для того чтобы ссылка на пост с названием "Мой новый пост" выглядела как "Moy-noviy-post", а не как "абра-кадабра..." необходимо установить следующее расширение TranslitPostTitle.cs (7,79 kb) в каталог ~/blog/App_Code/Extensions/ и включить его.

Чтобы определить на сколько удобным является движок BlogEngine.NET для блога нужно время.


Comments

You must be loged to add a comment !