Хотите перейти от пакетных файлов и использовать ...? - PullRequest
2 голосов
/ 26 июня 2011

В настоящее время мы используем пакетные файлы для загрузки процедур, выполнения файлов сценариев и вызова хранимых процедур, вызывая утилиты sql sefver cmdutil, dtexec и osql.

На основе значения возвращенных кодов выхода мы определяем следующий шаг для запуска.

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

Я подумываю об использовании VB WSH Script, поскольку он, кажется, дает мне лучшие языковые конструкции (например, если иное) и доступ к COM-объектам, но я полагаю, что даже это немного устарело и что я должен смотреть на Powershell .

Мой вопрос такой:

Каковы преимущества / недостатки использования Powershell по сравнению со скомпилированным кодом .NET для разработки программы управления Workflow? Я подозреваю, что среда разработки и проверка времени компиляции с использованием среды разработки Visual Studio сделают меня более продуктивным, чем использование сценариев.

Я делал приложение hello world, чтобы попытаться использовать одну из моих библиотек .NET от PS, и у меня сложилось впечатление, что PS просто обрушивается на плохой код. Имеет ли он достаточные возможности обработки ошибок по сравнению с скомпилированным кодом .NET?

Ответы [ 4 ]

5 голосов
/ 26 июня 2011

Powershell может делать все, что вы делаете в командном файле, и все, что вы можете использовать в C #.

Это очень хороший язык сценариев (простота, с которой вы можете писать сценарии в Ruby и Python, также можно найти в Powershell), и для него также есть несколько хороших IDE. Учитывая, что он не полностью поддерживается в VS, в этой области также предпринимаются некоторые усилия, такие как PowerGUI VS

С Powershell вы можете управлять ошибками, используя коды выхода, как и в других местах, а также try-catch исключения и другие конструкции, такие как trap, throw и т. Д. Управление ошибками богато Powershell. Вы также можете использовать код C # в Powershell, используя такие командлеты, как Add-Type.

Субъективная часть ответа:

Я подозреваю, что развитие проверка среды и времени компиляции использование Visual Studio IDE сделает я более продуктивен, чем при использовании скрипта.

То, что вы хотите сделать, кажется идеальным для сценариев. И Powershell - естественный выбор для написания сценариев в Windows. Я не понимаю, как «проверка времени компиляции» делает вас более продуктивным, я бы подумал, что языки сценариев имели преимущество в том, чтобы сделать вас продуктивными.

Я не совсем понимаю, что вы подразумеваете под PS just blows over bad code - но Powershell, как и любой другой язык, и плохой код или нет, зависит от того, как вы пишете код.

1 голос
/ 27 июня 2011

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

Между инструментами есть принципиальная разница.Скомпилированный язык - это черный ящик, а скрипт податлив.Оба одинаково податливы для своих разработчиков, но как только программа скомпилирована и развернута на 100 серверах, файл .exe остается неизменным и непрозрачным для всех, кроме разработчика.При развертывании сценария на 100 серверах все 100 администраторов могут посмотреть на него, позаимствовать у него, по-новому использовать его.

PowerShell позволяет 5 администраторам моей команды просматривать мой код без лицензии MSDN прямо на сервере, где выполняется код.Они могут позаимствовать, настроить и понять, что происходит.И администраторы из других команд могут сделать то же самое, не выясняя, какой репозиторий CVS проверить.

Я бы порекомендовал небольшие сценарии, легко соединенные вместе, с умеренными комментариямиКогда-нибудь они действительно могут быть прочитаны кем-то.: -)

1 голос
/ 26 июня 2011

Powershell / .net dev зависит от типа ваших разработчиков.вероятно, не так много разной производительности для типа задачи, которую вы смотрите.Возможный ответ - написать код в .net и собрать все вместе, используя powershell, так как powershell может отлично интегрироваться с .net и всеми методами.Доступ к com-объекту из .net не так уж и интересен, возможно, проще в powershell ..

1 голос
/ 26 июня 2011

Возможно, есть также возможность использования ironpython?Это, конечно, если вы предпочитаете python вместо powershell и можете установить его на любой компьютер, на котором выполняются сценарии.У вас есть хорошая среда разработки для этого и в Visual Studio.

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