2011-02-03 46 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开发。