Выбор CMS против портала против компонентов MVC +? - PullRequest
15 голосов
/ 01 июля 2010

Мне нужна помощь, чтобы выяснить, будет ли хорошей идеей использовать CMS или решение для портала для моего последнего проекта, который (в настоящее время) является приложением ASP.NET MVC, которое должно обслуживать нескольких клиентов (будь то компания или какой-то другой объект со списком пользователей) из одной установки (то есть решение SaaS ).

В дополнение к основной функциональности, которая включает управление документами / публикацию, мне также необходимо предоставить основные социальные функции (такие как блог, форум, галерея, опросы и т. Д.). Тем не менее, крайне важно, чтобы контент был виден только для клиента, которому он принадлежит, и моя оценка группы решений CMS и порталов не пролила свет на то, поддерживают ли они это. Они в основном ориентированы на однопользовательскую установку, а документация по интеграции с существующим решением MVC довольно тонкая.

По сути, я ищу несколько советов, которые помогут мне отказаться от тупиковых вариантов (продукт не соответствует требованиям, накладывает слишком много ограничений, не вступил в силу и т. Д.) И найти неисследованные варианты, прежде чем слишком далеко опередить проект.

Мои требования к архитектуре включают:

  • Поддержка нескольких сайтов (использование одного домена для хостинга)
    • Водонепроницаемое разделение контента между клиентами
  • Полная интеграция между компонентами / функциями
    • SSO (единый вход)
    • Работа на одном сайте (общий колонтитул, унифицированная навигация, унифицированные теги и т. Д.)
  • Простота разработки и развертывания
    • Пользовательская логика будет написана с использованием C # и 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 и отдельные компоненты, так как это вероятночтобы дать мне максимальный контроль, но, с другой стороны, это усложнит тематику сайта и интеграцию.Какие комбинации вы пробовали, что работало хорошо, а что нет?Что-то важное, что я оставляю вне своей оценки?Любой другой соответствующий совет?

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

Ответы [ 5 ]

5 голосов
/ 01 июля 2010

