16

我需要一些帮助来确定为我的最新项目使用 CMS 或门户解决方案是否是个好主意,该项目(当前)是一个必须为多个客户(作为公司或其他一些实体)提供服务的 ASP.NET MVC 应用程序用户列表)从单个安装(即SaaS解决方案)。

除了包括文档管理/发布在内的核心功能之外,我还需要提供基本的社交功能(例如博客、论坛、图库、投票等)。然而,内容必须只对其所属的客户可见,而我对一堆 CMS 和门户解决方案的评估并没有说明它们是否支持这一点。他们非常关注单用户安装,关于如何与现有 MVC 解决方案集成的文档非常少。

本质上,我正在寻找一些指导来帮助我放弃死胡同(产品不符合要求、施加太多限制、不成熟等),并在项目走得太远之前找到未探索的选项。

我对架构的要求包括:

  • 多站点支持(使用单个域进行托管)
    • 客户之间内容的水密分离
  • 跨组件/功能的完全集成
    • SSO(单点登录)
    • 单站体验(共享页眉/页脚、统一导航、统一标签等)
  • 易于开发和部署
    • 自定义逻辑将使用 C# 和 ASP.NET MVC 编写,任何产品都应支持这一点
  • 我想保持控制
    • 解决方案应该提供功能,但不妨碍(例如,不要强迫我使用愚蠢的习语,比如坚持主键的 GUID)
  • 活跃的开发社区
    • 没有一个人的努力
    • 最近的源代码控制活动
    • 合理的文档水平和成熟度
    • 不必是开源的

我花了相当多的时间评估产品和组件,我将在这里简要分享:

  • 乌姆布拉科
    • 不支持 ASP.NET MVC(但是,因为有人必须另外评论)
    • 强大的社区支持,积极发展
    • 似乎需要做很多工作才能开始
  • 咕咕
    • 没有源活动(近两个月没有更新)
    • GPL 许可?(需要允许闭源应用程序的东西)
  • N2CMS
    • 部分 ASP.NET MVC 支持
    • 每个客户都必须有一个单独的域
    • 有限的源活动(不死但也不活跃)
  • 果园
    • 微软赞助(这意味着它可能过度架构、代码臃肿且速度缓慢,尽管它确实有一些知名且受人尊敬的贡献者/领导者)
    • 使用 ASP.NET MVC 构建
    • 看起来很有希望的功能(但在这个阶段不太可能稳定)
  • 原子站点
    • 感觉相当成熟并且有不错的文档,尽管有漏洞
    • 使用 ASP.NET MVC 构建
    • 有限的源代码活动,单一开发者
  • 魔力门户
    • 看起来不错的门户,但可能需要将自定义逻辑构建为产品周围的模块(我希望尽可能避免这种锁定)
  • DotNetNuke (DNN)、CommunityServerMicrosoft Office SharePoint Server (MOSS)
    • 绝对不是我的那杯茶;)
  • 博客引擎.NET
    • 成熟且功能齐全
    • 没有 ASP.NET MVC 支持
    • 集成是可能的,但并非没有大量的 Web.config voodoo
    • 不确定它是否支持客户分离

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

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

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

4

5 回答 5

5

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

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

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

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

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

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

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

于 2010-07-01T00:32:01.797 回答
0

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

免责声明:我受雇于 Telerik。

于 2013-10-27T14:51:02.233 回答
0

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

于 2010-07-01T16:46:09.223 回答
-1

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

于 2010-07-03T02:12:32.343 回答
-1

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

于 2012-01-19T09:28:43.953 回答