Flex与JSON及XML的互操作
平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。
作者 Robert Bazinet译者 高昂 发布于 2007年11月15日 上午4时59分
在RubyConf大会之上,John Lam对微软为动态语言提供的新特性进行了预先介绍,介绍中给出了可以使Ruby运行在动态语言运行时DLR以及Silverlight之上的示例。
RubyConf大会的演示示例不同于其他Silverlight的演示,代码是用Ruby语言编写,而非编写XAML来呈现Silverlight引擎。对此John Lam谈到:
就我所知,这是第一批Code-First的Silverlight 1.1应用示例之一。大多数Silverlight应用通过创建提交到XAML解析器的XAML字串来生成UI界面。但当你拥有Ruby这样优雅的语言之后,使用字串创建解析树就显得有些笨重了。
示例中的XAML标记如下所示:
<Storyboard x:Name="Timeline1" TargetName="ScaleTransform1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetProperty="ScaleX">
<SplineDoubleKeyFrame KeyTime="00:00:00.0" Value="0.200"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="0.935"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.3" Value="0.852"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="0.935"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetProperty="ScaleY">
<SplineDoubleKeyFrame KeyTime="00:00:00.0" Value="0.200"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="0.935"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.3" Value="0.852"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="0.935"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
微软提供了在DLR之上运行动态语言的机制,并在.NET CLR之上开发的IronRuby对于Ruby编程语言进行的全面的实现。
为DLR编写代码的目标是,可以编写本地代码并且不需手工编写XAML。开发者可以编写如下的Ruby代码来代替上面列出的XAML代码:
class BounceAnimation < AnimationBase
def initialize(scale_transform_element)
@obj = Wpf.build(Storyboard, :name => random_name,
:target_name => scale_transform_element) {add(DoubleAnimationUsingKeyFrames, :begin_time=>'00:00:00',
:target_property => "ScaleX") {add(SplineDoubleKeyFrame, :key_time => '00:00:00.0', :value => 0.200)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.2', :value => 0.935)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.3', :value => 0.852)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.4', :value => 0.935)
}add(DoubleAnimationUsingKeyFrames, :begin_time=>'00:00:00',
:target_property => "ScaleY") {add(SplineDoubleKeyFrame, :key_time => '00:00:00.0', :value => 0.200)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.2', :value => 0.935)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.3', :value => 0.852)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.4', :value => 0.935)
}
}
end
end
较之编写XAML,使用Ruby语言更为方便直接,并且更易于让人读懂。尽管这些特性在示例中得到展示,但其中小部分特性将在下一个版本Silverlight 1.1的CTP出现时才可以使用,届时开发者可以在浏览器中运行IronRuby。
关于IronRuby的更多信息,可以在IronRuby的站点中找到,并且这个示例的源代码可以在John Lam的blog上下载。
查看英文原文:IronRuby on Silverlight Demo at RubyConf有时10天半月也不来个一回
是啊,什么时候才能在asp.net里使用ironruby呢?
------------------------------------------
[Ruby中文社区] - ruby-lang.org.cn
平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。
本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。
Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。
Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。
Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。
我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!
2 条回复
回复