Вы бы порекомендовали Iron Ruby, Iron Python или PowerShell для создания приложения на C # в качестве хоста сценария? - PullRequest
11 голосов
/ 14 августа 2010

Вы бы порекомендовали Iron Ruby, Iron Python или PowerShell для создания приложения на C # в качестве хоста сценария?

После некоторой быстрой работы я сейчас склоняюсь к powershell по двум основным причинам (обратите внимание, чточисто мои мнения, и если они ошибочны, я хотел бы знать !!!):

1) Создать пространство выполнения с классами в вашем приложении просто;для этого легко сделать ваше приложение сценарием.

2) Я слышал некоторые слухи о том, что IronRuby и IronPython теряют поддержку со стороны Microsoft, поэтому они могут быть плохим долгосрочным решением?

Поскольку я впервые добавляю скрипты вОднако, я бы хотел получить все советы от людей, которые ходили по этому пути раньше.

В частности, кроме того, что я хотел бы знать, согласны ли вы с моими двумя пунктами выше, я хотел бы знать,если IronRuby и IronPython гораздо проще использовать (для пользователя, а не разработчика), чем powershell, и если по вашему опыту использовать DLR так же просто, как просто передать объект в пространство выполнения powershell?И если я добавлю поддержку сценариев DLR и IR / IP, будет ли мое приложение обратно совместимо с XP?

Ответы [ 3 ]

11 голосов
/ 16 августа 2010

Я не уверен, что PowerShell "является языком сценариев для приложений" в своих долгосрочных целях. Это первая оболочка, вторая система интеграции и автоматизации и, в-третьих, язык сценариев оболочки ... поскольку он вообще не распространяется, я не уверен, куда встраивается встроенный сценарий.

Конечно, очень легко разместить PowerShell - при условии, что он предварительно установлен на ваших целевых ПК - так что это очень жизнеспособный вариант, но я думаю, что в целом это так же легко сделать с IronRuby или IronPython.

Я сомневаюсь, что сам DLR исчезает, поэтому я думаю, что использование языка DLR все еще является хорошим выбором для этого: вы будете настроены на прием других языков DLR с гораздо меньшими усилиями, а DLR и языки могут распространяться .

Кроме того, работа по размещению PowerShell дает вам только PowerShell, тогда как вы можете использовать ту же работу, чтобы заставить работать IronPython и IronRuby. Кто знает, поскольку PowerShell - это динамический язык, возможно, он будет перенесен в DLR с соответствующей поддержкой динамики в будущей версии ... но вряд ли он когда-либо будет распространяться, поскольку Microsoft не считает его инструментом разработки, а скорее основная часть ОС.

Итог: использование DLR гораздо более переносимо - и не только для XP, но даже для Mono (и, следовательно, для Linux, OS X, iOS, Android и т. Д. ... и даже для Интернет или Windows Phone через Silverlight).

6 голосов
/ 14 августа 2010

номер 2 - это правда (динамические команды lang уже давно теряют численность персонала) и отличная причина. Ruby и Python не являются языками MS, и поэтому Iron * просто «работает на .NET». PowerShell - это создание Microsoft, контролируемое Microsoft и поддерживаемое Microsoft.

Что еще более важно, несколько продуктов Microsoft сильно зависят от PowerShell (Exchange, SharePoint и т. Д.), Поэтому очень мало вопросов о постоянной поддержке PowerShell как языка.

Наконец, PowerShell рассматривает возможность использования сценариев для других приложений как одну из первоклассных целей поддержки.

2 голосов
/ 17 августа 2010

Я в похожей позиции.Я решил использовать сценарии IronPython, но с тех пор, как я увидел доклад Андерса Хейлсберга «Будущее C #», у меня было чувство, что IronPython обречен.

В интересах Microsoft было разработать DLR, но в конечном итоге они хотят, чтобы мы использовали инструменты и языки, которые они контролируют.В конце концов, разве вы не используете C #, а не Java?Так как же будет выглядеть динамический язык Microsoft?Как насчет динамического, интерпретируемого C # (Iron C #)?Из разговора Хейлсберга стало ясно, что это не так далеко.У него даже было консольное окно с интерфейсом REPL.Тем не менее, всегда есть возможность для Iron VB.Разговор о закрытии цикла.

С положительной стороны для нас, программистов, Iron C # также решает еще одну проблему, с которой у меня возникают проблемы - существование двух параллельных объектных сред, одного из объектов .Net, одногообъектов Python.Требуется работа, чтобы добраться от одного до другого.Я предполагаю, что Iron C # будет использовать структуру классов .Net.

Мой совет: придерживайтесь классов Iron Python и .Net.Когда произойдет Iron VB или Iron C #, это будет быстрый, возможно, автоматический языковой перевод.Кроме того, если достаточное количество из нас использует IronPython, Microsoft может изменить свое мнение.

...