请了解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