2011-02-03 151 views
3

我即將開展一個.NET項目:我們需要創建一個利用一些現有C#代碼的程序,並且我希望能夠使用IronPython。 (我是一名經驗豐富的Python程序員,但有點.NET新手)。在IronPython中使用C#代碼

我的問題是:IronPython很適合主要使用C#代碼,還是隻使用C#會更好?如果IronPython非常適合,有沒有需要注意的缺陷?

+0

鐵蟒是Python,而不是C#。它可以與C#編寫的程序集接口,因爲它是一個.net DLR語言,並且非常擅長。但它不是C#並且不會運行C#代碼。 – 2011-02-03 18:55:47

+0

啊...重讀 - 我想你的意思是你想要與現有的C#程序集接口。在這種情況下,Iron Python會做得很好。但是您需要以某種方式託管它(可能在C#應用程序中)。任何 。net語言可以使用現有的.net庫,這是.net的一大優點之一。 – 2011-02-03 18:58:01

回答

5

您需要將C#代碼編譯爲可在IronPython中使用的程序集(DLL)。一旦你這樣做了,IronPython就可以像使用其他.NET程序集一樣使用它。

這是IronPython的常見使用場景。

+0

感謝您的信息!任何陷阱? – 2011-02-03 22:41:51

1

如果您在Windows環境中出於無法控制的原因,使用IronPython有很多優勢。

  1. 它就像Python,只有.NET。一旦你學會了如何引用程序集的獨特元素,如何實例化對象,瀏覽對象等,這真的很不錯。

  2. 你不需要Visual Studio來開發。記事本++或任何正派的文本編輯器是你所需要的。如果你真的必須有一個IDE,你可以使用SharpDevelop。現在,如果你有VS2010,那麼Ironpython的新插件非常好,未來的版本應該會更好。

  3. 隨着Ironpython 2.7和.NET 4.0的推出,以前版本的啓動時間問題大多被否定。

  4. 我發現WPF和XAML方法比wx更容易創建GUI應用程序。

  5. IronPython的腳本可以被編譯成exe的便於分配

儘管如此,也有缺點。

  1. 大多數軟件包不會直接安裝到Ironpython中,迫使您安裝到CPython中,然後複製相關模塊。

  2. 使用pyd共享庫的Python擴展不能工作,除非你使用Ironclad,即使這樣你也可能會遇到問題。

  3. 你放棄了跨平臺,除非你的用戶正在運行單聲道,即使如此,你失去了一些像WPF一樣的酷功能。

  4. 你有點落後於發展曲線。 Ironpython目前處於2.7 Beta 1版本,並且自10月份以來一直是微軟公佈的代碼。在此之前,MS之外沒有人可以提交補丁。社區領導層將於2月份發佈2.7 RTM版本,然後開始3.x開發。