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

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

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

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

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

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

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

11
задан Mike Pennington 25 June 2013 в 17:47
поделиться

3 ответа

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

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

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

6
ответ дан 3 December 2019 в 06:19
поделиться

Я не уверен, что 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).

11
ответ дан 3 December 2019 в 06:19
поделиться

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

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

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

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

2
ответ дан 3 December 2019 в 06:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: