中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

VB.NET和C#的發(fā)展與動(dòng)態(tài)語言運(yùn)行時(shí)

  在去年微軟的專業(yè)開發(fā)者大會(huì)上(Professional Developers Conference PDC 2008),微軟就開發(fā)者在.NET平臺(tái)上的未來做了詳細(xì)的展望,本文我們將概括地來看一下即將到來的.NET 4.0 Framework的一些特性,以及全新的Microsoft 系編程語言,討論下微軟對于.NET Platform在接下來幾年的長遠(yuǎn)展望。

VB.NET和C#的聯(lián)合發(fā)展

  當(dāng)前來自軟件的最首要的信息之一是針對Microsoft Visual Basic .NET開發(fā)者的。VB.NET和Microsoft Visual C#都是構(gòu)建在通用語言運(yùn)行時(shí)(Common Language Runtime—CLR)之上,這意味著它們都向下編譯成通用中間語言(Common Intermediate Language—CIL)。

  由于二者均向下編譯成相同的代碼,因而兩個(gè)語言內(nèi)部也不存在很大的差別。但是,兩種語言卻由微軟兩個(gè)不同的團(tuán)隊(duì)來維護(hù),而且?guī)啄陙淼倪@種分離由于開發(fā)團(tuán)隊(duì)在各自產(chǎn)品上有不同的視角和理念,導(dǎo)致C#和VB.NET這兩種語言演變出許多語言方面的特性。許多令人興奮的特性最初出現(xiàn)在C#中最后卻成了VB.NET的特性,很多VB.NET開發(fā)者都感到了這一點(diǎn)。自然地,這引起了VB.NET陣營的不滿。

  聯(lián)合發(fā)展是微軟的一個(gè)承諾,借此承認(rèn)C#和VB.NET為相同重要的語言,而且微軟承諾在語言特性的發(fā)展方面,這些特性會(huì)同時(shí)加入到兩個(gè)語言中。開發(fā)者不再需要為了某個(gè)特性而選擇某個(gè)語言,也不再需要討論到底哪個(gè)語言更好,他們要做的只是從語法方面來選擇自己的語言就可以了。也許C#開發(fā)者會(huì)有一點(diǎn)揮之不去的優(yōu)越感,VB.NET開發(fā)者會(huì)為此不爽,但聯(lián)合發(fā)展后VB.NET開發(fā)者可以提醒“驕傲”的C#開發(fā)者,因?yàn)閮煞N語言只是不同外表下的同一個(gè)東西。

動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime)的介紹

  微軟很敏感地意識(shí)到.NET Framework并不是構(gòu)建應(yīng)用時(shí)的唯一選擇??焖俚乜纯船F(xiàn)在的開發(fā)環(huán)境,你會(huì)發(fā)現(xiàn)有很多語言選擇。人們花費(fèi)時(shí)間和精力用這些語言來寫出有用的組件,問題來了:怎么能夠讓這些用其他語言寫出的組件不至于在.NET上重寫?

  也許即將發(fā)布的.NET 4.0最令人激動(dòng)的新特性是動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)。就像通用語言運(yùn)行時(shí)(Common Language Runtime—CLR)為靜態(tài)型語言如C#和VB.NET提供了通用平臺(tái)一樣,動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)為像JavaScript, Ruby, Python甚至COM組件等動(dòng)態(tài)型語言提供了通用平臺(tái)。這代表.NET Framework在互操作性方面向前邁進(jìn)了一大步,提供了一種語言操作的抽象,共享存儲(chǔ)空間避免數(shù)據(jù)在進(jìn)程中反復(fù)的集結(jié),像垃圾收集一樣的一套通用語言特性,以及將一種數(shù)據(jù)表達(dá)轉(zhuǎn)換成另一種。

  在更高層,你可以認(rèn)為動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)有三個(gè)層:

  ◆.NET語言集成(.NET Language Integration)
  ◆DLR核心組件(DLR Core Components)
  ◆語言結(jié)合(Language Binders)

  第一層,.NET語言集成,代表.NET語言有了一個(gè)概念即DLR是什么以及它怎么用。大部分來說,你甚至不會(huì)注意到DLR的這個(gè)方面,因?yàn)榇蟛糠值?NET語言有一個(gè)自然的集成點(diǎn)。IronRuby和IronPython都是動(dòng)態(tài)型語言,所以DLR相合VB.NET總是在對象類型支持后聯(lián)編(late binding)的概念,所以DLR很好地與后聯(lián)編(late binding)解決合成一體。然而C#沒有后聯(lián)編(late binding)的概念,所以需要一個(gè)附加的靜態(tài)型來支持動(dòng)態(tài)語言。

  第二層是動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)自身,由三個(gè)核心組件組成:表達(dá)式樹(Expression Trees),動(dòng)態(tài)分配(Dynamic Dispatch),和調(diào)用點(diǎn)緩存(Call Site Caching)。一個(gè)表達(dá)式樹是以一棵樹方式的代碼表現(xiàn)方式,它將語言抽象成一個(gè)連續(xù)的能夠被DLR操作的格式。一旦動(dòng)態(tài)代碼以樹的方式表現(xiàn),DLR就能夠閱讀這棵樹并且為了實(shí)際的執(zhí)行從這棵樹生成CLR代碼。將代碼解釋成一個(gè)表達(dá)式樹,然后創(chuàng)建CLR是一個(gè)昂貴的操作,所以DLR采用了一種性能技術(shù)即我們所知道的調(diào)用點(diǎn)緩存(Call Site Caching)來避免每次動(dòng)態(tài)代碼被調(diào)用時(shí)的重新編譯。動(dòng)態(tài)分配(Dynamic Dispatch)確保適當(dāng)?shù)恼Z言結(jié)合(Language Binders)能夠用于動(dòng)態(tài)調(diào)用。

  語言結(jié)合(Language Binders)構(gòu)成了第三層,它是動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)所需要的某些操作的特定語言工具。當(dāng)然DLR遠(yuǎn)比本文簡單介紹地要詳細(xì)、功能強(qiáng)大得多,更多的信息來自于你自己的切身應(yīng)用。

NET技術(shù)VB.NET和C#的發(fā)展與動(dòng)態(tài)語言運(yùn)行時(shí),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲在线免费观看 | 久草青青草 | 日日碰碰 | 成人夜晚看av| 美女天天操 | 国产精品视频一区二区三区 | 久久久成 | 成人一区二区三区视频 | 羞羞视频免费观看 | 久久久久久国产精品 | 精品九九九 | 久久99精品久久久久久国产越南 | 国产农村妇女毛片精品久久麻豆 | 一级毛片视频在线观看 | 色在线免费视频 | 91精品国产综合久久久密闭 | 国产精品久久久久久久久久久久 | 国产精品精品视频 | 日本三级日产三级国产三级 | 精品久久久久国产 | 亚洲精品在线免费播放 | 色就干| av在线免费观看网址 | 一区二区三区精品视频 | 国产成人精品一区二区三区在线 | 久久极品| 日韩91| 国产成人福利视频 | www成年人视频 | 日韩一区精品 | 国产成人精品一区二区三区 | 黄色一级大片视频 | 日韩欧美二区 | 亚洲精品乱码久久久久久蜜桃 | 久久久久久中文字幕 | 日韩在线免费 | 成人一区二区三区在线 | 国产精品免费大片 | 91av在线影院 | 久久美女网 | 亚洲成人免费视频在线 |