asp.net应用程序如何工作?

时间:2011-12-01 08:25:59

标签: asp.net iis

我对.NET开发很陌生,我只是想知道它是如何工作的?

我提到的要点是:

  1. 在开发ASP.NET应用程序时,在项目下我们有以下文件:
    • pagename.aspx
    • pagename.aspx.cs
    • pagename.asp.desiger.cs
  2. pagename.aspx页面添加某些功能后,假设我有开发所需的Web应用程序(这不是我关注的,开发的内容)
  3. 现在我要部署此应用程序,我使用Web部署MSI在名为folderdelopyed的文件夹中创建所需文件。
  4. 此文件夹包含支持此应用程序所需的文件,但有趣的是不包含pagename.aspx.cspagename.aspx.designer.cs个文件。
  5. 我的问题是如果folderdelopyed不包含.cs文件,那么如何运行我在此文件中编写的代码段PageName.aspx.cs

3 个答案:

答案 0 :(得分:5)

cs文件中的代码被编译成dll。

对于Web应用程序项目,这是一个dll

对于网站项目,这是每页的dll。

所有代码现在都在网站bin文件夹中的dll中。

您可以使用ILSpy(http://wiki.sharpdevelop.net/ILSpy.ashx)等工具查看dll内部并查看您的代码。

在过去,对于经典ASP,脚本曾经嵌入到您的页面中 - 混合了代码和HTML,并在运行时进行了解释。

我更喜欢新的方式: - )

答案 1 :(得分:3)

ASP.NET代码被编译为动态链接库文件,也称为DLL文件。

您在代码后面编写的代码(扩展名为.cs的文件)将被编译并放入整个新文件中,扩展名为.dll - 该文件复制到服务器,到您网站的 BIN 文件夹。

根据您选择的项目类型,可以为Web应用程序提供多个DLL文件,并在每个版本中进行更改 - 有关详细信息,请参阅dash's answer

在每个.aspx页面上,您已经引用了要使用的DLL文件,作为第一行。例如:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="pagename.aspx.cs" Inherits="MyNameSpace.pagename" %>

在此示例中, Inherits 部分确定要使用的DLL。怎么样?通过命名空间,这也是DLL文件的名称。

当浏览器请求上述.aspx时,.NET引擎将转到BIN文件夹,查找MyNameSpace.dll并在那里查找继承自的pagename类基础Page类 - 其余部分是ASP.NET页面的典型生命周期。

答案 2 :(得分:0)

让我说一些更神奇的事。

您也可以隐藏您的aspx文件。并将其内容放入dll中,与放入dll中的cs文件相同。

你可以使k aspx只包含ddl文件的地址而没有html正文:D

那很棒!你不仅可以隐藏你的cs文件,你也可以隐藏你的aspx文件:D