Учитывая уровень требований, которые вы указали, мне лично придется склоняться к индивидуальному подходу.Вы можете нанять кого-нибудь, чтобы сделать дизайн (просмотр) часть сайта для вас, или вы можете купить тему из Интернета у дизайнеров сайта и настроить ее по своему вкусу.(Иногда для настройки промежуточного уровня достаточно просто начать с чего-либо).

  • Поддержка нескольких сайтов (для хостинга используется один домен)

    • Возможно, вы захотите контролировать свою хостинговую среду, будь то VPS (виртуальный частный сервер) или выделенный блок.Это все еще возможно на виртуальном хостинге, но не рекомендуется.
  • Водонепроницаемое разделение контента между клиентами

    • Вы бывероятно, придется создавать уникальный пул приложений для каждого клиента со своим пользователем услуг для 100% разделения.
  • Полная интеграция между компонентами / функциями / SSO (один-sign-on / Работа с одним сайтом (общий колонтитул, унифицированная навигация, унифицированные теги и т. д.)

    • Это будет сложная часть. В этом примере может быть полезно для вас в процессе разработки, но вы захотите использовать унифицированную службу входа и все сайты будут использовать ее или ссылаться на нее.
  • Простота разработки и развертывания
    • Здесь все становится сложнее.Я думаю, легкость разработки проистекает из вашего опыта.MVC, безусловно, является правильным выбором в этом отношении, поэтому знание о правильных путях создания сайта в MVC поможет в этом процессе.Будьте в курсе событий, читая блоги сообщества и слушая подкасты, такие как Hanselminutes или DotNetRocks , которые помогут вам поддерживать связь с новейшими и лучшими инструментами / технологиями, чтобы ваш сайт начал развиваться.быстро и эффективно.
    • Развертывание - сложная задача.MSDeploy все еще не совсем там.Но если вы можете, вы, вероятно, захотите придумать структуру публикации Dev -> Staging -> Release, чтобы вы могли тестировать свой код в промежуточной (имитированной рабочей) среде.
  • Пользовательская логика будет написана с использованием C # и MVC, и любые продукты должны поддерживать это. Я хочу сохранить контроль
    • Если вы разрабатываете сайт в ASP.NET-MVC, вы сможетесоздавать общие библиотеки, которые вы можете использовать не только на своем сайте, но и в своих пользовательских инструментах.Это значительно сократит дублирование кода и поможет обеспечить достижение эксплуатационного единства .(Все работает одинаково).
  • Решение должно предлагать функции, но в остальном не мешать (например, не навязывать мне глупые идиомы, например настаивать на GUID для первичных ключей))
    • Пока вы будете иметь контроль в этой ситуации, я бы настоятельно рекомендовал GUID Primary Keys.Это позволяет Merge Replication , которая может помочь вам легко восстанавливать резервные копии или использовать отказоустойчивые серверы БД, когда дела идут плохо.
  • Активное сообщество разработчиков
    • .NET имеет отличное сообщество (включая это), и вы должны получить большую поддержку, если вежливо попросите его.
  • Ни одногоусилия человека
    • Не уверен, что вы имеете в виду здесь, вы были бы одиноким человеком, если бы вы не наняли помощи, но даже 2 человека могут сделать великие дела, если уделят немного времени.Даже один человек может делать великие дела, но среда, на которой вы работаете, поддерживается огромной командой, финансируемой из коммерческих источников.
  • Последние действия по контролю над источниками
    • На самом деле не относится к .NET, но многие библиотеки, которые вы можете использовать (NHibernate, MVC Contrib, AutoFac, Etc ...), будут иметь большую активность и постоянно улучшаться.
  • Разумные уровни документации и зрелости
    • .NET и большинство библиотек производственного уровня, разработанных для .NET (упомянутых выше), на самом деле имеют довольно хорошую документацию.Существует только несколько платных и неоплачиваемых источников информации только для .NET, и большинство библиотек (хорошо поддерживаются сообществом и известны в StackOverflow)
  • Не обязательноopen source
    • Ищите вспомогательные библиотеки LGPL (то есть вы можете использовать их в коммерческом программном обеспечении, но если вы изменяете библиотеку, вы должны выпустить новый код библиотеки, если вы выпускаете двоичный файл.)Здесь вы достаточно безопасны, ваш сайт не обязательно должен быть открытым, если вы используете эти библиотеки для поддержки своей разработки.

Ну, это мои 2cents.Проект, который вы описали, - не маленькая работа, вы ищете значительный объем работы, даже если вы используете готовое решение (в основном взломав его, чтобы работать так, как вы хотите).Я полагаю, что вашим самым большим успехом будет SSO и безопасность для готовых решений.Не сказать, что это невозможно, просто сложно, и конечный результат может быть не совсем то, что вы ищете.

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

0 голосов
/ 27 октября 2013

Я бы склонялся к решению на основе CMS.Наличие протестированного и готового к работе программного обеспечения не только сокращает время разработки, но также помогает в непрерывном обновлении и сокращении количества ошибок.Если вы пойдете по этому маршруту, вы можете рассмотреть Sitefinity .Он не только поддерживает все необходимые вам функции, но также построен на .NET и поддерживает разработку MVC.Продукт создан Telerik, создателем инструментов UX.

Отказ от ответственности: Я работаю в Telerik.

0 голосов
/ 19 января 2012

Решением для сайта нашей компании стало EBIZ CMS : полнофункциональный сайт, который включает в себя социальные сети, интернет-магазин, функцию презентации, форум, создание HTML-страниц и многое другое, включая поддержка профессиональной технической поддержки, поэтому нам даже не нужна помощь для установки программистом, а это всего 9 долларов США в месяц!

0 голосов
/ 03 июля 2010

Я недавно сталкивался с phpFox , который является социальной сетью / форумами / сообществом CMS .Это может быть полезно для вас и довольно недорого.

0 голосов
/ 01 июля 2010

Посмотрите еще раз на MojoPortal.CMS великолепна, а главный разработчик Джо Одетт очень отзывчив.У меня есть несколько установок CMS, работающих на одном и нескольких сайтах.

...