我很想喝一些现代动态语言koolaid,所以我相信Michael Foord的博客和播客上的所有内容,我已经买了他的书(并阅读了一些内容),并且我添加了一个嵌入式IPy运行时大概现有的应用程序大约一年前(虽然这是为其他人,我自己并没有真正使用它).
现在我需要做一些相当简单的代码生成工作,我将在一些.net对象(自定义,C#-authored对象)上调用几个方法,创建一些字符串,编写一些文件等.
尝试这种经历让我觉得这个小男孩觉得他是唯一能看到皇帝没穿衣服的人.如果你正在使用IronPython,我真的很感激你知道如何处理它的以下几个方面:
我真的很想相信这些东西,所以我仍然在假设我错过了一些东西.我真的想知道其他人是如何处理IPy的,特别是如果他们这样做的方式并不像我们只是失去了15年的工具开发价值.
更新:(2010年7月)这个问题看起来很陈旧,现在有两个官方的IronPython工具用于VS和PyCharm,这两个工具都显示了许多承诺,当我写这个时它们都没有.感谢所有回答的人.对于那些没有使用自动重构工具而感到高兴的人,我是否可以建议您永远不要使用具有良好自动重构功能的IDE.在你拥有之后,你会想知道为什么你认为你对find-replace感到高兴,而你再也不想没有它了.如果不出意外,立即重命名标识符而不必担心替换错误的文本位的能力会改变您命名内容的整个方法.
Sak*_*ake 11
do you use the .NET framework without Intellisense?
Run Code Online (Sandbox Code Playgroud)
是.我只使用emacs和IronPython."M- /"对我来说已经足够了.当我真正需要有关SDK的信息时,我偶尔会切换到Reflector和MSDN.
Refactoring
Run Code Online (Sandbox Code Playgroud)
当你说"重构"时,你的意思是"自动重构".编码时我做了很多重构.一些自动化可能会更好.但我对手工重构很好.它还迫使我加入更多测试.我从来没有广泛使用任何具有重构功能的IDE,也许这就是为什么我没有受苦.简单的搜索和替换对我来说很好.
Crippling startup time
Run Code Online (Sandbox Code Playgroud)
是的,这是我的主要痛苦,尽管我正在使用4G Ram的3GHz四核处理器,但运行359个测试用例需要50秒.一半的时间(25s)是启动时间!! 在导入大型模块时,IronPython似乎执行了一些非常繁重的处理任务.我现在正计划将我的测试分成几部分来缓解这种痛苦.
Interactive hacking - Do you use the console?
Run Code Online (Sandbox Code Playgroud)
我偶尔使用控制台,当我想尝试一些特殊的想法时.没有问题.然而,大部分时间我都把我的想法写进了单元测试中.
Debugging - what's the story here?
Run Code Online (Sandbox Code Playgroud)
如果调试意味着断点和变量检查.我只使用print语句来表示那些东西.我正在努力的应用程序即将生存并保持至少十年.为了处理有缺陷的代码,我只打赌3件事:可理解代码,单元测试和扩展日志.
Unit testing
Run Code Online (Sandbox Code Playgroud)
我从来没有接近你提到的任何工具.只需使用unittest.TextTestRunner.除了可怕的创业时间,我没有任何其他抱怨.
**更新**
我刚刚升级到IPy 2.6B1并取得了惊人的成果.启动时间从25秒减少到6秒,我的整体测试时间从50秒减少到16秒!
惊人 !
Pat*_*olf 10
如何使用Visual Studio 2010的IronPython工具?
IronPython工具提供Python代码编辑器,基于文件的项目系统和交互式Python解释器,所有这些都在Visual Studio 2010中,并且都是免费的. http://ironpython.net/tools/
我认为这个加载项可以涵盖你的大部分要点.
希望能帮助到你,
帕特里克
IronPython是一个很好的解决方案,但我会继续回到CPython for Windows.为什么?
根据我的经验,Windows下的CPython,Mac OS/X和*NIX几乎是一样的.我可以在每个环境中使用几乎所有的"电池".我经常在Linux上开发应用程序并发送到Windows服务器.抛开线程的几个问题,我没有任何问题.
另一方面,IronPython是围绕.Net Framework的Python语言包装器.我发现使用它比使用C#更好,但这就是全部.如果没有大量的重做,我的CPython程序就无法运行.IronPython的电池不同.
如果您的目标是在.Net上提高效率,那么IPy可能就好了.但是,如果你正在寻求便携式Python技能,那么我会避免它.
我正在使用PyDev编写IronPython代码.我试图尽可能地分离.NET特定的代码,以便我可以从PyDev中运行(Iron)Python脚本.感谢PyDev,我可以使用Pylint,可以在http://www.logilab.org/857找到.PyDev的最新版本甚至能够根据文件或项目配置解释器.因此,我可以轻松地将解释器从IronPython切换到CPython,反之亦然.通过这种方式,我可以看到我的代码在Python实现之间是可移植的.(虽然我没有使用,但Jython 2.5 RC也可以在PyDev中使用.)
有了Python和IronPython 2.5兼容代码,我可以在PyDev中使用重构,请参阅http://pydev.sourceforge.net/refactoring.html.
如果它支持IronPython 2.x,IronPython Studio将是一个不错的选择,但遗憾的是,它没有.
| 归档时间: |
|
| 查看次数: |
8373 次 |
| 最近记录: |