是否可以将Kentico webparts硬编码为布局?

时间:2015-09-22 03:52:51

标签: kentico

Kentico 8.2。

我有一个布局“主”文件 - 创造性地命名为Master.ascx。

我在布局中有三个Web部件区域:标题,主页和页脚。 Main只包含一个内容占位符,它被下一个布局覆盖 - home,standard,等等。

可以将网页部件拖放到“设计”标签上的页眉和页脚网页部分区域,但我不想出于以下几个原因:

  1. 哪些Web部件存放在数据库中哪个区域存储,而该数据库未在Git中进行版本控制。布局文件本身通过“在磁盘上存储CMS虚拟文件”选项进行版本化。
  2. 标题内的布局标记非常复杂,我最终需要为4个或5个Web部件设置4个或5个Web部件区域 - 或者我需要编写布局Web部件或拖动行布局/列布局等等 - 只需在定制标记内硬编码Web部件就更简单了。
  3. 我发现使用Visual Studio编辑纯文本文件比将Web部件拖放到某个区域要快得多,这同样适用于任何在此网站上工作的人。
  4. 哪些网页部分不会改变哪个网页部分 - 总是存在主要导航,分享在脸谱等等 - 包含的网页部分永远不需要以任何方式动态。
  5. 是否可以将网页部分硬编码到我的布局中?

2 个答案:

答案 0 :(得分:3)

要回答您的问题,请不要在布局中对Web部件进行硬编码。简单的推理是webparts不是布局的一部分,它们是模板的一部分。每个模板的webpart定义与模板一起存储在数据库中作为XML。您可以通过转到模板并选择Webparts选项卡来查看此内容,它将显示该页面模板上每个Web部件的所有XML。

了解您的4点积分来自哪里。你还需要考虑的是:

  • 当您需要/需要升级或应用修补程序时会发生什么?
  • 从客户端,内容编辑器和内容管理员的角度来看,拥有代码中的所有内容,使CMS变得毫无用处。
  • 如果您对物理文件中的所有内容进行编码,那么如果需要开发人员或每个请求的物理代码更改,那么拥有CMS就毫无意义

CMS的重点是动态和数据库驱动。并非所有东西都可以驻留在文件系统,数据库或代码存储库中。 Kentico拥有一些非常强大的开发人员工具,可以支持工作流程,版本控制和签入/签出。

我还启用了您的DBA,并确保他们在发生灾难时拥有有效的备份和恢复计划。

答案 1 :(得分:0)

这是不可能的,因为它违反了Portal Engine开发模型。如果您的主要问题是GIT中这些对象不可用,请考虑将虚拟对象(https://docs.kentico.com/display/K82/Deployment+mode+for+virtual+objects)保存到文件系统的选项,以便GIT选择它们。我还建议保持网站升级安全(例如通过使用Portal模型),因为下一版本将具有CI支持(将所有数据库对象保存到文件系统)http://www.kentico.com/product/roadmap这是由于将在2个月内发布