目前在Silverlight Tools Beta 1 for Visual Studio 2008 中包括了3个动态语言的运行库:IronPython、IronRuby和Managed JScript。

但是VS2008针对这三个动态语言的模板还没有完成,所以现在我们没有办法创建动态语言的Silverlight 2项目(甚至于VB的都不行,默认只是C#的);不过Silverlight 2 SDK提供了一个工具来帮助我们生成部署的xap文件——Chiron工具,它在目录:C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Tools\Chiron里。

另外,在CodePlex上还提供了一个Dynamic Silverlight Sample的项目,来指导我们在Silverlight 2中使用动态语言,不过目前这个项目还是针对Silverlight 1.1的。

下面我就给大家演示一下(以IronPython为例):

  • 创建一个目录,如IPSL2,在里面创建2个子目录:app(包含动态语言代码文件和XAML文件文件)和assets(包含资源文件,如图片等);在assets中在创建一个子目录js(这个目录其实可以不要,在1.1中是用于保存silverlight.js的,不过现在可以保存其他js文件)。
  • 在app目录中创建一个IronPython代码文件:app.py,代码如下(在这里,我是使用XamlReader.Load把xaml字符串直接加载,本来我想用Application.Current.LoadRootVisual方法把app.xaml载入,但是一直没有成功,有朋友知道怎么弄吗?):

from System.Windows import Application
from System.Windows.Markup import XamlReader

Application.Current.RootVisual = XamlReader.Load("""
<Canvas xmlns="http://schemas.microsoft.com/client/2007"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<TextBlock x:Name="message" FontSize="30"/>

</Canvas>""")

Application.Current.RootVisual.message.Text="Welcome to Silverlight and IronPython!"

  • 在app目录中创建一个xaml代码文件:app.xaml(在我的例子中,可以不要这个文件,但是如果使用LoadRootVisual方法的话,就需要),代码如下:

<Canvas xmlns="http://schemas.microsoft.com/client/2007"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<TextBlock x:Name="message" FontSize="30"/>

</Canvas>

  • 在根目录中,本例即IPSL2目录中,创建一个Index.html文件来作为浏览页面,body中的代码如下(解释一下,我这里为什么要用图片的原因,这是因为在Windows Live Writer中贴入一下代码后,就在其中显示一个Silverlight的控件了,真是的!):
  • 现在开始使用Chrion工具来运行这个动态语言Silverlight 2应用程序了。
  • 首先,把Chrion所在的目录添加到PATH中
  • 启动命令行,进入到IPSL2目录中,运行Chrion /b来启动一个Web Server,并同时打开一个浏览器
  • 在浏览器中点index.html文件,就可以看到Silverlight over IronPython的应用程序运行了,如下图:

另外对于使用IronRuby的同学来说,可以参考John Lam的文章(注:下面我给的连接是通过Web代理访问,直接是访问不了的):

John Lam on Software Dynamic Silverlight Part 1 Hello, World!

John Lam on Software Dynamic Silverlight Part 2 Managed JScript and flickr

整个示例的代码在这里下载:http://www.91files.com/?GXW6W7RN1L2N1N358LJC

Update!
对于app.py和app.xaml得到思归的提醒,可以使用如下代码(其实一下代码,我昨晚也尝试过,结果没有成功,简直晕死!):
app.py:
============
from System.Windows import Application
from System.Windows.Controls import UserControl

Application.Current.LoadRootVisual(UserControl(), 'app.xaml')

Application.Current.RootVisual.message.Text="Welcome to Silverlight and IronPython!"
============
app.xaml:
============
<UserControl
   xmlns="http://schemas.microsoft.com/client/2007"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   x:Class="System.Windows.Controls.UserControl"
   x:Name="Page" >

<TextBlock x:Name="message" FontSize="30"/>

</UserControl>
============

转载于:https://www.cnblogs.com/redmoon/archive/2008/03/08/1096331.html

在Silverlight 2 beta1中使用IronPython等动态语言相关推荐

  1. 在OperaMasks中使用ELite和JRuby动态语言的秘笈

    如何在OperaMasks中使用动态语言 1. 前言 2. 在OperaMasks中使用ELite 2.1. ELite的介绍 2.2. 在OperaMasks中使用ELite 3. 在JSF中使用R ...

  2. 解决Silverlight在ChildWindow中进行DragDrop操作问题

    解决Silverlight在ChildWindow中进行DragDrop操作问题 参考文章: (1)解决Silverlight在ChildWindow中进行DragDrop操作问题 (2)https: ...

  3. 技巧:Silverlight应用程序中如何获取ASP.NET页面参数

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/87093 ...

  4. Silverlight与WPF中BeginInvoke的差异

    Silverlight/WPF中,如果要在多线程中对界面控件值做修改,用Dispatcher对象的BeginInvoke方法无疑是最方便的办法 ,见:温故而知新:WinForm/Silverlight ...

  5. ironpython console怎么用_如何在表單中插入ironpython控制台?

    I want to make a winform by C#, and add a ironpython console window in it, like a multiline textbox. ...

  6. Silverlight在IE中无法显示但在Firefox中正常的原因和解决办法

    考虑到此问题的发生很难解决和解决方法的示例意义,特发在首页. 问题提出:Silverlight在IE中无法显示并提示下载,在Firefox中正常 系统环境:Vista, IE7 对应版本:1.0 RC ...

  7. python调用ironpython_在.NET中嵌入IronPython 交互

    随着IronPyhon 2.0 的发布,.NET Dynamic Language Runtime 也更加成熟了,在2.0中我们可以用动态脚本以粘合剂的方式编写架构体系中的各种逻辑单元,既便于修改,又 ...

  8. Silverlight 2教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具

    VS在编译时Silverlight 2的应用程序时,会先将cs等文件进行编译成dll,然后会调用Chiron.exe这个打包工具打包成.xap文件.也可以使用它进行动态语言无打包部署.Chiron.e ...

  9. Silverlight 2学习教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具

    VS在编译时Silverlight 2的应用程序时,会先将cs等文件进行编译成dll,然后会调用Chiron.exe这个打包工具打包成.xap文件.也可以使用它进行动态语言无打包部署.Chiron.e ...

最新文章

  1. 使用 markdown-it 解析 markdown 代码(读 VuePress 三)
  2. 用idea插件将一个spring boot项目部署到docker容器里运行
  3. linux高编IO-------opendir、closedir、readdir
  4. 删除context node后遗留的问题
  5. S3c2440A平台HIVE注册表+binfs的实现
  6. Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来...
  7. c语言实现 windows socket_C语言实现Socket简单通信
  8. python圣诞树编写实例详解
  9. sf | 创建空间矢量对象及其投影设置
  10. 实验11 链表 程序1奇数值结点链表
  11. android targetapi版本低,Android应用开发之Android @TargetAPI版本兼容性解析
  12. Silverlight for Windows Phone 开发学习笔记(-)
  13. 【转载】著名黑客雷蒙评价几种编程语言
  14. UT源码+105032014036
  15. 终结VC2005分发包版本问题
  16. Ubuntu20.04基本配置和常见问题(vmwareTools配置、换源、网卡配置)
  17. 转载-PCB板加工流程
  18. python爬取谷歌学术_对于python抓取google搜索结果的一些了解
  19. STN(spatial transformer network)论文与源码理解
  20. MATLAB中的pause用法,pause使用方法 C语言 pause()函数问题

热门文章

  1. 计算机毕业设计之微信小程序的废品回收类程序 垃圾回收app论文
  2. 自动升降压PD快充方案 30W快充TYPE-C方案
  3. 信息技术助推智能建造和建筑企业数字化转型
  4. 蛋糕瓜分殆尽 谁会成为下一个手游造富的加速器?
  5. 餐饮外卖平台小程序源码_餐饮连锁店,加盟,入住
  6. 小赛毛游C记-初识C语言(2)
  7. 人为什么活着__稻盛和夫的哲学
  8. 用于ip伪装身份的网络爬虫
  9. 如何打造企业短视频账号的人设?
  10. 购房置业者必上的10大房产网站