4

只需阅读有关在 Web 应用程序项目中使用 codefile=somefile.aspx.cs 而不是 codebehind=somefile.aspx.cs 的可能性(在此处描述)。显然,这会导致文件仅在加载页面时编译,不再预编译(对吗?)。

在 Web 应用程序项目中使用 codefile 而不是 codebehind 是否有任何负面或意外的副作用?

4

1 回答 1

3

我认为,如果您的站点并非全部是其中之一,那么您可能会遇到可支持性问题。(代码文件或代码隐藏)

即,如果您试图找出您的生产站点上的问题,而您的错误处理告诉您在某个文件或命名空间中,您将不得不停下来检查您支持的每个文件和控件,然后再进行故障排除以查看是否该页面作为已编译程序集的一部分运行或从站点上的代码隐藏运行。

如果您尝试使用混合环境,也可能会遇到命名空间冲突或丢失的情况。

我在 CodeFile 中看到的优点:

  • 您的生产源代码可以放在您的生产网站上。如果代码全部编译在您的 bin 目录中的 DLL 中,则不能绝对保证您在开发环境或源代码管理中拥有的代码就是那里的代码。(当然应该如此,但如果一切都像它应该的那样,我们中的许多人就不会有工作来修复其他人的代码了!)
  • 对于更新,您只需推出单个文件,而不是整个程序集。
  • 您将能够在其他页面上进行开发,在重新编译和发布到生产之前不需要退出这些页面。

缺点:

  • 由于您没有推出已编译的程序集,因此您可能在单个文件中存在错误,除非有人访问每个特定页面或者您确定在部署之前进行编译,否则不一定会被捕获。
  • 您可能在代码文件中存在冲突的名称空间,这些名称空间可能永远不会被捕获,并可能导致混淆或错误。
  • 动态编译的性能问题
于 2012-05-17T17:32:04.460 回答