在我工作的地方,我们做了非常多的非常小的ASP.NET应用程序,并且已经发生了几次以预编译格式部署网站,并且需要更改应用程序,但源代码中可用的代码版本控制已过期,开发人员无法使用。该应用程序的DLL必须反编译并一起黑客入侵。
理想情况下,开发人员不会通过测试和生产来推动更改并跳过检查更改,我们已经对我们的策略进行了更改以防止这种情况发生,但我想知道是否在服务器上编译站点的开销每当应用程序池重新启动都是一个很大的问题,我们应该避免将代码直接上传到服务器。如果我们可以下载实时源,那么检查源代码管理中的版本与实际的实时版本会更容易。
VS编译VS直接上传到服务器并在那里编译它们有什么好处?
我不同意这一点给出的大部分答案。通过临时发布文件进行预编译有许多优点,其中最重要的是生产和测试环境中的代码或多或少保持同步。预编译可确保您测试的代码是生产代码 一切 时间。
您遇到的问题不是预编译与首次运行编译之间的问题。相反,它源于您正在使用的源控件类型。如果我不得不猜测(我这样做),我会说你正在运行Visual SourceSafe。如果您要切换到使分支和合并变得微不足道的源控制系统,那么您可以将代码分离 stable
和 development
分支机构。错误修复发生在 dev
分支(然后合并回到 stable
分支一旦验证)。这样,未经测试或未准备好的黄金时间代码不会在生产服务器上结束,而且您总是拥有该代码的副本 stable
开始工作。
首先想到的是:
- 商业秘密问题
- 安全问题
- 邋Joe Joe Moe(Lazy,Careless和Pitiful想成为开发者)
Ad Hoc Hacking Code失控。
- 预编译 代码以托管格式安全有效地在.Net Framework上运行。
- 未编译 代码由新手部署,他们没有花时间考虑与不安全代码相关的许多问题,这些问题对于最终用户来说效率较低。
终端用户 是 赌注持有人 并且是开发人员的目标 信托责任。 开发商 应该利用有机会提高产品的效率。
免责声明:这些评论是“按原样”陈述的,如果你拼写检查我,我不会给出一个该死的。
此致
DrFunkie
Bad Speller,但该死的好开发者。
:)
从纯粹易用性的角度来看,我确实喜欢将源文件上传到服务器而忘记了预编译。
这就是我为我管理的所有网站所做的工作,即使是大网站。我确实习惯于点击应用程序中更重要的部分来确保一切正常(并且在我使用它时编译它们)。
这是另一个想法。如果网站是公开的,你可以让 w3c链接检查器 松散的。这将具有编译它命中的每个页面的效果。无论如何要做到这一点是件好事,以确保您没有任何断开的链接。
简单地说,我认为这些例行检查几乎消除了用户首次访问编译速度慢的问题。因为无论如何这是一个很好的例程,它对我来说效果很好。
这取决于应用程序的大小和使用频率。如果它被定期使用以至于应用程序池只在一天结束时被回收,那么早上第一次启动时的短暂等待可能是值得的。如果它每30分钟才被击中一次,每次强制重新编译,那么可能值得进行预编译。
当然,如果它是一个非常大的应用程序,需要一段时间才能在第一次运行时编译,我会倾向于预编译,特别是如果它没有得到持续使用。
主要优点是在webserver上编译性能。它也保护你的代码,因为从汇编中读取代码更难:-)
我没有预编译上传文件:
这样,由于我的代码非常错误,我可以直接从服务器使用Notepad ++来纠正它
此外,Visual Web Developer 2008(免费版)没有编译选项:-P