gpt4 book ai didi

ASP.NET 网站部署最佳实践资源建议

转载 作者:行者123 更新时间:2023-12-04 07:03:05 25 4
gpt4 key购买 nike

我已经浏览了相关问题,但没有一个向我提供我正在寻找的信息。

目前,我工作的团队会部署单个 .aspx(和 .aspx.vb)文件以进行错误修复/增强。我试图影响更改,因为我真的相信部署“整个编译站点”不太容易出错。由于这与工作方式相比发生了重大变化,因此我的建议遭到了重大阻力。

由于我的 google-fu 最近没有达到标准,我希望 SO 社区可以告诉我我不在我的摇杆上,并且移动单个文件没有任何问题,或者向我指出一些非常好的资源会让我提出更有力的理由。

编辑:

这些都是很好的信息,并加强了我已经提出的论点,有人可以反对另一方吗?

最佳答案

就我个人而言,立即回滚是最重要的。同样,在跟踪更改方面,网站项目非常困难。

你可以找到一个很好的详细比较here .我在这里复制这篇文章。

1) 部署。如果您需要就地部署,这个模型是完美的。但是,不建议这样做,因为您以明文形式公开您的逻辑。因此,任何有权访问物理服务器的人都可能会弄乱您的代码,而您永远不会注意到这一点。您可以尝试制作预编译的网站,但最终会得到很多 dll 和几乎不可触及的 aspx 文件。 Microsoft 认识到这一限制并发布了 Web 部署项目工具。

2)您需要跟踪您在本地更改了什么以及您上传到生产服务器的内容。没有版本控制。 Visual Studio 有 Web Copy 工具,但此工具无济于事。我必须构建自己的工具,该工具基于 Visual Source Safe 跟踪更改。

3) 当您按 F5 进行调试执行时,编译和执行整个项目只需 2 分钟。当然,您可以将调试器附加到现有线程,但这不是一个明显的解决方案。

4) 如果您曾尝试快速生成控件,您将遇到第一个无法解决的限制。如何引用其他页面和控件。页面和控件编译发生在每个目录的基础上。在最好的情况下,您将获得每个目录的程序集,在最坏的情况下,每个页面或控件都将获得自己的程序集。如果需要从控件或另一个页面引用另一个页面,则需要使用 @Reference 指令显式导入它。

因此对于,

customControl = this.LoadControl("~/Controls/CustomUserControl.ascx") as CustomUserControl;

你需要,

但是如果你想真正动态地添加一些东西并且不能放置所有合适的@Reference 指令怎么办?或者,如果您正在创建服务器控件并且它没有 ascx 文件,因此您没有放置 @Reference 的位置怎么办?由于每个控件都有自己的程序集,因此几乎不可能进行反射。

重新出现在 Visual Studio 2005 SP1 中的 Web 应用程序项目。他们解决了上面提到的所有问题。

1) 部署。每个项目只有一个 dll。您可以创建可重新分发的包和可重复的构建。您可以拥有版本控制和构建脚本。

2) 如果你做了代码背后的更改,你可以只上传一个 dll。如果你做了 aspx 更改,你可以只上传 aspx 更改。

3) 执行最多需要 2-3 秒。

4)整个项目在一个程序集中,这有助于引用任何页面或控件。结论。对于任何类型的严肃工作,您都应该使用 Web 应用程序项目。特别感谢 Rick Strahl 的精彩文章 Compilation and Deployment in ASP.NET 2.0。

关于ASP.NET 网站部署最佳实践资源建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1527530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com