2012-02-27 27 views
-1

可能重复:
What is the 'page lifecycle' of an ASP.NET WebForm?aspx页面是如何执行的?

我在.NET中研究了大量的文章对执行过程。我发现的是

语言代码(C#,VB,J#等)---->语言编译器---> MSIL代码-----> 现在这个MSIL代码是由Just-in这是CLR里面的时间

这个过程对于类库执行或windows应用程序或控制台应用程序是可以的,但是在asp.net中我们有一个.aspx页面+后面的代码(c#,vb等)... In那种情况下这个执行过程如何发生?

+0

从[faq] - “*你的问题应该是合理的范围,如果你可以想象一整本书能够回答你的问题,那你问得太多了。*”这类问题并不是很好适合这个网站。有很多书籍/文章/资源可以了解这个主题。当然,这只是我的观点。 – jadarnel27 2012-02-27 18:21:39

回答

3

ASP.NET将处理您的ASPX像这样的代码隐藏文件:

  1. 负载ASPX从磁盘
  2. 解析ASPX代码到代码DOM是可以通过可扩展钩子编辑
  3. 将该代码保存到磁盘上的C#文件中
  4. 使用csc.exe将此代码编译为程序集。/bin文件夹中的所有内容都可以作为参考。
  5. 加载组件。
  6. 加载所有仓组件。
  7. 在新编译的程序集中调用渲染代码。这将开始JITing和执行的通常过程。
+1

我认为必须有一个编译器来处理aspx页面,但是你说aspx和c sharp代码都是csc.exe ...请澄清 – 2012-02-27 18:19:51

+0

我改进了答案。我希望它有帮助。 – usr 2012-02-27 18:25:40

+2

他在这里有澄清 - 一个ASPX文件与后面的代码一起转换为C#(都是两个部分类形成一个完整的类)。然后编译器被用来创建IL代码。 – 2012-02-27 18:26:36

0

这可能是一个有点过分细讲这里,但你会想看看了ASP.Net页面生命周期:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

附加信息的建议被提意见: 实际前执行,IIS编译页面及其代码后面的代码或从编译缓存(ASP.Net动态编译)中检索编译的代码;更多资讯:

http://msdn.microsoft.com/en-us/library/ms366723.aspx

+0

页面生命周期不是编译生命周期。 – usr 2012-02-27 18:13:02

+0

@dirk - usr是对的...这不是我的问题的答案 – 2012-02-27 18:15:09

+0

编译生命周期可以在[这里]找到(http://msdn.microsoft.com/en-us/library/ms178473.aspx)(在该名称的部分)。 – 2012-02-27 18:15:44