日期:2014-05-18  浏览次数:20519 次

请了解asp.net运行机制的朋友进来帮忙看一下.
许多资料上说:asp.net的框架是这样执行的如下(例如用的是C#语言):
<1> 经过C#编译器生成程序集(*.exe/*.dll)
<2> 再由公共语言运行库(CLR)执行程序集--> 本地代码.
想问一下,如果用一个记事本新建一人*.cs文件内容如下:
using   System;
class   A
{
    public   static   void   Main()
      {
            Console.WriteLine( "你好 ");
      }
}
之后在DOS下执行:csc   *.cs   文件执行时会生成*.exe程序集,如果此时在DOS中执行刚刚生成的*exe文件,会输出 "你好 ".想问一下,此时的工作流程是什么样的啊?此时生成的*.exe文件,是C#编译器生成的程序集吗?我在dos中调用   *.exe是不是没有经过CLR啊?
还有文件开头引用的命名空间using   System是C#编译器的命名空间,还是netframwork的命名空间啊?


------解决方案--------------------
1。
仿佛与 ASP.NET 没有直接关系

2。
csc *.cs 文件执行时会生成*.exe程序集
==========
此时的 exe 包含的是 .net 中间语言IL, Intermediate Language, MS 的汇编语言

3。
此时生成的*.exe文件,是C#编译器生成的程序集吗
========


4。
我在dos中调用 *.exe是不是没有经过CLR啊
========
当然经过,没有经过你怎么看到 你好 二字?

此时,CLR 加载 exe 程序集,并执行即时编译,将 IL 编译成机器语言,最后执行


5。
还有文件开头引用的命名空间using System是C#编译器的命名空间,还是netframwork的命名空间啊?
==========
是后者

C# 自身没有类库,使用 .net fx 的类库


6。
欲了解详细信息,建议参阅

《.NET 框架程序设计》 Jeffrey Rechter