IronPython for ASP.NET CTP

來源:互聯網
上載者:User

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.