Возникла необходимость выбора Open Source CMS для реализации очередного проекта. Вообще надо сказать, что популярные и известные CMS (а также различные open-source форумы, движки и библиотеки) написаны на PHP или Perl. Но подтягиваются и .NET реализации, некоторые из которых выглядят вполне качественными и функциональными.
В данной заметке приведу краткий обзор CMS которые я нашел в сети, в дальнейшем, возможно, приведу более детальное исследование некоторых из них. Критерии выбора были следующие: платформа ASP.NET, бесплатность, открытость исходного кода проекта.
DotNetNuke
Веб сайт: http://www.dotnetnuke.com/
Текущая версия 4.8.1
Платформа: ASP.NET 2.0
СУБД: Microsoft SQL Server (по всей видимости поддерживается 2000 и выше)
Язык программирования: в основном VB.NET (один модуль на C#).
Лицензия: BSD
Наверно, наиболее популярный из CMS реализованных на .NET (на сайте приведена цифра – 400тыс. пользователей). Авторы описывают его как гибкий, дружелюбный и мощный одновременно.
Функциональность:
-
поддержка множества порталов;
-
полностью настраиваемый внешний вид, поддержка стилей и скинов;
-
многоязычный, в том числе поддерживается русский язык;
-
управление файлами, корзина для удаленных, поддержка drag’n’drop;
-
заявлена поддержка следующих стандартных модулей: авторизация и поддержка пользователей, анонсы, баннер, блоги, контакты, дискуссии и форумы, списки документов, списки событий, FAQ, обратная связь, галерея изображений или мультимедиа, изображения, ссылки, RSS, поиск, XML/XSLT преобразования, вывод пользовательских табличных данных.
Помимо стандартных, на сайте имеется довольно много дополнительных платных модулей.
На первый взгляд выглядит немного тормознутым, особенно поиск по ключевым словам – по самому сайту http://www.dotnetnuke.com/
Документация очень подробная по всем аспектам (как по разработке своих модулей, так и по использованию системы).
Umbraco 
Веб сайт: http://umbraco.org/
Текущая версия 3.0.3
Платформа: ASP.NET 2.0, Microsoft ASP.NET 2.0 AJAX Extensions 1.0
СУБД: Microsoft SQL Server 2005
Язык программирования: C#
Лицензия: MIT License
Функциональность определенно не такая объемная, как у DotNetNuke, но есть несколько довольно интересных возможностей, в том числе:
-
интегрированный WYSIWYG редактор, редактор для шаблонов JavaScript файлов и CSS;
-
поддержка редактирования непосредственно из Microsoft Word;
-
версионирование всех изменений;
-
публикация по расписанию;
-
полная поддержка веб-стандартов, шаблонов и стилей;
-
легкая интеграция существующих .NET пользовательских контролов (User and custom controls), легко расширяемая объектная модель;
-
удобный форум;
Umbraco на первый взгляд выглядит более ориентированным на разработчиков. Очевидно что это может быть как плюсом, если вы хотите более полный контроль над сайтом и планируете существенные доработки, так и минусом если функциональность типична.
Помимо бесплатной версии предлагаются расширенные платные версии: http://umbraco.org/products/umbraco-pro/feature-matrix
mojoPortal 
Веб сайт: http://www.mojoportal.com/
Текущая версия 2.2.4.6-b
Платформа: ASP.NET 2.0 для Windows или Mono (Linux, Mac OS X)
СУБД: MS SQL, MySQL, PostgreSQL, SQLite, FirebirdSql
Язык программирования: C#
Лицензия: CPL
Довольно интересная реализация, которая поддерживает, в том числе Mono и может работать с множеством бесплатных SQL серверов.
Функциональность:
-
поддержка множества сайтов в одной инсталляции;
-
XHTML совместимый менеджер контента;
-
WYSIWYG редактор контента (FCKeditor , TinyMCE, или XStandard);
-
блоги, форумы;
-
календарь событий;
-
галерея изображений;
-
новости с рассылкой;
-
RSS агрегатор;
-
контакты;
-
менеджер файлов;
-
опросы и голосования;
-
интернет магазин (базовая функциональность);
-
поддержка многоязычности, также заявлена поддержка русского языка;
-
авторизация пользователей Active Directory, OpenLDAP, OpenID и Windows Live ID.
-
поиск по ключевым словам;
Rainbow
Веб сайт: http://www.rainbowportal.net/
Текущая версия: Rainbow 2.0.0.1881e
Платформа: ASP.NET 2.0
СУБД: MS SQL 2000
Язык программирования: C#
Лицензия: LGPL
Rainbow первоначально основывался (как и DotNetNuke) на портале IBuySpy который был разработан Microsoft для демонстрации возможностей ASP.NET.
Смущает множество неработающих ссылок на сайте, в частности на текущий момент не открывается ссылка по главной новости о выпуске версии 2.0.0.1881e
Функциональность (более 45 стандартных модулей):
-
поддержка множества сайтов в одной инсталляции;
-
поиск;
-
редактирование контента в режиме WYSIWYG;
-
кастомизация сайта с помощью скинов и стилей;
-
управление пользователями и ролями;
-
анонсы, статьи, блоги, форумы, контакты, списки событий, FAQ, галереи изображений, опросы, etc.
Перечисленная функциональность радует, но продукт производит впечатление довольно громоздкого и плохо поддерживаемого, на сайте творится некоторый бардак со ссылками и исходниками различных версий системы.
AxCMS.net
Веб сайт: http://www.axcms.net/
Текущая версия: 7.0
Платформа: ASP.NET 2.0, AJAX Extension 1.0, Web Service Enhancements 3.0
СУБД: MS SQL 2000/2005
Язык программирования: C#
Лицензия: своя, нельзя декомпилировать части без исходников и распространять изменения
Большая часть системы поставляется без исходников, да и лицензия достаточно ограниченная, поэтому желание серьезно разбираться с этой CMS поубавилось. Хоть сайт производителя радует своей логичностью и доступностью документации по установке и настройке системы.
Функциональность:
-
модуль для печати;
-
поддержка загрузки файлов на сайт пользователями;
-
опросы;
-
поиск;
-
поддержка Sitemap;
-
RSS агрегатор;
-
регистрация и аутентификация пользователей;
-
новостные рассылки;
-
ротирующиеся картинки;
-
форум;
-
генератор форм и таблиц, без необходимости править HTML;
-
многоязычность (русский поддерживается);
-
интеграция с Explorer (видимо через WebDAV);
-
электронные открытки, хлебные крошки, баннеры, etc.
Имеет смысл связываться с этой CMS, если вы собираетесь платить за это деньги (и получить соответственно поддержку и некоторые расширенные возможности).
Cuyahoga
Веб сайт: http://www.cuyahoga-project.org/
Текущая версия: 1.5.2
Платформа: ASP.NET 2.0, Mono
СУБД: MS SQL, PostgreSQL, MySQL (через nhibernate)
Язык программирования: C#
Лицензия: BSD
Как пишут авторы этого труднопроизносимого на русском языке проекта - основная цель ее, это показать разработчикам .NET, что есть другой способ организации .NET приложений, нежели тот который показывается в стандартных примерах. Также авторы противопоставляют DotNetNuke, Rainbow, и Portal Starter Kit (ранее известный как IBuySpy Portal) своей системе, утверждая, что Cuyahoga дает возможность строить веб-сайты с любым дизайном, за счет использования гибкой разметки.
Функциональность:
-
Множество сайтов в одной инсталляции, алиасы для сайтов, иерархическая структура сайта с неограниченной вложенностью;
-
связи между модулями на странице, что позволяет им взаимодействовать между собой;
-
шаблоны с выделенными пользовательскими частями;
-
тонкая настройка кеширования объектов и модулей;
-
поиск;
-
поддержка локализации контента;
-
синдикация RSS;
-
WYSIWYG редактор;
-
стандартные модули в себя включают: статьи, статический html, раздел downloads, remote content (контент с удаленных источников), регистрация и авторизация пользователей, переключатель языков;
На сайте выложено неплохое руководство по написанию модулей: http://www.cuyahoga-project.org/46/section.aspx/download/19
N2
Веб сайт: http://n2cms.com/
Текущая версия: 1.3.3
Платформа: ASP.NET 2.0
СУБД: MS SQL 2000/2005, MySQL (посредством nhibernate)
Язык программирования: C#
Лицензия: GNU
Описание на сайте производителя гласит, что, N2 – это легковесная CMS, которая дает простой и мощный интерфейс для редакторов, а для разработчиков – понятный и открытый API. Радует функциональность и простота использования самого сайта, не требуется много времени, чтобы найти какой функционал поддерживается, документацию для разработчика.
Функциональность:
-
Множество сайтов в одной инсталляции, иерархическая структура контента с неограниченной вложенностью;
-
простой в использовании интерфейс редактора, легкость его расширения;
-
сайты разрабатываются в Visual Studio (?);
-
модель БД сохранена в виде исходного кода (nhibernate ?);
-
авторизация с использованием стандартных провайдеров asp.net;
-
есть возможность встроить в существующее приложение;
-
WYSIWYG редактор, файл менеджер, редактирование поддерживается как минимум в IE и Firefox;
-
гибкий дизайн шаблонов;
-
поддержка JQuery, TinyMCE, Microsoft Ajax;
-
версионирование контента;
-
локализация контента;
-
визард по созданию страниц;
-
менеджер пользователей;
-
публикация по расписанию;
-
включены модули: текст, новости, календарь событий, FAQ, галерея картинок, опросы, подписка RSS, поиск, и пр.
XMLNUKE
Веб сайт: http://www.xmlnuke.com/
Текущая версия: 2.0 RC1 (CSharp Edition)
Платформа: любая, доступна также PHP реализация
СУБД: не требуется, XML
Язык программирования: C#, PHP
Лицензия: GNU
CMS основана на преобразованиях XML в HTML при помощи XSLT, что в общем то является стандартной практикой. Не использует никакие БД, что с одной стороны плюс – не нужно за них платить, с другой стороны минус – при множестве операций записи, генерации XML файлов и выполнении XSLT преобразований (достаточно ресурсоемкая операция), производительность такой системы может быть заметно ниже.
Функциональность:
-
Множество сайтов в одной инсталляции;
-
минимальное количество действий по запуску: просто распаковать и залить на сайт;
-
поддержка локализации;
-
сниппеты (упрощенный синтаксис генерации HTML, так как XSLT довольно сложен);
-
генерация site map;
-
темы, печать документов;
-
доступны модули: гостевая книга, поиск по ключевым словам, аутентификация пользователей и профили, раздел download.
Очевидно, что XMLNUKE, это простая система, с базовой функциональностью, подойдет тем, кому нужно быстро запустить простой сайт, при этом не нужно будет думать о том какой SQL сервер использовать.
JMDCMS
Веб сайт: http://www.jmdcms.com/
Текущая версия: 3.0.0.9 Alpha
Платформа: ASP.NET 2.0
СУБД: SQL Server 2000/2005
Язык программирования: C#
Лицензия: Common Public License
Описание с сайта: гибкая автоматическая разметка в 3,2 и 1 колонку. Контроль доступа на уровне страниц и модулей, контроль публикации. Сайт автора, на мой взгляд, перегружен рекламой.
Функциональность:
-
Множество сайтов в одной инсталляции, неограниченная вложенность страниц;
-
разметка, основанная на CSS шаблонах;
-
поддержка модулей;
-
детальная статистика;
-
встроенные модули: меню, управление пользователями, страницами и безопасностью.
На текущий момент довольно слабая функциональность, хотя многое заявлено как планируемое.
NKCMS
Веб сайт: http://nkcms.sourceforge.net/
Текущая версия: ?
Платформа: ASP.NET
СУБД: MS SQL
Язык программирования: C#
Лицензия: BSD
Весьма аскетичный WEB сайт, приводит информация о некоторых возможностях этой системы:
- использование XSL для шаблонов;
- поддержка многоязычности;
- управление доступом пользователей;
- windows приложение для управления сайтом.
Судя по всему, последняя активность над проектом была в 2005 году, рассматривать его особого смысла не имеет.
Freeleen
Веб сайт: http://www.feeleen.ru/
Текущая версия: ?
Платформа: ASP.NET ?
СУБД: ?
Язык программирования: ?
Лицензия: ?
Из описания на самом сайте понять можно не очень много. Предлагается обращаться на e-mail. Предположительно система не бесплатна, исходного кода тоже не видно – к загрузке предлагается только демоверсия Windows клиента для управления сайтом.
Привожу исключительно в качестве справочной ссылки, к тому же единственная в обзоре CMS, которая создана автором из России.
Заключение
Меня, как разработчика, наиболее заинтересовал из этого списка N2, в частности обещаниями легкой интеграции в существующие приложения. Еще кажутся достойными более пристального изучения mojoPortal, umbraco и Cuyahoga. Конечно, кажется что более функциональный DotNetNuke или, например Rainbow, тоже вполне достойные системы, но на исключительно поверхностный взгляд они выглядят избыточными и сложными в доработке и поддержке.
А у вас был опыт работы с одной из перечисленных CMS?