天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

VB.NET和C#的發展與動態語言運行時

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

VB.NET和C#的聯合發展

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

  由于二者均向下編譯成相同的代碼,因而兩個語言內部也不存在很大的差別。但是,兩種語言卻由微軟兩個不同的團隊來維護,而且幾年來的這種分離由于開發團隊在各自產品上有不同的視角和理念,導致C#和VB.NET這兩種語言演變出許多語言方面的特性。許多令人興奮的特性最初出現在C#中最后卻成了VB.NET的特性,很多VB.NET開發者都感到了這一點。自然地,這引起了VB.NET陣營的不滿。

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

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

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

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

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

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

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

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

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

NET技術VB.NET和C#的發展與動態語言運行時,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美精品高潮呻吟AV久久 | 好男人好资源在线观看免费视频 | 欧美兽交YOYO| 性绞姿始动作动态图 | 久久免费看视频 | 成人在线免费视频 | 午夜AV内射一区二区三区红桃视 | 老板揉搓秘书丰满大乳 | 免费观看成人www精品视频在线 | 久久精品视频在线看 | 国产伦子沙发午休系列资源曝光 | 亚洲狠狠97婷婷综合久久久久 | 久久久无码精品亚洲日韩按摩 | 亚洲国产剧情中文视频在线 | 开心色99xxxx开心色 | 国产午夜高潮熟女精品AV | 国模大胆一区二区三区 | 777ZYZ玖玖资源站最稳定网址 | 99九九精品国产高清自在线 | 精品国产九九 | 国产成人精品免费视频大全可播放的 | 欧美含羞草免费观看全部完 | 久久99热只有频精品 | 亚洲欧美自拍明星换脸 | 成人无码精品1区2区3区免费看 | 2021全国精品卡一卡二 | 亚洲精品国产自在在线观看 | 神马电影我不卡4k手机在线观看 | 国产在线播放精品视频 | 国产乱子影视频上线免费观看 | 欧美国产日韩久久久 | 6080yy亚洲久久无码 | 国产精品久久久久一区二区三区 | 久久www免费人成_看片高清 | 女人和男人插曲视频大全 | 99精品电影 | 97色色极品av影院 | 手机在线观看mv网址 | 黑人操白逼 | 精品无码国产AV一区二区三区 | 末成年美女黄网站色大片连接 |