Создание автономной консоли (оболочки) для доменных операций - PullRequest
5 голосов
/ 16 июня 2010

Скажите, что у меня есть системный сервис, и я хочу предложить низкоуровневый доступ к сервису.

Для этой цели я хотел бы создать отдельное консольное приложение, которое каким-либо образом подключается к серверному процессу и позволяет пользователю вводить команды, разрешать ему использовать автозаполнение и автоматическое предложение при нажатии на одну или две клавиши TAB такие как оболочка linux bash, mysql cli, cmd.exe и многие другие), предоставляют возможности редактирования командной строки (история, клавиши курсора для перемещения по тексту ..) и т. д.

Теперь, это не такая большая проблема, чтобы создать что-то подобное, свернув свое собственное с нуля, обрабатывая ввод пользователя, сканируя нажатые клавиши и делая правильные действия. Но зачем изобретать велосипед? Есть ли какая-нибудь библиотека / инфраструктура, которая помогает с такими проблемами, как библиотека readline, которая предлагает улучшенные возможности редактирования командной строки под linux?

Конечно, эта новая "оболочка" будет отвечать только на допустимые, специфичные для домена команды и предлагать допустимые аргументы, параметры, переключатели ...

Есть идеи? Спасибо!

1 Ответ

1 голос
/ 16 июня 2010

Похоже, подходит для PowerShell. Это полноценная оболочка, вы можете создавать собственные оболочки, содержащие набор оснасток для команд, специфичных для вашего домена (которые могут быть разработаны в C #), а также позволяет удаленно выполнять команды.

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

Многие продукты MS-сервера теперь имеют собственные оболочки PowerShell, например,

Обмен - http://technet.microsoft.com/en-us/library/dd297939.aspx

Обновление

Недостатком является изучение новой оболочки и того, как ее настраивать, в частности, объектно-ориентированной. Кроличья нора углубляется в это, но раскручивание вашей собственной функциональности оболочки, очевидно, может занять довольно много времени само по себе.

Некоторая связь:

Книга: Windows PowerShell в действии

Общее: http://www.computerperformance.co.uk/powershell/index.htm

Вводная команда \ span-in: http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

...