【问题标题】:Choosing CMS vs Portal vs MVC+Components?选择 CMS、门户、MVC+组件?
【发布时间】:2011-03-10 09:28:28
【问题描述】:

我需要一些帮助来确定为我的最新项目使用 CMS 或门户解决方案是否是一个好主意,该项目是(当前)必须为多个客户(作为公司或来自单个安装(即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)、CommunityServerMicrosoft Office SharePoint Server (MOSS)
    • 绝对不是我的那杯茶;)
  • BlogEngine.NET
    • 成熟且功能齐全
    • 不支持 ASP.NET MVC
    • 可以集成,但不能没有大量的 Web.config voodoo
    • 不确定是否支持客户分离

鉴于上面的列表,我倾向于 AtomSite、N2CMS、Orchard 或 BlogEngine.NET。如果我选择后者,我将使用 jitbit AspNetForum,它非常适合我的需求。

我可能更喜欢使用自定义 ASP.NET MVC 解决方案和单个组件,因为这可能会给我最大程度的控制,但另一方面,它会使网站主题化和集成更加困难。您尝试过哪些组合,哪些效果很好,哪些效果不佳?我在评估中遗漏了什么重要的东西?还有其他相关建议吗?

如果答案不仅仅是对您最喜欢的产品或做事方式的认可,而是可以帮助我根据上述要求选择或消除候选解决方案的内容,我将不胜感激。

【问题讨论】:

  • +1 我见过的最佳设计提案。我希望有人给你很好的反馈。我会进行更深入的研究,看看能否给你一些建议。
  • 谢谢,期待您的发言!
  • 是的,这是一个很好的简介。前几天有人试图告诉我他们的两句话简介是他们的“要求”文档,当我要求提供更多信息时他很生气。
  • 尽了最大的努力,希望我能在这堵文字墙中吐出一些有用的东西。
  • +1 谢谢,您的问题为我节省了一些最初的跑腿工作。我一直专注于 Atomsite 或 Orchard 在这两个方面与您有同样的担忧

标签: c# asp.net-mvc content-management-system components portal


【解决方案1】:

根据您指定的要求级别,我个人将不得不倾向于自定义方法。您可以聘请某人为您完成网站的设计(查看)部分,或者您可以从网站设计师那里从互联网上购买主题并根据自己的喜好对其进行自定义。 (有时只需从某个地方开始就足以进行中级定制)。

  • 多站点支持(使用单个域进行托管)

    • 您可能想要控制您的托管环境,无论是 VPS(虚拟专用服务器)还是专用服务器。这在共享主机上仍然可行,但不推荐。
  • 客户之间内容的水密分离

    • 您可能必须为每个拥有自己服务用户的客户生成一个唯一的应用程序池,以实现 100% 分离。
  • 跨组件/功能/SSO(单点登录)/单站点体验(共享页眉/页脚、统一导航、统一标签等)的完全集成

    • 这将是棘手的部分。 This Example 可能会在开发过程中为您提供一些有用的见解,但您将需要一个统一的登录服务并让所有站点都使用它或链接到它。
  • 易于开发和部署
    • 这就是棘手的地方。我认为开发的便利来自于你的背景。 MVC 在这方面绝对是正确的选择,了解很多关于在 MVC 中构建站点的正确方法将有助于这个过程。通过阅读社区博客和收听 HanselminutesDotNetRocks 等播客了解最新动态,这将帮助您了解最新、最强大的工具/技术,让您的网站快速有效地启动。
    • 部署是一个棘手的地方。 MSDeploy 仍然不存在。但如果可以的话,您可能会想提出一个 Dev -> Staging -> Release 发布结构,以便您可以在暂存(模拟生产)环境中测试您的代码。
  • 自定义逻辑将使用 C# 和 MVC 编写,任何产品都应支持这一点 我想保持控制
    • 如果您在 ASP.NET-MVC 中开发站点,您将能够构建不仅可以在您的站点中使用,还可以在您的自定义工具中使用的通用库。这将大大减少您的代码重复并有助于确保实现操作统一。 (一切都一样)。
  • 解决方案应该提供功能,但不妨碍(例如,不要强迫我使用愚蠢的习语,比如坚持为主键使用 GUID)
    • 虽然您可以在这种情况下进行控制,但我会强烈推荐 GUID 主键。这允许Merge Replication,它可以帮助您在出现问题时轻松恢复备份或使用故障转移数据库服务器。
  • 活跃的开发社区
    • .NET 有一个很棒的社区,(包括这个),如果你有礼貌地请求,你应该得到很多支持。
  • 没有一个人的努力
    • 不确定您的意思,除非您聘请帮助,否则您将成为单身人士,但只要花一点时间,即使是 2 个人也可以做大事。即使是一个人也能做大事,但您在这里运行的框架是由一个商业资助的庞大团队支持的。
  • 最近的源代码控制活动
    • 并不真正适用于 .NET,但您可能使用的许多库(NHibernate、MVC Contrib、AutoFac 等)将有大量活动并不断得到改进。
  • 合理的文档水平和成熟度
    • .NET 和为 .NET 开发的大多数生产级库(上面提到过)实际上都有相当程度的文档。仅 .NET 就有多种付费和非付费信息来源,而且大多数库(得到社区的大力支持并在 StackOverflow 上广为人知)
  • 不必是开源的
    • 寻找 LGPL 的支持库(即,您可以在商业软件中使用它,但如果您修改库,如果您发布二进制文件,则必须发布新的库代码。)您在这里非常安全,您的网站如果您使用这些库来支持您的开发,则不必是开源的。

