從兩個優(yōu)秀的世界各取所需,更高效的復用代碼。想想就醉了,.NET和python融合了。“懶惰”的程序員們,還等什么?
Jesse Smith為您展示如何兩個語言來服務同一個.NET程序。你能集兩家所長:Python和.NET一起工作,提供可重用的代碼功能而不需要你為了一個環(huán)境重寫代碼庫。
通過使用IronPython 運行時庫,你可以讓Python腳本運行在你的.NET程序中。本文向你展示如何使用一個.NET程序中的python腳本獲取并展示用戶反饋。
如果你曾經有在一個.NET程序中運行Python腳本的需求,整合兩者最好的辦法是使用IronPython。我有過這樣的需求。我曾經效力的一個組織需要擴展一個已經存在于一個.NET地圖程序中的工具集。我們的目的是利用另一個工具集中現有的Python代碼來擴展這個已有的工具集,前者還不是后者的一部分。在做了一番研究之后,我決定使用IronPython,事情進展很順利。
本文基于上述項目的經驗,我會還原當時的場景,對你所處的情境也同樣適用。
對于這個我們所期望的解決方案,首先要面對的挑戰(zhàn)是從將要運行在.NET程序中的那個Python腳本獲取輸出,然后使用一個.NET程序的對話框把這個輸出展示給用戶。讓我感到吃驚的是,這么做比預想的還要簡單,你同樣也能學到如何去做同樣的事情。整個過程相對比較簡單,我們將在下面的章節(jié)中進行概述。
在.NET程序中嵌入Python腳本
在這個例子中,我向你展示如何在一個Windows桌面程序中嵌入Python腳本。目的是在一個已有的程序中添加一個新的工具按鈕。點擊按鈕后,程序會彈出一個對話框,顯示一個嵌入在對話框代碼中的Python腳本的運行結果。
為了給這個例子鋪墊更多的前因后果,我們這個應用程序是一個桌面地圖軟件,可以讓用戶創(chuàng)建他們自己的地圖。這個新的工具允許用戶解析和標準化他們地圖上的地址點。
標準化一個地址,就意味著要確保這個地址有一個街道名,前綴或后綴,房屋或建筑編號,以及連接該街道的上一條街道和下一條街道。每一個地址段必須遵循US郵局郵編地址標準指導。
假設已有一個Python腳本已經可以做到這些;它就是例子中執(zhí)行解析的腳本。Python腳本將會通過當前對話框在屏幕上輸出或閃現這個正在解析的地址,我們可以通過選擇地址解析工具來觸發(fā)對話框(我不想說的太細,僅僅解釋到這里。)
代碼并不重要,重要的是知道如何嵌入腳本和如何定向腳本的輸出到對話框,作為程序的一部分顯示在屏幕上。這一過程像下面這樣進行:
用戶啟動地圖程序并打開一個自定義地圖。 用戶從屏幕上方的已有的工具集中選擇一個新的地址標準化工具。 彈出一個帶有可以啟動地址標準化進程的啟動按鈕的地址標準化對話框 一個文本框顯示當前正在被解析的地址。這些文本框很快消失,地址在用戶眼前一閃而過,表示過程啟動并且正在解析。 出現一個表示整個過程結束的信息,使用了第4步中同樣的文本框。新聞熱點
疑難解答