3

我们有一个Web应用程序,其中包含系统操作员可以更改的一组内容(例如新闻和事件)。有时我们会发布新版本的软件。该软件被标记并存储在颠覆中。不过,我对如何最好地控制可能独立更改的内容有点困惑。人们用什么机制来确保内容的存储和版本化的方式可以重新创建网站,或者至少受版本控制?你如何为托管内容提供应用程序

回答

0

将所有内容都保存在数据库中,并为每个事务提供一个时间戳。这样,如果发生最坏情况,您可以保持标准的数据库备份并在任何你想要的日期加载网站内容。

1

当你识别两个组的其他有自己的生命周期(软件文件一侧的文件,“新闻和事件”,你知道:

  • 你不能在一起versionned他们同时
  • 你不应该把相同的标签

您需要separatly保存“新闻和事件”的文件(无论是在VCS中或者在DB像伊恩·雅各布暗示,或在CMS - 内容管理系统),并找到一种方法将两个链接在一起(一个ID,一个时间邮票,元标签,...)

不要忘记你不仅在生命周期中讨论两套不同的文件,而且还根据它们的性质讨论不同的文件集:

通过S.Lott

  • 软件文件考虑这太问题“Is asset management a superset of source control”中介绍的术语:基础设施信息,那就是“代表的企业信息资产的处理”。您的代码是该资产的一部分,由VCS(版本控制系统)作为配置管理规范的一部分进行管理。
  • “新闻与事件”:企业信息,即数据(未处理);这经常在内容管理器和关系数据库之间分开。

因此,不是所有的事情都应该在Subversion中结束。

0

我想部分答案取决于你使用的是什么样的CMS,以及你的网络应用是如何设计的,但总的来说,我认为新闻项目或事件等数据是“内容”。换句话说,它不是你的应用程序的一部分 - 这是你的应用程序处理的数据。

当然,您的CMS代码和您的应用程序代码之间会存在版本控制问题。你可以通过定义两者之间的接口来管理这个。就我个人而言,我会将数据作为XML发布到Web应用程序中,这使您可以使用XML模式来准确定义CMS需要生成的内容以及Web应用程序应该处理的内容。

这应该意味着,Web应用程序中的大部分更改都可以在数据呈现没有相应更改的情况下进行。当功能需要更改时,您可以创建该模式的新版本并继续取得进展。在这种情况下,我会用Web应用程序代码检查模式,但是YMMV。

这并不容易,如果您需要CMS中的其他数据字段,它会变得更加复杂。期望计划一个相当复杂的发布过程(也取决于您的Dev-Test-Acceptance-Production场景的复杂程度)。

如果您不使用CMS,那么您应该考虑它。 (当然,如果操作很小,它可能仍然属于手工操作可接受的范畴。)将原始数据放入版本控制系统并不能解决问题 - 您需要能够控制您的数据发布到Web应用程序的格式。几乎可以肯定,这种格式应该是用于软件消费的东西,因此通常不适合写新闻或事件的人进行手动编辑。

相关问题