日期:2014-05-17  浏览次数:20766 次

【100分】求助!关于代码写哪里的问题!菜鸟提问
看别人的代码。有的人在aspx页面这样写

<script runat="server">
    protected void btnButton_Click(object sender, EventArgs e)
    {
         //事件
    }
</script>


这样的aspx直接替换到服务器上就能使用,并没有生成额外的DLL。

而我把 btn的事件写在后台,单独的CS页面里,如果要修改,必须要重新编译,替换DLL才能使用。

问题1 这两种写法有什么不同?

2 不需要编译,只要替换就能使用的这种写法 效率是不是比写在后台单独CS页面中高?

------解决方案--------------------
Code Behind就是所谓的代码分离,自从Microsoft公司推出了ASP.NET以后,Code Behind就是一个热门的话题。在一般的ASP.NET文件中,Code Behind主要是用二个文件来创建一个ASP.NET的页面,其中一个是设计文件,一般以.aspx或者.ascx做为扩展名,而另外一个是程序代码文件,一般以.vb或者.cs做为扩展名,其程序设计语言主要是VB.Net或者是C#。3 ^* P* x5 C& l0 n" ?
 
  Code Behind优点
 
  用过ASP编过程序的人都知道,ASP程序是把界面设计和程序设计混合在一起的。因此当程序设计人员要修改应用程序界面布局的时候,就往往需要更改大量与界面无关的代码,对于一个小程序,工作量不是很大,如果对于代码量很大的程序,就是一项工作量不小的事情。而Code Behind把界面设计代码和程序设计代码以不同的文件分开,对于代码的重复使用,程序的调试和维护都是革命性的。还有一点是,当你发布你的网站的时候,你就可以利用这种技术来有效的保护你的代码。这对于程序的安全性是一个提高。
------解决方案--------------------
DLL 效率高。 aspx不推荐,对于简单的页面凑合可以。 如果过于复杂代码也一大堆 自己维护也不方便。
------解决方案--------------------
这些代码也可以写到cs文件中,不会生成dll,这是aspx页面的服务端代码
------解决方案--------------------
1.有不同 ,页面生成类不一样  不过对你来说 没啥不同

2.效率没区别 只是工程性不同

3.我是来接分滴
------解决方案--------------------
通用的做法还是放到后台写
------解决方案--------------------
Code Behind就是所谓的代码分离,自从Microsoft公司推出了ASP.NET以后,Code Behind就是一个热门的话题。在一般的ASP.NET文件中,Code Behind主要是用二个文件来创建一个ASP.NET的页面,其中一个是设计文件,一般以.aspx或者.ascx做为扩展名,而另外一个是程序代码文件,一般以.vb或者.cs做为扩展名,其程序设计语言主要是VB.Net或者是C#。3 ^* P* x5 C& l0 n" ?
 
  Code Behind优点
 
  用过ASP编过程序的人都知道,ASP程序是把界面设计和程序设计混合在一起的。因此当程序设计人员要修改应用程序界面布局的时候,就往往需要更改大量与界面无关的代码,对于一个小程序,工作量不是很大,如果对于代码量很大的程序,就是一项工作量不小的事情。而Code Behind把界面设计代码和程序设计代码以不同的文件分开,对于代码的重复使用,程序的调试和维护都是革命性的。还有一点是,当你发布你的网站的时候,你就可以利用这种技术来有效的保护你的代码。这对于程序的安全性是一个提高。
------解决方案--------------------
都会产生DLL文件的,即使写在aspx里面也是的,在首次加载的时候,会自动编译到dll文件,只不过那个dll文件不是在你的网站目录,而是在系统目录下面,你可以从网站的错误信息找出那个路径。
另外在WIN7的IIS配置中,你可以找到一项叫“.NET编译”的选项,这更加说明了aspx文件在加载的时候要编译一次,产生dll文件。题外话,jsp的网站也是这样的,首次访问编译或有改动的时候自动编译。
------解决方案--------------------
引用:
都会产生DLL文件的,即使写在aspx里面也是的,在首次加载的时候,会自动编译到dll文件,只不过那个dll文件不是在你的网站目录,而是在系统目录下面,你可以从网站的错误信息找出那个路径。
另外在WIN7的IIS配置中,你可以找到一项叫“.NET编译”的选项,这更加说明了aspx文件在加载的时候要编译一次,产生dll文件。题外话,jsp的网站也是这样的,首次访问编译或有……


是这样的!

你可以修改code-behind文件中的代码,也是可以直接执行的,无需编译(自动编译)。(除非你不是使用网站的web site工程,而是web application工程)

想知道aspx文件编译到哪里,以及想看看源代码,你可以在文件开头第二行以后写
<script runat="server">

啊手动阀沙发沙发

</script>
这种乱码,然后直接点击鼠标右键,选择“在浏览器上查看”。这时候,asp.net会运行代码生成器将aspx生成源代码并编译成为dll。随后,你可以看到asp.net给出的信息页面,页面上有两个链接:

    1. 显示详细的编译器输出
    2. 显示完整的编译源

这可以作为研究asp.net机制的一个工具。你可以由此懂得aspx页面到底是怎么回事。
------解决方案--------------------
从编译命令 csc.exe 所标记的dll的输出路径,你可以看到dll文件到底输出到哪里。

从编译源,你可以看到aspx到底是如何继承code-behind代码中的class的,以及如何根据各个asp.net控件而生成代码的。看懂系统的代码,才是专业开发人员。有些人说“走个纯业余人员已经很不错了,我干嘛要多问一个‘为什么’呢?”,这就是asp.net有点“伤不起”的地方(惯坏了一些人)。