【问题标题】:Sitefinity and custom developmentSitefinity和定制开发
【发布时间】:2011-11-12 10:21:33
【问题描述】:

我们正在考虑在很短的时间内购买 Sitefinity(或 DotNetNuke),但有一个问题我无法快速找到答案。 (I have a separate but similar post with DotNetNuke as the focus, if you can answer that better or in addition.)

我们目前根本没有使用任何 CMS,并且我们有一些自定义开发不会因为我们为我们的部分或大部分网站使用 CMS 而消失。

我们的定制开发是 c# ASPX,带有站点主页面和嵌套的站点主页面。这些自定义应用程序在我们的网站中不拥有自己的顶层,而是属于一个分支,通常是向下一层或两层(例如,http://www.contoso.com/branch/app/default.aspx)。

  • 在 CMS/自定义“混合模式”中通常如何配置 Sitefinity?例如,Sitefinity 是安装在网站的“顶部”,还是安装在网站的“需要的地方”。
  • 在混合 CMS 和自定义 Web 应用程序时,这有什么关系?
  • CMS 界面是否允许添加这些自定义应用程序,还是您只需转到 Web 服务器并将它们添加到结构中?
  • 从阅读其他帖子看来,我们可以创建自己的自定义 c# 模块,并让 CMS 编辑器“插入”页面上的模块。有人可以帮我确认一下吗?

如果我没有提供足够的细节,请随时询问更多。

【问题讨论】:

    标签: content-management-system sitefinity


    【解决方案1】:

    我们在根目录安装了 Sitefinity,其中包含大量包含自定义页面的子文件夹。我们通常构建一个用户控件,将其添加到 sitefinity ToolboxesConfig.config 文件,然后将其拖放到 sitefinity CMS 页面中。我相信这就是您所说的让“CMS 编辑器在页面上放入模块”。

    我们还有作为页面模板导入 Sitefinity 的主/子页面,它们运行良好。您还可以从任何 CMS 页面链接到您自己的子文件夹中的常规 .aspx 页面,并在那里实现使用 sitefinity API 的代码,但我们个人发现这更加棘手,并尽可能远离这种方法。

    因此,简而言之,自定义代码相对容易集成到 sitefinity,只要您可以将其压缩到用户控件或母版页中即可。

    免责声明:这一切都是通过常规 Web 表单开发完成的。我不确定 MVC 站点将如何与 Sitefinity 交互(我相信它无论如何都是使用 MVC 架构本身构建的)。

    我不确定的部分问题是关于嵌套分支中的自定义 web 应用程序。我建议安装 sitefinity 的试用版并尝试将单个分支集成为原型。这可能需要一天的时间,但值得知道 sitefinity 路线是否会让您心痛。

    【讨论】:

    • 小修正 - Sitefinity 目前基于 WebForms 构建。他们为正在创建的网站提供了一个 MVC 选项,但它没有 WebForms 版本的所有小部件和工具(但是,看起来Project Feather 可能会纠正这个问题并有一些其他好处。)
    【解决方案2】:

    完整的免责声明:我在 Sitefinity 工作。

    首先,我要说的是,在 Sitefinity 的整个历史中,可扩展性和开发人员友好性一直是我们的首要任务。我们尝试创建一个使用 ASP.NET 开发人员熟悉的概念并在其之上构建的 CMS。

    现在让我来看看你的每一个观点。

    • 您可以随意组织 Sitefinity 部署。对于子应用程序,您可以在 IIS 中创建虚拟目录并在每个目录中部署单独的 Sitefinity 实例,或者您可以使用 CMS 来执行子应用程序。在 CMS 中,它们可以是单独的页面分支,应用单独的模板,感觉就像单独的站点。您仍然可以通过一个界面管理它们。您可以选择一种方法。
    • Sitefinity 是一个普通的 ASP.NET Web 应用程序,其 CMS 程序集位于 BIN 文件夹中。您可以在 Visual Studio 中打开项目并像普通的 ASP.NET Web 应用程序一样运行它。从开发人员的角度来看,自定义应用程序和 Sitefinity 应用程序之间没有区别 - 它们只是 ASP.NET 网络应用程序。
    • 如果您遵循在根目录中安装 Sitefinity 然后使用 CMS 创建子应用程序的方法,您可以通过 UI 来完成。如果您选择运行单独的虚拟目录,则必须手动上传文件。此外,Sitefinity 有一个内置的文件资源管理器,您可以使用它来管理服务器上的文件。
    • 您所指的模块在 Sitefinity 中称为小部件。对于开发人员来说,它们只不过是自定义的 ASP.NET 控件和用户控件。 Sitefinity 页面编辑器 UI 允许您将小部件放在页面上的占位符中并配置它们的属性。占位符在母版页(普通的 ASP.NET 母版页)中或通过 UI 定义。 创建自定义小部件非常容易。这是一个快速入门:http://www.sitefinity.com/blogs/gabesumner/posts/11-08-29/ldquo_hello_world_rdquo_guide_to_custom_sitefinity_widgets_amp_controldesigners.aspx

    我们也有模块,它们是一些更复杂的概念。他们管理数据,拥有后端和前端 UI。我鼓励您通过我们的blogsdocumentation 了解更多信息。

    我们还有一个 SDK,其中包含用于扩展 CMS 的源代码示例。

    【讨论】:

      【解决方案3】:

      您可能想看看支持类似场景的 Kentico CMS - 您可以轻松混合自己的 ASPX 页面和 CMS 控制的 ASPX 页面,因此非常灵活。

      【讨论】:

        猜你喜欢
        • 2011-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        • 1970-01-01
        相关资源
        最近更新 更多