2010-03-11 63 views
0

我们正在开发一个在线订购网站,我们计划在这个意义上是完全灵活的布局可以改变,颜色,字体,并在页面中的组件(div)可以添加。内容管理系统内容需要驻留

在这种情况下,我们是否需要存储我们所有的查看代码

例如

<div id="MenuContent"> 
    <div> 
     <h4> 
      Your Order</h4> 
     <hr /> 
     <%if (Model != null) 
      { %> 
     <table width="100%"> 
      <thead> 
       <tr> 
        <th> 
         Item 
        </th> 
        <th> 
         Quantity 
        </th> 
        <th> 
         Price 
        </th> 
        <th> 
         Remove 
        </th> 
        <th> 
         Total 
        </th> 
       </tr> 
      </thead> 

......

数据库

,或者我们可以只存储DIV ID并基于该加载文件系统中可用的视图。 任何指针非常感谢。

回答

0

这真的取决于灵活性。如果yopu只想简单地应用站点范围的主题,那么您可以使用标准类名创建HTML代码并构建一个或多个组成您主题的CSS文件。然后添加一个新的主题,复制你的CSS文件并修改。

另一方面,如果您希望个人用户创建自己的外观,那么将其存储在数据库中将会更合适。

0

请说明你正在尝试做什么以及你想要做什么系统。

一般情况下,你不希望被保存HTML到数据库...

+0

为什么你声称在数据库中存储HTML不需要? – Sonny

+0

我需要的原因是为了让用户界面更加灵活。但我需要知道将内容存储在数据库中的不利之处。我们希望将所有视图和局部视图存储在数据库中。但是,至少不知道它的缺点是什么。 – lee

+0

这听起来像你正在考虑为每个用户在数据库中存储预生成的HTML,以便他们可以自定义某些页面的外观......是吗? 这会导致数据库中的条目非常多,并且每次用户请求页面时都会产生昂贵的I/O操作。 – MHarrison

0

什么李某试图做的是实际存储,否则这将是ASPX文件在他的数据库中的内容。如果您需要最大限度的灵活性以允许用户(或至少非开发人员)能够在不更改代码的情况下自定义网站,这可能是有益的。还要注意他的'文件'中有ASP.NET标记。通常,ASP.NET系统会在请求时从磁盘加载这些文件,并将其编译为CLR。编译完成后,对相同内容的进一步请求将引用编译的代码,而不是再次加载文件;至少在文件再次更改之前。这带来了一些需要克服的技术障碍,比如如何使系统能够覆盖在aspx文件中查找文件系统的内置行为,而不是从数据库中自己检索数据。网上有关于如何做到这一点的讨论。那么如何让系统仍然缓存已编译的程序集以及其他几个想到的问题。

但是,如果可以解决这些技术障碍,如果灵活性是最终目标,这看起来像是一个非常灵活的方法。就将数据存储在数据库中而言,即使有很多条目,这也是数据库的作用。 DB文件I/O可以通过缓存内容来缓解,因为任何高性能系统可能已经在使用其他内容。是否已有系统的例子将系统的所有用户界面存储为内容?我认为一些更灵活的CMS系统必须这样做。