WEB开发网
开发学院WEB开发ASP.NET 用IronRuby创建WPF应用程序 阅读

用IronRuby创建WPF应用程序

 2010-10-09 08:15:31 来源:WEB开发网   
核心提示: 查看GitHub站点的实例效果世上没有完美的事物,但我认为本实例使用数据可视化来说明IronRuby与WPF间的互操作,用IronRuby创建WPF应用程序(2),我相信你会细心研究以上代码,但我仍要逐步解析它的关键之处,你正好可以看到Ruby中的类似概念“block”&

查看GitHub站点的实例效果

世上没有完美的事物,但我认为本实例使用数据可视化来说明IronRuby与WPF间的互操作。我相信你会细心研究以上代码,但我仍要逐步解析它的关键之处。(顺便提一下,通过ir来运行本实例可第一时间看到效果)。

现在,我们使用的是IronRuby,并非我之前提到的那样纯使用Ruby代码并用ir(IronRuby解析器)运行代码来以证明它的兼容性。本文的主旨在于说明.NET命名空间和Ruby模块,.NET类和Ruby类之间的明显相似性。在这方面我觉得无需多说,你也许已经能够熟练地应用Ruby 的绘图函数。

以上例子中,我们实例化.NET对象,但使用的是标准的Ruby对象的.new方法,即Object#new。我们调用这些对象(和类)的方法(例如,对System.Windows.Controls.Canvas.SetZIndex()调用)可为Ruby语言建立相应的小写规则。无缝集成让我们可在.NET CLR之上运行动态语言(公共语言运行时需要动态语言运行时来支持动态语言)。这对于我们来说是完全抽象的,仅用于创建软件。

注:使用IronRuby的时候,.NET堆栈确实在各级别上集成。有一个地方要注意的是所有的IronRuby对象并非真正意义上的Object而是System.Object。

事件

事件是开发.NET客户端应用程序的重要一环,在其它开发环境下也同样如此。万一你没有注意到这一点,事件驱动编程实质上也需要在不可预知的情况下调用方法或者其它代码块(比如:委托)。你永远无法预测用户什么时候点击按钮,敲击按键或者执行任何输入,所以事件驱动编程必须处理GUI事件。

我最喜欢Ruby语言的原因之一就在于它的“blocks”确实能够帮助我们。例如在传统的C#语言中,你需要通过以下一种或两种方式来订阅事件(即在事件发生时执行所分配的代码块):把引用传递给指定的方法,或者提供匿名代码块。你正好可以看到Ruby中的类似概念“block”“Proc”和 “lambda”。最后在相对简单的代码中说明这些概念,我们会使用.NET的System.Timers.Timer来尝试每秒钟更新该时钟(我知道这并非最佳做法,仅用于示范)

上一页  1 2 3 4 5  下一页

Tags:IronRuby 创建 WPF

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接