成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET和C#的發(fā)展與動態(tài)語言運行時

開發(fā) 后端
本文我們將概括地來看一下即將到來的.NET 4.0 Framework的一些特性,以及全新的Microsoft 系編程語言,討論下微軟對于.NET Platform在接下來幾年的長遠展望。

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

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

當前來自軟件的最首要的信息之一是針對Microsoft Visual Basic .NET開發(fā)者的。VB.NET和Microsoft Visual C#都是構(gòu)建在通用語言運行時(Common Language Runtime—CLR)之上,這意味著它們都向下編譯成通用中間語言(Common Intermediate Language—CIL)。由于二者均向下編譯成相同的代碼,因而兩個語言內(nèi)部也不存在很大的差別。但是,兩種語言卻由微軟兩個不同的團隊來維護,而且?guī)啄陙淼倪@種分離由于開發(fā)團隊在各自產(chǎn)品上有不同的視角和理念,導致C#和VB.NET這兩種語言演變出許多語言方面的特性。許多令人興奮的特性最初出現(xiàn)在C#中最后卻成了VB.NET的特性,很多VB.NET開發(fā)者都感到了這一點。自然地,這引起了VB.NET陣營的不滿。

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

動態(tài)語言運行時(Dynamic Language Runtime)的介紹

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

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

在更高層,你可以認為動態(tài)語言運行時(Dynamic Language Runtime—DLR)有三個層:

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

 

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

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

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

【編輯推薦】

  1. 淺談C# 4.0中的動態(tài)類型和動態(tài)編程
  2. .NET并不意味著VB.NET或C# 或有更多語言
  3. 微軟打造動態(tài)語言層 欲讓.Net更具吸引力
責任編輯:佚名 來源: CSDN
相關(guān)推薦

2009-11-03 14:13:23

VB.NET C#

2009-09-07 15:04:07

2009-08-18 16:57:24

VB.NET和C#

2009-08-28 15:35:31

C#與VB.net

2009-10-26 09:50:11

C#與VB.NET

2009-10-23 12:53:25

VB.NET語言

2009-11-02 16:47:18

VB.NET C#

2009-06-12 09:22:44

VB.NET類型C#

2009-04-28 10:23:58

VB.NETC#對比

2009-10-30 14:21:00

VB.NET開發(fā)語言

2009-07-28 17:03:55

ASP.NET VB.

2009-11-02 17:38:56

VB.NET與C#

2009-10-19 11:28:42

VB.NET語言.NET開發(fā)語言

2009-08-13 14:52:21

.NET性能誤區(qū)C#和VB.NET

2010-01-15 18:17:39

VB.NET動態(tài)標識

2009-10-29 14:02:24

VB和VB.NET比較

2009-07-06 11:00:56

.NET 4.0新特性.NET

2009-10-28 17:44:31

VB.NET語言

2009-10-12 15:44:26

VB.NET動態(tài)編碼技

2009-10-27 14:20:37

VB.NET動態(tài)標識符
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产成人免费视频 | 91资源在线 | 久草新在线 | 免费一区二区三区 | 久久久久久免费毛片精品 | 亚洲综合色婷婷 | 中文字幕亚洲国产 | 欧美一级毛片在线播放 | 国产激情 | 久久久久亚洲精品中文字幕 | 欧美三级电影在线播放 | 亚洲精彩视频在线观看 | 日韩久久中文字幕 | 久草视频在线播放 | 羞羞视频在线观看网站 | 成人国产精品久久久 | 午夜影院黄 | 久久综合久久自在自线精品自 | 国产成人精品久久二区二区 | 午夜激情免费视频 | 成人在线免费av | 91精品国产综合久久久久久漫画 | 日韩av在线中文字幕 | 久久爱黑人激情av摘花 | 欧美日韩在线精品 | 久久人人爽人人爽人人片av免费 | 日本精品视频在线观看 | 亚洲欧洲中文日韩 | 一区二区日韩 | 97成人免费| 久亚州在线播放 | 日韩电影a | 成人午夜视频在线观看 | 狠狠操电影 | 久久黄视频 | 成人欧美一区二区三区黑人孕妇 | 999久久久 | 成年网站在线观看 | 一级黄色在线 | 夜夜草 | 国产一区二区 |