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

Kla*_*sen 8 .net asp.net blog-engine

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

cka*_*ras 8

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

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

  • 它可以配置ASP.Net编译在一个DLL文件中的所有ASPX文件,但会更糟:所有文章将产生一个新的文章,每次重新编译

一个更可接受的解决方案(但即便如此,不是我建议的那个)将生成静态.html文件.


Pat*_*her 7

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

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

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


ewe*_*nli 5

CMS发布平台有两大类:

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

.

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

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