Как построить приложение поверх PowerShell? - PullRequest
6 голосов
/ 27 февраля 2009

Microsoft, похоже, настойчиво настаивает на том, чтобы все их серверные приложения (например, SQL Server 2008, Exchange Server и т. Д.) Имели некоторый тип интеграции PowerShell. Логика имеет смысл в том, что вы можете управлять приложением из графического интерфейса или интерфейса командной строки.

Поэтому, если бы кто-то следовал этой тенденции и хотел создать приложение с интерфейсом PowerShell, как бы он вообще начал?

Кто-нибудь в сообществе делал подобные вещи? Если да, то, что кажется лучшим подходом?

Обновление

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

Часть путаницы заключается в том, действительно ли хостинг PowerShell необходим для создания приложения поверх него. Из того, что я нашел, это не так (то есть командлет). Однако я еще не видел, чтобы кто-то действительно обсуждал это в ответах.

Ответы [ 5 ]

5 голосов
/ 27 февраля 2009
3 голосов
/ 27 февраля 2009

Консоль администрирования Exchange 2007 непосредственно размещает PS и отображает каждое действие пользовательского интерфейса, показывая вездесущий «и вот PowerShell, который вы только что попросили меня сделать», модель пользовательского интерфейса). Консоли администрирования SQL Server 2005 и 8 демонстрируют концепцию отображения всего в пользовательском интерфейсе в виде сценариев как способ упростить использование сценариев (но в SQL Server отсутствует поддержка PowerShell) (Различие между типом поддержки Exchange и SQL Server добавлено в ответ комментарий, спасибо)

PowerScripting podcast имеет несколько интервью на подобные темы. Также подкаст get-scripting

2 голосов
/ 29 августа 2009

Несколько лет назад я посещал PowerShell / MMC 3.0 Devlab в Microsoft, который учил, как это делать. Основная идея заключалась в создании «функциональности управления» с помощью серии командлетов PowerShell в PSSnapin для вашего приложения. Люди, ориентированные на CLI, могут напрямую загружать оснастку и вечеринку в свои командлеты Для ориентированного на графический интерфейс пользователя вы создаете оснастку MMC, в которой размещается пространство выполнения PowerShell, которое в ответ на действия графического интерфейса выполняет соответствующие командлеты PowerShell для настройки приложения, которым управляют. Для бонусных баллов вы показываете, какой код PowerShell будет выполняться графическим интерфейсом MMC, чтобы код можно было скопировать и вставить в сценарий. В Интернете есть множество примеров, которые показывают, как разместить пространство выполнения PowerShell в вашем (или MMC) процессе, выполнить сценарий PowerShell в этом пространстве выполнения и получить результаты.

1 голос
/ 29 августа 2009

Это интригующая идея!

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

Например, предположим, у вас есть типичное программное обеспечение для администрирования. Не особо важно, что конкретно. В классическом сценарии разработки приложений я бы обычно пытался сгенерировать список Command объектов (вещей, которые бы реализовывали своего рода ICommand), и тогда мой интерфейс связывался бы с ними.

Предположим, теперь вы должны создать командлет для каждой команды. Пользовательский интерфейс более или менее существовал бы как дружественный интерфейс для базовой логики в наборе командлетов.

Да, хорошо, ничего нового здесь. Люди давно этим занимаются, создавая графические интерфейсы на основе инструментов командной строки. Я думаю, что ключевое отличие состоит в том, что вместо этого вы будете создавать отдельные инструменты командной строки из концепции самого приложения. Черт, может быть, и приложению, и командлетам было бы более разумно ссылаться на некоторую общую библиотеку команд, а не заставлять GUI располагаться поверх самих командлетов.

Ошибка - извините за рассеянный ответ. Этот ответ был в значительной степени чисто потоком сознания. :)

0 голосов
/ 29 августа 2009

Вы можете попробовать первичные формы для создания полного приложения из скрипта или вам нужно собрать свое приложение с помощью командлетов snappin (предыдущий - то, что используется sql, exchange и т. Д.), Но ссылка на формы primail здесь

http://www.primaltools.com/products/info.asp?p=PrimalForms

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