IronPython for ASP.NET CTP

【原文地址】 IronPython for ASP.NET CTP
【原文发表日期】 Thursday, November 16, 2006 10:40 PM

几个月前,我曾经写过发布 IronPython v1.0 的事。IronPython是Python动态语言在.NET平台上的实现。它支持一个可交互的控制台,该控制台支持完全的动态编译,并且可以让Python程序员轻松地访问所有的.NET库,同时还保持对Python语言完全的兼容性。

IronPython 提供了.NET 编程语言可以如何利用我们在去年发行的.NET 2.0版本的CLR中新加入的动态语言特性的一个极好的例子。譬如,象“轻量级编码生成”这样的CLR特性,现在可以让动态语言很快地在内存里编译和JIT源码 (给予你非常快速的运行速度而不必生成一个.dll 文件)。CLR 2.0 还有把这些JIT过的代码垃圾回收的能力。这意味著,你可以在运行时很快地动态调整类型,而且不用泄漏生成的编码。

上个星期,我们发布了一个非常酷的CTP,提供了ASP.NET和Visual Web Developer Express(当然是免费的)中IronPython的集成支持。安装完毕后,你就可以在创建新的项目和页面时,使用Python作为你的语言选择,轻松地利用动态语言脚本的支持:

IronPython for ASP.NET CTP安装完毕之后, Visual Studio/Visual Web Developer 将为使用Python的ASP.NET项目提供行内(inline)代码和后台代码(code-behind)网页的支持,提供句法高亮显示,WYSIWYG 设计器,以及完整的调试支持。你也可以用它来创建居于App_Script 文件夹下的独立的python模块文件,将它们用于整个网站。

探究Python用法的最轻松的方式是,选择文件->新网站菜单项,然后创建一个 Python版的Personal Starter Kit样例网站(注意下面截图中扩展名为.py的后台代码文件):

上面的Personal Starter Kit Python 样例提供了一个酷的方式来开始学习Python,同时也利用了Python 提供的一些动态语言功能,以及 IronPython 开发组添加的与ASP.NET的良好集成特性。

例如,Photos.aspx网页提供了允许管理人员上传新的照片到相册的支持。这是通过一个使用了模板化插入模式UI的 FormView 控件来实现的,象这样:

< asp:FormView  ID ="FormView1"  DefaultMode ="insert"  OnItemInserting ="FormView1_ItemInserting"  runat ="server">
    
< InsertItemTemplate >

        Enter Photo: 
< asp:FileUpload  ID ="PhotoFile"  …  />
        Enter Caption: <
asp:TextBox  ID ="PhotoCaption"  …  />

        ....

     InsertItemTemplate>
asp:FormView>

在一个强类型语言里,你通常需要使用FormView1的FindControl()方法进入到它的模板里来获取FileUpload 或TextBox控件的引用,然后将该引用强制转换到返回对象的类型,才可以使用这些对象。但在象Python这样的动态语言中,你可以在你的Photos.aspx.py后台代码文件里写下面这样的编码:

import PhotoManager

def FormView1_ItemInserting(sender, e):

    caption 
FormView1.PhotoCaption.Text
    bytes 
FormView1.PhotoFile.FileBytes
    
    
if len(bytes) == 0:
        e.Cancel 
True
    
else:
        PhotoManager.AddPhoto(Request.AlbumID, caption, bytes)

注意到没有,你只要写FormView1.PhotoCaption就可以访问模板里的子控件,然后直接引用它的子属性就可以了。这个技术也可以用在象 DataList,Repeater和Wizard这样模板化的控件上。真妙!

如何进一步了解 IronPython

查看一下 IronPython for ASP.NET 主页以进一步了解 IronPython for ASP.NET CTP。你也可以在这里阅读一下David Ebbo 写的精彩白皮书,该文描述了为更好地支持动态语言和编译而对ASP.NET分析器做的变动。

最后,想进一步了解 IronPython本身的话,我建议你观看一下这个9月份时Jod Udell采访Jim Hugunin的精彩录像广播(内有演示)。 Jim 现场编写了一些很酷的演示,包括使用IronPython创建一个与Speech API集成的WPF计算器应用。然后他也演示了如何把影响性能的关键代码从Python重构到象C#这样强类型的语言,以及两者是如何无缝地协作的。你现在可以把这些同样的技术使用在IronPython 和ASP.NET上。

希望本文对你有所帮助,

Scott

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值