一起谈.NET技术,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远比本文简单介绍地要详细、功能强大得多,更多的信息来自于你自己的切身应用。

时间: 2024-09-20 21:41:09

一起谈.NET技术,VB.NET和C#的发展与动态语言运行时的相关文章

VB.NET和C#的发展与动态语言运行时

在去年微软的专业开发者大会上(Professional Developers Conference PDC 2008),微软就开发者在.NET平台上的未来做了详细的展望,本文我们将概括地来看一下即将到来的.NET 4.0 Framework的一些特性,以及全新的Microsoft 系编程语言,讨论下微软对于.NET Platform在接下来几年的长远展望. VB.NET和C#的联合发展 当前来自软件的最首要的信息之一是针对Microsoft Visual Basic .NET开发者的.VB.NE

浅谈云技术在中国影院行业的发展

近年来,以云计算为代表的新一代信息技术和战略性新兴技术发展异常迅猛,在全球诸多行业和领域得到了广泛应用,并产生了重要而深远的巨大影响.迄今,我国电影产业已经实现技术系统和工艺流程的数字化,全面步入数字电影时代,并加速向信息化.网络化和智能化演进升级. 但是,我国电影产业仍然存在运营服务管理整体水平不高.技术自主研发能力和创新人才支撑明显不足等问题,距离欧美先进国家和电影强国建设要求尚存较大差距,亟需通过加快发展与应用新一代信息技术来缩小差距. 云计算是信息通信和文化传媒产业转型升级.业务与服务模

一起谈.NET技术,初识Silverlight 4及其架构

简介 Silverlight 4是今年早些时候发布的.这项技术为我们带来了许多革新.它不仅是为用户带来了丰富的交互式的互联网和多媒体内容,还为我们提供了强大的轻量级的平台.我们可以在此平台上开发可移植的,跨平台的,基于网络的应用程序,并且可以从不同的源头集成服务和数据.相比传统Web应用的界面,Silverlight应用的界面让人耳目一新.让人感觉像是Windows Form应用程序搬到了Web上. 为什么需要Silverlight 4 前面我们在开发Web应用的时候,碰到了许多技术上的难题,如

一起谈.NET技术,为什么我支持托管运行时(虚拟机)

最近博客园上在炒关于C#性能的问题,其实应该说是.NET性能的问题,其中某位仁兄提出,他希望C#能够直接编译为原生代码,而不是在CLR这样一个托管运行时上执行,因为虚拟机啊,JIT什么的性能差.后来发到TL上以后,也有朋友认为,"基于虚拟机的语言都是大公司为了利益在推动,说白了就是政治",因此"对C#提高性能的建议感到可笑,因为它本来就不是用来开发高性能程序的",再有,"C.C++已经明确不和这些后进争所谓的'容易开发'的头衔",那么其他语言为什

一起谈.NET技术,.NET 4九大新特性 FrameWork达到新境界

本文将向您介绍.NET框架4中的主要功能和改进特征.请注意,本文中并没有提供有关这些新功能的综合信息,并随时可能更改. 请注意,.NET框架4引入了一个改进的安全模式.有关该内容的更多的信息,请参阅文章<.NET框架4中的安全变化>. 具体来说,本文中将介绍.NET框架4的如下一些新功能和改进特征: 应用程序兼容性和部署 内核新功能及改进 托管扩展框架 并行计算 网络编程 Web开发 客户端开发 数据 通信和工作流 一.应用程序兼容性和部署 除了一些在安全.标准遵从.正确性.可靠性及性能等方面

一起谈.NET技术,.NET 4九大新特性

英文原文:What's New in the .NET Framework 4 本文将向您介绍.NET Framework 4中的主要功能和改进特征.请注意,本文中并没有提供有关这些新功能的综合信息,并随时可能更改. 请注意,.NET Framework 4引入了一个改进的安全模式.有关该内容的更多的信息,请参阅文章<.NET Framework 4中的安全变化>. 一.应用程序兼容性和部署 除了一些在安全.标准遵从.正确性.可靠性及性能等方面的改进之外,.NET Framework 4与基于

一起谈.NET技术,.NET十年(下)

相关文章:.NET十年(上) 引言 语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛.博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向. 本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番. 本篇,我们将从历史走来,对.NET的未来做个展望性的了解,具体而言就是.NET 4.0的新东西. .NET之,未来武器 无论如何,.NET

一起谈.NET技术,.NET十年(上)

相关文章:.NET十年(下) 引言 语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛.博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向. 本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番. 本篇,我们走在历史,对.NET的过去尤其是c#语言做以回顾,具体而言就是.NET 1.0.2.0.3.0的一路走来. .NET之,历史脚步

《创业家》牛文文:少谈点模式多谈点技术

"模式"如同当年的"主义",流行于各种创业大赛.创业励志节目.论坛的"街头"式秀场 文/创业家 牛文文 "美国某某公司你知道吧?就是刚被戴尔.惠普.思科十几亿美元抢购的那家.我们的模式和它的一样,现在还没赢利,可将来起码有十几亿人民币的市值." "我开了小煤矿,但煤运不出去,上商学院之后受到启发,想搞模式创新,具体讲就是想在铁路边上搞个煤炭物流开发区,建一个大的物流和信息流平台,把分散的煤炭集中在我这个园区,这样和铁