我有一个小的内部应用程序,我反对自己为什么我不应该把整个源文件夹复制到生产中,因为应该发布,它将。cs文件编译为。dll。
但是我想不出任何实际的好处,除了减少对生产进行直接逻辑改变的诱惑。你觉得呢?
它消除了在生产中只改变一件小事的诱惑…
同时,它保护代码免受恶意更改,它在"构建"one_answers"部署"之间增加了额外的步骤,这可以用作自然的QA减速带,它增加了启动时间和其他十亿件事。
主要有两点:
- 正如antisanity所指出的,它可以让你验证你网站上的所有页面都是真正编译的,这对在它们发展到很远之前捕获一些错误有很大的帮助。
- 无论如何,网站最终会在第一次访问这些文件时编译它们。通过预编译它们,您将节省第一次加载时的时间,这将使您的应用程序感觉对一些用户的响应更快。
嗯,只有当你只讨论视图时,我才同意你的观点。如果你说的是控制器,我猜你需要编译它们才能运行:)。
好的,不开玩笑,我支持一个完整的二进制部署,主要用于:
- 确保我的代码编译(至少)
- 加速视图生成(或第一次编译)
- 简化补丁管理(我只提供一个dll,而不是整个web应用程序)
对
m .
嗯,首先……它可以确保你的网站编译。
除此之外,查看Hanselman的Web部署做得很棒:如果你正在使用XCopy,你做错了
发布应用程序的原因有很多:
- 性能会更好;
- 你知道代码可以编译;
- 它更干净(没有
.cs
文件杂乱的文件夹); - 不公开源代码带来的一些安全好处;
- 您可以将应用程序打包以部署到测试、登台和生产