`
snake_hand
  • 浏览: 574054 次
社区版块
存档分类
最新评论

.NET的未来和VB、C#的前路(上、下) 收藏

 
阅读更多

.NET的未来和VB、C#的前路(上、下) 收藏


.NET的未来和VB、C#的前路(上)

[CSDN 2月9日 编译]在去年微软的专业开发者大会上(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的未来和VB、C#的前路(下) [CSDN 2月10日 编译]

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

转载声明:本文来自CSDN博客,转载请标明出处http://blog.csdn.net/gouyue/archive/2009/02/11/3876243.aspx

分享到:
评论

相关推荐

    .NET的未来和VB,C#的前路介绍,doc文档资料上下集

    .NET的未来和VB,C#的前路介绍,doc文档资料上下集

    C# 编写DLL 让VB调用

    VB调用C#编写的DLL 使用VS C#编写DLL函数。封装好,实现DLL注册功能。达到VB调用。

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    .NET和Pascal之父Anders Hejlsberg 谈编程的发展

    大家好,我是Anders Hejlsberg,现在是微软的Technical ...我现在打算谈一下……实际上是我脑海中一些影响未来5到10年编程语言设计的内容。比如C#或VB该怎么走,F#该怎么办,这次演讲主要就是讨论这些影响我们的东西。

    C#运用WPF实现游戏动画制作

    Silverlight的优势更表现在它可以用一切.NET语言例如C#,VB.NET,C++.NET等开发,拓展度与可以参与开发的人群远远高于只能用AS开发的FLASH。 转入正题,网上已经有很多关于如何创建WPF/Silverlight动画的教程,但是...

    SuperDotNetAPI:API方式直接调用C#的DLL,支持多音字转拼音、Gzip解压缩、公式计算(VBA、C++、VB、Delphi甚至java都可以)

    为了解决这几个个长期困扰我的问题,以及未来经常会遇到的其它问题(例如AES加解密、验证码图片处理、文本编解码、大数的数学运算、多线程等等),我考虑在VBA中调用C#的dll来彻底解决。 正常情况下,vba调用C#的...

    COSMOS——.NET开发操作系统

    完完全全.NET开发操作系统,你可以选择不用...使用时请先安装VS2008以上版本,可使用C#和VB.NET开发x86、x64、ia64、ARM架构的操作系统,其他的CPU架构未来将会发布。关注更新请在plexcode中查找COSMOS。感谢大家支持!

    LINQ 实战 1/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    PowerShellCodeDomProvider:PowerShell 的 CodeDOM 提供程序

    这使得其他语言(如 C# 和 VB.NET)之间的转换成为可能。 由于 Roslyn 的引入,CodeDOM 提供程序有点过时,但对于 Visual Studio 中的 Windows 窗体编辑器等内容是必需的。 此项目可用于 Visual Studio 的 ...

    StructPacker:用于使用 Source Generators 技术的 C# 结构类型的低级、轻量级和注重性能的序列化程序

    未来可能会添加其他 .NET 语言,如 F# 的 VB.NET。 输出是具有单个 20KB DLL 依赖项的完全托管代码(作为 nuget 包的一部分自动添加)。 没有后期构建步骤,没有运行时类型检查,没有动态 IL 生成或本机库,这意味...

    portable-executable-library:PE Bliss - 跨平台可移植可执行 C++ 库

    PE Bliss跨平台可移植可执行 C++ 库与 Windows 和 ... C++/CLI 包装器,允许 .NET 开发人员在 C# 或 VB.NET 项目中使用库; 更多的样品和测试; bug修复。 当前版本:1.0.0概括[+] 为 Windows 读取 32 位和 64 位 PE

    LINQ 实战 3/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 4/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 2/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 7/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 11/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 5/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 6/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 8/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

    LINQ 实战 10/11

    微软MVP呕心沥血之作,LINQ圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。  本书作者是LINQ社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。  ——Matt Warren,微软主架构...

Global site tag (gtag.js) - Google Analytics