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:FormViewID="FormView1"DefaultMode="insert"OnItemInserting="FormView1_ItemInserting"runat="server">
<InsertItemTemplate>

EnterPhoto:<asp:FileUploadID="PhotoFile"…/>
EnterCaption:<asp:TextBoxID="PhotoCaption"…/>

....

</InsertItemTemplate>
</asp:FormView>

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

importPhotoManager

defFormView1_ItemInserting(sender,e):

caption=FormView1.PhotoCaption.Text
bytes=FormView1.PhotoFile.FileBytes

iflen(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

你可能感兴趣的:(.net,python,asp.net,asp,WPF)