代码之家  ›  专栏  ›  技术社区  ›  Niels Bosma

Umbraco:使用版本控制?测试/生产?

  •  29
  • Niels Bosma  · 技术社区  · 15 年前

    我正在寻找使用翁布里亚科为我的网站,到目前为止,我很喜欢它。

    我面临的一个大问题是,当数据库中存在大量数据时,如何才能对Umbraco站点进行版本控制?

    如何设置测试/开发环境并以简化的方式部署到生产环境中?

    今天(没有Umbraco)我用的是SVN。使用数据库的不同副本进行测试和生产。

    我建立的网站基本上是一个有完整后端的个人广告网站。是否需要将翁布里亚科表保存在单独的数据库中,并将我的业务数据保存在另一个数据库中?(由一堆用户控件访问)

    2 回复  |  直到 11 年前
        1
  •  33
  •   Dan Jacka    12 年前

    这是开始使用Umbraco时常见的障碍,答案是使用适合您的工具。

    然而,在Umbraco论坛上有很多关于这件事的讨论,请看这里:

    http://our.umbraco.org/forum/core/general/3619-Source-control-and-multiple-developers http://our.umbraco.org/forum/getting-started/installing-umbraco/2918-Update-an-Umbraco-website?p=0#comment11311

    要考虑的关键是内容和代码的描述。Umbraco中的大多数代码都存储在数据库外部,因此可以存储在Subversion或任何其他源代码管理平台中。例如,模板、XSLT、CSS、XSLT扩展名等都存储在文件系统中。

    页面内容和站点结构存储在数据库中。

    有一些灰色区域,尤其是字典,它可以包含各种各样的东西和内容。

    我们与Umbraco的合作方式如下:

    我们有单独的 Visual Studio Web Project 其中包含用于模板、XSLT、CSS、事件处理程序、用户控件等的文件夹。这些文件夹存储在SVN中。然后在构建这个项目时,文件被复制或编译,并复制到我们的umbraco站点的test/dev服务器实例。

    一旦更改获得批准,我们只需复制文件。

    如果需要在Umbraco实例之间同步内容,您可以使用Umbraco Pro(其中包含一个名为Courier的组件,正是为了实现此目的),或者在需要时备份实时数据库并还原到您的开发人员环境中(甚至使用复制)。

    我们尽量避免在测试/开发环境中编辑内容,因为在这种情况下,将内容重新合并到活动站点可能会很困难。然而,有时这是不可避免的。我们还尝试避免通过Umbraco界面编辑模板等。

    对于您最后一个问题,“我应该将我的业务数据存储在另一个数据库中吗?”的回答相当棘手,因为这在很大程度上取决于您将如何处理这些数据。如果内容最好存储在CMS中,则将其存储在CMS中;但是,如果它是严重的关系数据,而实际上不适合CMS,则将其单独存储。

    我们目前正在进行一个项目,其中数据存储在外部数据库中,并且我们已经将应用程序直接集成到了Umbraco后端。这是一项非常重要的任务(尽管通过用户控件获取一些数据很容易),您应该仔细考虑外部存储数据所需的工作量与CMS的内置功能以及您必须使用的预算/时间。

    如果您想使用Visual Studio模板,我们可以从 our website .

        2
  •  2
  •   csharpforevermore    11 年前

    我知道这已经得到了回答,但我只是想强调一个事实,内容和代码同步已经取得了很大的进展。例如: uSync uSiteBuilder 都是好看的包,允许CMS内容(如文档类型和数据类型)使用代码进行控制,从而控制版本。它们使用起来相当简单,当然,在使用之前请先备份。媒体通常使用 Export Media 尽管通常情况下,从默认位置将媒体文件夹保存在SVN中不是一个好主意。相反,将它放在自己的分支中,并作为虚拟目录宿主在IIS中。这样,您的媒体就独立于代码了。

    要想让大多数现代CMS的解决方案与版本控制完美配合,还有很长的路要走,尽管有很多事情正在进行中。Umbraco是一个伟大的CMS,拥有庞大的社区。