一、.NET Dynamic Language Runtime
随着.NET 4.0 即将正式发布,最令人激动的无疑是动态语言运行时(Dynamic Language Runtime—DLR)这个新特性,终于要开始大放光芒了。
微软的每一步总是很具有前瞻性,当很敏感地意识到.NET Framework并不是构建应用时的唯一选择时,如何将各种不同语言构建出来的组件在.NET平台上重用,或者更胜一步,将这些组件添加到现有的.Net项目中而脱离语言和数据类型的束缚呢?
DLR就提供了这样一种环境,它允许其他语言与.NET C#交互,使他们能相互调用各种的组件.
具体的交互方式我将在以后的文章中使用IronPyhton示例,这里就不再做讨论了。
二、Silverlight Application与 DLR
Silverlight 在2.0版本中就已经加入了对动态语言的支持,目前微软支持的动态脚本语言有Python ,Ruby,JavaScript三种。那么微软在Silverlight中加入动态语言运行时的用意何在呢?
当你需要开发一个WPF软件,或者基于Silverlight的网络应用,需要先建立原型,并在不断迭代中完成各种细节需求,但如果每次都用VisualStudio进行编译、运行,是否很繁琐,那么如果能用Silverlight开发一个属于自己的简易原型开发环境呢?是不是很酷?比如像这样 http://silverlight.net/content/samples/sl2/dlrconsole/index.html ,这个环境提供了Console ,Code Editor , Xaml Editor , Model View 使你的应用程序能在线直接生成,既继承了脚本特性,又能使用WPF的组件模型,而且可以在Console中直接调试,其便捷性让人想起了调试JavaScript用的IE Developer Tools,FireDebug,但很显然更胜一筹。
让Python ,Ruby爱好者在线使用他们喜欢的语言方便快捷地完成任务
充分利用Python、Ruby中大量的第三方库
而在这样的环境下,个人建议大家能学习Pyhon这门动态语言,至少应该掌握IronPyhton,因为它会变得更流行。当然你也可以选择Ruby,Ruby On Rails。
三、IronPyhton
IronPython是Python编程语言在.NET平台上的实现。它支持一个可交互的控制台,该控制台支持完全的动态编译,并且可以让Python程序员访问所有的.NET库,同时还保持对Python语言完全的兼容性.至于Pyhon的优越性大家可以去看wiki,相信不会让你失望。
另外需要知道的是 Python是各种语言,各种平台的粘合剂,从IronPython到 Jython, 借助Python 的运行环境,可以将.NET与Java完美的结合起来。
Python 拥有庞大的库,20多年的发展历史,这些库涵盖了科学研究方面的各个领域。使用IronPython可以使很好的重用这些功能强大的资源库。
当CLR 、Silverlight、外部语言集成这三者真正结合到实际应用中时,我们才能看到微软长远的战略性眼光