愤怒的大鸟 发表于 2015-1-18 11:17:53

ASP.NET网页设计谈.NET,由编译器入手下手谈起仓酷云

听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)(这系列文章次要以我的念书条记为基本写成的,因而大概腾跃性对照年夜。我想写的工具不但是包括一些结论,还包含了本人在进修时的所思所想。个中一定有不当的地方,但愿能失掉斧正。)
编译器是甚么?这个成绩在我自学的入手下手阶段切实其实困扰了我好久。复杂的说,就是把初级言语翻译成初级言语的工具。初级言语我喜好叫“源代码”。就好像一样平常的翻译一样,翻译的工具大概会夹带写译者的设法,以是你写的工具和实践被翻译出来的工具一定就是一样的。好比说一个delegate关头字,经由C#编译器编译以后,在IL中就体现成了一个有着4个办法的类,并且该类切合异步编程模子的划定。实在另有良多中央带有译者的头脑,好比对字符串常量"a"+"a"编译成"aa"(非字符串常量不会毗连),轮回的时分用一个一时变量来取代对.length属性的会见(由于属性回根究竟仍是属于办法,会见的价值要年夜),和对null的处置,对闭包的处置等等……懂得译者(编译器)的设法,挺主要。
从C#的源代码到呆板代码,两头要经由两个编译器。一个就是把C#源代码编译成托管模块的C#编译器。另外一个就是作为CLR一个组件的JIT编译器。每经由一次编译,程序的言语就更初级一步。
弄分明了有两个编译器的存在是了解接上去的内容的第一步。C#编译器天生的是IL言语和元数据。只需你喜好,你也能够本人做一个编译器,只需天生的是IL言语和源代码,都叫面向CLR的编译器,也就是能够经由过程CLR来实行。为何必要经由过程CLR来办理托管模块的实行?由于IL固然比C#源代码初级些,可究竟仍旧不是呆板言语,呆板仍旧不睬解怎样去向理IL代码。这时候候,就必要一个程序把IL翻译成呆板能懂的CPU指令,而这个程序就叫做CLR。固然,这只是CLR的部分功效。以是,你能够把它当作一种特别的程序,CLR是必要运转的。托管代码都必要在CLR下面运转,由于没有CLR的JIT立即编译,呆板是不懂你的程序的。以是假如你用C#编写的Winform程序(程序集),固然是以.exe开头,但是假如没有安装.NETFramework,是不克不及运转的。既然CLR必要运转,那末它就会被加载到内存傍边,这个事情的详细流程前面会讲到。
可是到这里我们能够猜出来加载按次
1.Windows创立历程加载CLR
2.CLR加载我们编写的程序集
另外一个简单弄混的观点就是”大众言语运转时“和运转时这两个词。大众言语运转时指的就是CLR,而运转时就是……不懂怎样形貌,就是程序被加载到内存并被处置器处置的时分。
选择分歧的言语,偶然候就代表着分歧的编成头脑,固然最初天生的都是IL代码和元数据。编译器这时候候又充任起查验你是不是准确的表达了你的企图的一种工具。由编译器所包管的范例平安也是静态言语的上风之一。
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。

山那边是海 发表于 2015-1-20 19:48:20

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

再见西城 发表于 2015-1-25 18:10:56

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

爱飞 发表于 2015-1-26 14:06:57

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

简单生活 发表于 2015-2-1 06:22:12

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。

若天明 发表于 2015-2-7 01:22:23

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

透明 发表于 2015-2-19 07:47:14

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

再现理想 发表于 2015-2-28 22:30:28

虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。

只想知道 发表于 2015-3-8 10:53:29

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?

老尸 发表于 2015-3-19 11:03:51

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
页: [1]
查看完整版本: ASP.NET网页设计谈.NET,由编译器入手下手谈起仓酷云