现在的位置: 首页 > 综合 > 正文

IronPython for ASP.NET CTP

2013年08月06日 ⁄ 综合 ⁄ 共 2216字 ⁄ 字号 评论关闭

【原文地址】 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

 

抱歉!评论已关闭.