8

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

4

3 回答 3

8

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

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

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

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

于 2010-03-10T17:36:22.657 回答
7

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

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

  • .aspx 页面中的代码重复,很难更新网站的布局/行为
  • IIS 必须处理和不断重新编译许多额外的 .aspx 页面而产生的大量不必要的开销。
  • 搜索将是一场噩梦,因为内容将在files中。很难设置,而且永远不会有效。
  • 编辑、添加评论、审核将是 . . . 真的很难。
  • 安全将变得复杂
于 2010-03-10T17:34:12.190 回答
5

有两大类 CMS 发布平台:

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

.

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

如果您生成将动态呈现的静态文件(.aspx),那么混合系统对我来说是无意义的——它具有两者的缺点。

于 2010-03-10T18:05:03.570 回答