嗯,那是我的 2cents。您所描述的项目是一项不小的工作,即使您使用预先构建的解决方案(主要是破解它以按照您想要的方式工作),您也会看到大量的工作。我想您最大的障碍将是预先完成的解决方案的 SSO 和安全性。并不是说不可能,只是很棘手,最终结果可能不是您想要的。

另外,请查看OpenID,它可能是将您的所有站点链接在一起的最佳解决方案,并且可以轻松移植大多数预构建系统以使用它。

【讨论】:

  • 伟大的 cmets,我在大多数方面都同意。 GUID:RedGate 具有出色的复制和备份工具,不需要 GUID PK。我发现它们在测试时很麻烦,如果在 web url 中使用它们会很丑陋。个人喜好,我猜:)
  • 只是想我也会澄清一下,因为从问题中可能不清楚。我确实认为自己在 MVC 开发和 Web 开发方面相当熟练,所以如果我选择编写所有代码,我相信我可以解决所有问题并实现我的设计目标。但是作为一个只想快速致富的懒惰的混蛋;)我希望不必重新发明轮子(毕竟,大多数解决方案将是司空见惯的功能),因此主要是在寻找有关产品的建议/可以帮助我更快实现目标的组件(或关于为什么可能不是这种情况的指导)。
【解决方案2】:

再看看 MojoPortal。 CMS 很棒,主要开发人员 Joe Audette 反应迅速。我安装了多个运行单个站点和多个站点的 CMS。

【讨论】:

  • MojoPortal 不支持构建 SaaS 解决方案,每个客户在登录后只能看到自己的数据。我也不喜欢添加功能的“数量超过质量”的方法 - MojoPortal 做了很多事情,但是大部分不是很好。开箱即用也不好看,尽管这可能是一个偏好问题。不过,未来需要注意一些事情。
【解决方案3】:

我倾向于基于 CMS 的解决方案。拥有经过测试和生产就绪的软件不仅可以减少开发时间,还有助于持续升级和减少错误数量。 如果你走这条路,你可能还想考虑Sitefinity。它不仅支持您所需的所有功能,而且基于.NET 构建并支持MVC 开发。该产品由 UX 工具制造商 Telerik 构建。

免责声明:我受雇于 Telerik。

【讨论】:

    【解决方案4】:

    我最近遇到了phpFox,这是一个社交网络/论坛/社区网站CMS。这可能对您有用,而且相当便宜。

    【讨论】:

    • 这是一个 PHP 解决方案,不管它有多好,对我来说都没有用。
    【解决方案5】:

    我们公司网站的解决方案已成为EBIZ CMS:功能齐全的网站,包括社交网络、在线商店、功能演示、论坛、创建 HTML 页面等等,包括维护专业技术支持,所以我们甚至不需要程序员帮忙安装,而且每月只需 9 美元!

    【讨论】:

    • 您选择CMS的原因是什么?
    猜你喜欢
    • 2011-01-08
    • 2011-03-21
    • 2011-09-07
    • 2010-09-10
    • 2019-07-21
    • 2013-06-18
    • 2015-11-13
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多