Подтвердить что ты не робот

Почему я должен использовать Powershell над С#?

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

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

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

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