Зачем мне использовать Powershell вместо C #? - PullRequest
17 голосов
/ 26 мая 2009

Я знаю, что Powershell достаточно мощен в том смысле, что это язык сценариев, на котором у вас есть доступ ко всей среде .Net (это все, что я знаю об этом). Но я изо всех сил пытаюсь понять, что такое шумиха вокруг Powershell, когда я мог использовать C # для того, чтобы кодировать точно такую ​​же вещь?

Ответы [ 4 ]

16 голосов
/ 26 мая 2009

Я думаю, что вы задаете неправильный вопрос. Должно быть: «Почему я должен использовать C #, если я могу использовать Powershell для того же кода?»

Это старый аргумент сценариев в сравнении с скомпилированным программным обеспечением. Решение для сценариев более гибкое (вам просто нужен Блокнот для редактирования сценария, компилятор не требуется).

Для небольшой задачи сценарий быстрее написать, развернуть и изменить, чем создать проект в Visual Studio, скомпилировать его, развернуть его в целевой системе, исправить код, снова скомпилировать, снова развернуть ...

Для любой более крупной задачи я определенно предпочитаю IDE, которая компилирует мой код. Сообщения об ошибках только на сломанной сборке являются огромной помощью для поиска причины. (Эффективность времени выполнения обычно лучше в скомпилированном программном обеспечении, но с современными процессорами она сводится к разнице в несколько миллисекунд, поэтому для большинства проектов это больше не имеет значения.)

Вы можете делать любые проекты в C # или Powershell. Это не значит, что вы должны .

8 голосов
/ 26 мая 2009

Когда Powershell используется не как оболочка, а как среда программирования, вы можете думать о Powershell как об интерактивной игровой площадке .NET. Я бы никогда не использовал Powershell для создания прототипов GUI, но в прошлом я использовал его для игры с объектами .NET и их методами для решения конкретной проблемы. Простое изменение командной строки более продуктивно, чем выполнение цикла редактирования / сохранения / компиляции / запуска каждый раз, когда вы вносите изменения.

Кроме того, соответствующие домены для любого языка очень разные. По сути, Powershell - это инструмент администрирования и автоматизации, позволяющий упростить доступ ко многим вещам, которые могут быть более неудобными для использования из другой среды, например к реестру, хранилищу сертификатов, WMI и другим.

Вы, вероятно, не хотите писать приложение для базы данных предприятия с помощью Powershell, и вы, вероятно, не хотите писать программу на C # просто для того, чтобы копировать некоторые вещи в файловой системе.

1 голос
/ 26 мая 2009
  • Это не скомпилированный язык.
  • Он имеет подключаемую экосистему с множеством «библиотек» для выполнения различных задач, специфичных для предметной области, таких как копирование файлов, воспроизведение с помощью AD, Exchange.
  • Это правильный инструмент для другого, слегка перекрывающегося набора заданий.
  • Это намного более мощный и непротиворечивый, чем CMD.EXE, и другие вещи произошли из командных оболочек, которые должны были поместиться в 8K RAM.

И в любом случае, почему вы используете C #, ILASM может делать все с гораздо большим контролем, и вы все равно просто вызываете вещи в BCL.

0 голосов
/ 26 мая 2009

Я обобщил ваш вопрос в следующем:

Зачем мне пользоваться (язык более высокого уровня что я мало знаю) более (ниже уровень языка, о котором я знаю больше)?

Цель языка более высокого уровня - абстрагировать общие задачи, чтобы они быстрее писались. Многие люди, которые задают этот вопрос, не могут понять эту пользу языка более высокого уровня, потому что они уже знакомы со своим языком более низкого уровня.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...