Использование кода C # в IronPython - PullRequest
3 голосов
/ 03 февраля 2011

Я собираюсь приступить к проекту .NET: нам нужно создать программу, использующую некоторый существующий код C #, и я надеюсь использовать IronPython. (Я опытный программист на Python, но немного новичок в .NET).

Мой вопрос: подходит ли IronPython для использования в основном кода на C #, или было бы лучше просто использовать C #? Если IronPython хорошо подходит, есть ли подводные камни, на которые стоит обратить внимание?

Ответы [ 2 ]

5 голосов
/ 03 февраля 2011

Вам необходимо скомпилировать код C # в сборку (DLL), которую вы можете использовать в IronPython.После этого IronPython может использовать это так же, как и любую другую сборку .NET.

Это распространенный сценарий использования IronPython.

1 голос
/ 04 февраля 2011

Если вы находитесь в среде Windows по независящим от вас причинам, использование IronPython дает множество преимуществ.

  1. Это как Python, только .NET.Как только вы изучите элементы idosyncratic, как ссылаться на сборку, как создавать экземпляры объектов, просматривать объекты и т. Д., Это действительно хорошо.

  2. Для разработки Visual Studio вам не требуется.Notepad ++ или любой другой текстовый редактор - все, что вам нужно.Если вам действительно нужна IDE, вы можете использовать SharpDevelop.Теперь, если у вас VS2010, новый плагин для Ironpython хорош и должен улучшаться в будущих выпусках.

  3. С выпуском Ironpython 2.7 и .NET 4.0 проблемы времени запуска предыдущихверсии были в основном отменены.

  4. Я считаю, что подход WPF и XAML гораздо проще, чем wx, для создания приложений с графическим интерфейсом.быть скомпилированными в exe для легкого распространения

Тем не менее, существуют недостатки.

  1. Большинство пакетов не устанавливаются непосредственно в Ironpython, заставляя васустановите в CPython, а затем скопируйте соответствующие модули.

  2. Расширение Python, использующее разделяемые библиотеки pyd, не будет работать, если вы не используете Ironclad, и даже тогда у вас могут возникнуть проблемы.

  3. Вы отказываетесь от кроссплатформенности, если ваши пользователи не используют Mono, и даже тогда вы теряете некоторые классные функции, такие как WPF.

  4. Вынемного позади кривой развития.Ironpython в настоящее время находится на 2,7 Beta 1 и был с октября, когда Microsoft выпустила код в дикую природу.До этого никто за пределами MS не мог представить патчи.Руководство сообщества готовится к выпуску RTM 2.7 в феврале, а затем приступит к разработке 3.x.

...