在服务器上保留ASP .NET代码隐藏文件?

时间:2010-09-21 04:30:29

标签: c# asp.net

我正在继承一个Web应用程序,之前的程序员将他的所有代码编译成.dll。服务器上不存在.cs文件。

在以前的项目中,我总是上传.aspx文件和相应的.cs文件。这对我来说从来都不是问题,我一直认为这是标准程序。我错了还是只是偏执狂?

6 个答案:

答案 0 :(得分:3)

Will,我认为将代码预编译到dll中是很常见的。然后代码暴露在潜在的安全漏洞中。这也提供了许多优点,包括更快的初始响应时间,错误检查,源代码保护和高效部署。这在网页和代码文件频繁更改的大型网站中尤为重要。

答案 1 :(得分:2)

将源代码作为项目的一部分,不一定是最好的源代码管理过程。有工具可供选择。

此外,预编译源代码并非与众不同(这是Visual Studio中的Web Application project rather than a Web Site project),并且有很多好处。

请注意,这不会让你错误偏执。

答案 2 :(得分:0)

这两种策略都有很好的理由,你必须弄清楚什么才能最适合你的环境和应用程序。

在某些方面,如果您担心某人意外地在服务器上进行更改但未检查更改为源代码管理,则最好对其进行预编译。如果您没有预编译,如果您的服务器上没有更改控制,则可能很难确定谁“意外”进行了更改以及未经检查的原因。

另一方面,如果您不进行预编译,则可以更直接地进行部署。

只需对这两种策略进行一些研究,然后决定哪种方法最适合您的情况。

答案 3 :(得分:0)

正如Nader所指出的,在Web应用程序中,根本不需要CS文件。由于保护这些文件是IIS请求管理的核心功能,因此不会意外地提供源文件的巨大风险。但是,通常不要将它们部署到生产Web服务器上。

在任何情况下,源文件应至少始终备份在非Web服务器的位置,并且应尽可能源控制。我看到太多的网站丢失了源文件,因此网站没用。

答案 4 :(得分:0)

就像上面所说的那样,将源代码编译成DLL被认为是最佳实践。

如果你想看到你留下的DLL的代码,有一个方便的(和免费的!)工具叫做Reflector(如果你已经得到它就道歉)

http://www.red-gate.com/products/reflector/

只需加载DLL然后反汇编以查看源代码。

答案 5 :(得分:0)

Web Application Projects编译成.dll并在服务器上不留源。

Web Site Projects将所有源部署到服务器。

这是一场最好的宗教战争。谷歌会向你提出许多不同的意见,所以我不会对你发表自己的意见。