Мне нужна помощь в выяснении того, было бы хорошей идеей использовать CMS или решение для портала для моего последнего проекта, который (в настоящее время) является приложением ASP.NET MVC, которое должно обслуживать несколько клиентов (являющихся компанией или какой-либо другой объект со списком пользователей) из одной установки (то есть SaaS).
В дополнение к основной функциональности, которая включает в себя управление документами/публикацию, мне также необходимо предоставить основные социальные функции (такие как блог, форум, галерея, опросы и т.д.). Тем не менее, крайне важно, чтобы контент был виден только для клиента, к которому он принадлежит, и моя оценка группы CMS и решений для порталов мало пролила свет на то, поддерживают ли они это. Они довольно сосредоточены на однопользовательских установках, а документация о том, как интегрироваться с существующим решением MVC, довольно тонкая.
По сути, я ищу некоторые рекомендации, которые помогут мне отказаться от тупиковых опций (продукт не отвечает требованиям, накладывает слишком много ограничений, не зрело и т.д.), и найдите неисследованные параметры, прежде чем зайти слишком далеко вперед проект.
Мои требования к архитектуре включают в себя:
- Поддержка нескольких сайтов (с использованием единого домена для хостинга)
- Водонепроницаемое разделение содержимого между клиентами
- Полная интеграция между компонентами/функциями
- SSO (однократный вход)
- Опыт работы с одним сайтом (общий заголовок/нижний колонтитул, унифицированная навигация, унифицированные теги и т.д.).
- Простота разработки и развертывания
- Пользовательская логика будет написана с использованием С# и ASP.NET MVC, и любые продукты должны поддерживать это.
- Я хочу остаться под контролем
- Решение должно предлагать функции, но в остальном оставаться в стороне (например, не навязывать мне глупые идиомы, например настаивать на GUID для первичных ключей)
- Активное сообщество разработчиков
- Нет усилий для одиноких людей.
- Недавняя деятельность по контролю версий.
- Разумные уровни документации и зрелости
- Не нужно открывать исходный код
Я потратил немало времени на оценку продуктов и компонентов, о которых я кратко расскажу здесь:
- Umbraco
- Не поддерживает ASP.NET MVC (пока кто-то связан с комментарием иначе)
- Отличная поддержка сообщества, активное развитие
- Кажется, что нужно много работать.
- Kooboo
- Нет активности источника (нет обновлений в течение почти двух месяцев)
- Лицензия GPL? (нужно что-то, что позволяет использовать приложения с закрытым исходным кодом)
- N2CMS
- Поддержка частичного ASP.NET MVC
- Каждый клиент должен иметь отдельный домен
- Ограниченная деятельность источника (не мертвая, но не яркая)
- Orchard
- спонсируемый Microsoft (что означает, что он, вероятно, будет чрезмерно задуманным, раздутым по коду и медленным, хотя у него есть некоторые хорошо известные и уважаемые участники/лидеры).
- Построено с использованием ASP.NET MVC
- Выглядит многообещающим (но вряд ли будет стабильным на данном этапе).
- AtomSite
- Чувствует себя достаточно зрелым и имеет приличную документацию, хотя и с дырками.
- Построено с использованием ASP.NET MVC
- Ограниченная деятельность источника, один разработчик
- MojoPortal
- Выглядит хорошо для портала, но, вероятно, требуется, чтобы пользовательская логика была построена как модули вокруг продукта (я надеялся избежать такого рода блокировки, если это возможно).
- DotNetNuke (DNN), CommunityServer и Microsoft Office SharePoint Server (MOSS)
- Определенно не моя чашка чая;)
- BlogEngine.NET
- Зрелые и полнофункциональные
- Поддержка ASP.NET MVC
- Интеграция возможна, но не без большого количества Web.config voodoo
- Не уверен, поддерживает ли клиент разделение
Учитывая приведенный выше список, я склоняюсь к AtomSite, N2CMS, Orchard или BlogEngine.NET. Если я пойду с последним, я буду использовать jitbit AspNetForum, который отлично подходит для моих нужд.
Я бы предпочел использовать настраиваемое решение ASP.NET MVC и отдельные компоненты, поскольку это, скорее всего, даст мне наибольшее количество контроля, но, с другой стороны, это сделает сложность сайта и интеграцию сложнее. Какие комбинации вы пытались, что сработало, а что нет? Что-нибудь важное, что я оставляю без оценки? Любой другой соответствующий совет?
Я был бы признателен, если бы ответы были не просто одобрением вашего любимого продукта или способа его выполнения, а тем, что помогло бы мне выбрать или исключить кандидатов на решение, учитывая изложенные выше требования.