不开发动态生成aspx文件的“博客系统”的三大理由

时间:2010-03-10 17:25:23

标签: .net asp.net blog-engine

在这个question中,OP意味着他希望将他正在开发的博客系统建立在自动创建.aspx文件的基础上,每个新博客条目都有一个。在我对他的问题(与其他事情有关)的回答中,我告诉他我不鼓励他使用这种方法,但没有给出任何真正的理由。他现在想要理由为什么它不是一个好主意,我正在使用这个问题来看看社区是否能够提出足够令人信服的理由让他使用另一种方法,例如使用dbms,代码-reuse,url-rewriting,MVC,什么不是。

3 个答案:

答案 0 :(得分:8)

为每篇文章生成单独的ASPX文件是对服务器资源的低效使用:

  • 每个新的aspx文件都会被编译为DLL。这意味着通过重新创建包含此新DLL的新AppDomain来编译文章+内存开销的额外执行时间开销

  • 可以配置ASP.Net来编译单个DLL文件中的所有ASPX文件,但情况会更糟:每次生成新文章时都必须重新编译所有文章

    < / LI>

一个更可接受的解决方案(但即便如此,不是我推荐的解决方案)也是生成静态.html文件。

答案 1 :(得分:7)

.aspx页面用于动态生成html(和javascript等)。相同的一小组.aspx页面应该为所有博客条目生成输出(存储在一系列字段中)或(出于性能原因)预生成的html可以存储在db(最佳)或.html页面中。 / p>

为每个博客条目生成.aspx页面,生成用于生成内容的工具。任何正常情况都没有意义。该系统将有不必要的开销。 如果不知道他的确切计划,我仍然可以确定至少某些以下适用:

  • .aspx页面中的代码重复,很难更新网站的布局/行为
  • IIS必须处理并不断重新编译许多额外的.aspx页面的大量且不必要的开销。
  • 搜索将是一场噩梦,因为内容将位于文件中。难以设置,永远不会有效。
  • 编辑,添加评论,审核即可。 。 。真的很难。
  • 安全性会很复杂

答案 2 :(得分:5)

有两种广泛的CMS发布平台:

  • 静态生成内容的人。某些发布平台静态生成内容。在这种情况下,生成的文件不是动态的,应该是HTML文件。系统必须能够重新生成所有内容,例如,如果模板已更改。曾经有一段时间这个解决方案有一些优点:
    • 安全性:安全性在文件系统级别进行管理
    • 搜索:全文搜索很简单,因为所有内容都是基于文件的
    • 性能:使用较少的CPU。
    • 互动:不可能
    • 内容传播:现在建立或选择此类平台的唯一原因是,内容需要通过网络以外的其他渠道传播,例如CD,可下载期刊等

  • 动态呈现内容的人。对于网站,最简单的方法是动态呈现页面。
    • 安全性:可以使用复杂方案等检查安全性。
    • 搜索:搜索系统现在已经发展并与异构数据源很好地集成:可以是数据库,文件等的全文。
    • 效果:这不再是一个问题。
    • 互动性:这样更灵活:内容可以适应访问用户,人们可以评价页面,添加评论等。
    • 内容传播:当然需要在线

混合系统是否生成静态文件,动态呈现(.aspx)对我来说是无意义的 - 它有两者的缺点。