CMS (система управления контентом) для .NET сайта. Часть 3: BlogEngine.NET

by Dmitry [dimaka] Pavlov 5. July 2010 18:19

В предыдущих постах я писал о других .NET CMS: Umbraco и MojoPortal. Umbraco оказалась совесем уж мутной вещью в себе, хотя ролик про ее возможности, конечно, привлекает. Как работать с этим чудом я так и не понял. MojoPortal оказался более дружелюбным, но прикрутить к нему свою тему, нарезанную из картинки, с последующей кастомизацией кода оказалось уж больно длительной задачей.

Во всех CMS есть одна проблема: там очень много лишнего :)

В общем, MojoPortal был забракован мной вслед за Umbraco. Ковыряться с DNN (DotNetNuke) я даже не стал, поскольку пробовал это дело в прошлом и в плане лишнего – это лидирующая .NET CMS :) К тому же DNN написан на VB.NET, что меня абсолютно не привлекает.

Итак, кандидаты на роль .NET CMS иссякли. Я начал смотреть на около CMS-ные решения и нашел .NET движок для блога – BlogEngine.NET. Я попробовал его в неизмененном виде. Очень порадовал. Как движок блога – отлично. Умеет хранить посты не в базе в XML файлах, умеет все, что должен уметь приличный блог-engine. Я даже использовал его для этого блога.

Однако BlogEngine.NET, в силу своей блоговой природы, имел многие слабые места как CMS-ка. В частности – это создание структуры сайта и управление страницами и меню. Также для сайта (не блога) не так важны посты, сколько важно иметь возможность работать со страницами и навигацией.

К счастью, код BlogEngine.NET имел не слишком много лишнего (хотя тоже имел :) ). И я его почистил, создав на базе этого движка, свою CMS-ку. При “зачистке” я решил выкинуть все то, что на мой взгляд не нужно в подавляющем большинстве сайтов:

  • Убрал использование базы данных (исходный BE.NET умеет хранить контент как в базах так и в виде XML файлов). Я оставил только XML. Не вижу смысла использовать базу (весьма ценный ресурс) под контент.
  • Убрал поддержку тем. За свою практику написания сайтов (как на фрилансе, так и программируя для крупных корпораций) я ни разу не встречал потребности менять темы. Эта “фишка” на мой взгляд нужна разве что на порталах типа почтовых серверов, блоговых сообществах или в социальных сетях. Там много пользователей и здорово когда можно дать им как-то выделиться среди остальных. Или просто дать возможность выбрать что-то под их вкус. Зачем скажем сайту компании меняться каждый день?.. В общем поддержка тем была вырезана также.
  • Я удалил большинство примочек для блогов, поскольку моя цель – CMS. И многочисленные ухищрения по работе с комментариями и пользователями мне не нужны (сюда отправились различные блоговые агрегаторы, gravatar и прочие “навороты”).
  • Я удалил различия между постом и страницей. В чем разница?

Конечно же, пришлось многое добавить:

  • В админке добавлены возможности управлять структурой сайта – древовидной схемой, в которой можно группировать струницы и так как это нужно.
  • Добавлена возможность любую страницу сайта предстваить как новость (которая автоматически попадет в RSS фид сайта)
  • Также для тех страниц, которые содержат какое программирование (вывод отчетов, отправка почты и проч.) сделан алиас. То есть конечнеый пользователь может включить в свою структуру сайта любую программируемую страницу под тем или иным алиасом.
  • Добавлена мультиязычность для всего содержимого сайта. Это более важная штука для многих сайтов, чем темы :)

Что в итоге получилось?

В итоге я получил CMS c одной темой, специфичной для каждого проекта и не содержащей ничего лишнего. Блоговая биография этого решения обеспечивает активное невидимое общение с внешним миром (RSS + некоторые SEO вопросы). Система не требует базы данных, Достаточно шутро работает и очень проста в использовании конечным пользователем (в частности там используется TinyMCE - WYSIWYG Editor – что позволяет не заботиться о том, что есть HTML и c чем его надо кушать).

На этом решении мой выбор закончен – ура!

Tags:

.NET | BlogEngine.NET | CMS | по-русски

Comments

Calendar

<<  February 2012  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar