Здравствуйте, DaDa Cloun, Вы писали:
DC>Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п.
PowerShell — и есть кастомизируемый командный интерпретатор. Состав команд полностью определяется набором загруженных в контекст cmdlet-ов.
То есть, самый кошерный способ — вывернуть твоё приложение "наизнанку", т.е. полностью переписать его в виде cmdlet-ов повершелла.
К примеру, именно так администрируются монстроприложения типа Exchange или Office Communications Server.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, AndrewVK, Вы писали:
AVK>В янусе есть готовая реализация, заодно и с расширяемой инфраструктурой команд. Единственное, из сборки придется руками выдернуть, оно в отдельные проекты не вытащено пока.\r\n
Спасибо за ответ, но не могли бы вы дать ссылочку на янус. Дело в том что я впервые слышо про этот проект, а в интернете нашел только спутник сатурна и че-то там в римской мифологии..
Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
Здравствуйте, DaDa Cloun, Вы писали:
DC>Здравствуйте
DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
DC>Спасибо
Здравствуйте, Sinclair, Вы писали:
S>Подозреваю, что ты ищешь... PowerShell!.
Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п.
Здравствуйте, DaDa Cloun, Вы писали:
DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
Имхо, тебе нужно смотреть в сторону просто парсера командной строки.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
DC>>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным. V>Имхо, тебе нужно смотреть в сторону просто парсера командной строки.
Это у меня уже есть, но суть в том что цикл работы приложение которое я пишу выглядит так: запустил — ... Т.е. мне нужно управлять им в запущенном виде. Состояние свое оно не сохраняет ни в базу ни куда еще. Но иногда нужно вмешаться в деятельность приложения (ведь полную автономию не запрограммируешь). Поэтому мне и нужно командное управление.
Здравствуйте, Sinclair, Вы писали:
DC>>Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п. S>PowerShell — и есть кастомизируемый командный интерпретатор. Состав команд полностью определяется набором загруженных в контекст cmdlet-ов. S>То есть, самый кошерный способ — вывернуть твоё приложение "наизнанку", т.е. полностью переписать его в виде cmdlet-ов повершелла. S>К примеру, именно так администрируются монстроприложения типа Exchange или Office Communications Server.
Спасибо за терпеливое объяснение. PowerShell штука тяжелая, сходу я не разобрался и не нашел то что мне нужно. Буду изучать.
Здравствуйте, Sinclair, Вы писали:
DC>>Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п. S>PowerShell — и есть кастомизируемый командный интерпретатор. Состав команд полностью определяется набором загруженных в контекст cmdlet-ов. S>То есть, самый кошерный способ — вывернуть твоё приложение "наизнанку", т.е. полностью переписать его в виде cmdlet-ов повершелла. S>К примеру, именно так администрируются монстроприложения типа Exchange или Office Communications Server.
Есть правда одно требование, вероятно не совместимое с PowerShell — работа приложения под Mono...
Здравствуйте, DaDa Cloun, Вы писали:
DC>Здравствуйте
DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
DC>Спасибо
Ну, навскидку ничего особо сложного нет реализовать полностью "ручками"... например, так:
1) единожды запущенное приложение создаёт .NET Remoting server.
2) повторный запуск ищет существующий сервис, если находит — то отсылает ему любые доп. команды, если они имеются конечно. Если сервис не находится — значит сейчас происходит первый запуск, см. п.1.
Здравствуйте, DaDa Cloun, Вы писали:
DC>Здравствуйте
DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
Задача делится на редактор командной строки и парсер команд. Это можно попробовать найти готовое.
Парсер достаточно легко реализуется например на Antlr
Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.
Здравствуйте, mormat, Вы писали:
M>Здравствуйте, DaDa Cloun, Вы писали:
DC>>Здравствуйте
DC>>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
DC>>Спасибо
M>Ну, навскидку ничего особо сложного нет реализовать полностью "ручками"... например, так: M>1) единожды запущенное приложение создаёт .NET Remoting server. M>2) повторный запуск ищет существующий сервис, если находит — то отсылает ему любые доп. команды, если они имеются конечно. Если сервис не находится — значит сейчас происходит первый запуск, см. п.1.
M>Выглядит просто...
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, DaDa Cloun, Вы писали:
DC>>Здравствуйте
DC>>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.
Z>Задача делится на редактор командной строки и парсер команд. Это можно попробовать найти готовое.
Z>Парсер достаточно легко реализуется например на Antlr Z>Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.
Наверное, можно Microsoft.JScript.JScriptCodeProvider (in Microsoft.JScript.dll) использовать?
Он умеет парсить и компилировать.
Здравствуйте, bl-blx, Вы писали:
Z>>Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.
BB>Наверное, можно Microsoft.JScript.JScriptCodeProvider (in Microsoft.JScript.dll) использовать? BB>Он умеет парсить и компилировать.
Умеет, но команды на ява скрипте будут так себе выглядеть в шелле.
Тот же руби даcт хороший DSL,
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, bl-blx, Вы писали:
Z>>>Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.
BB>>Наверное, можно Microsoft.JScript.JScriptCodeProvider (in Microsoft.JScript.dll) использовать? BB>>Он умеет парсить и компилировать.
Z>Умеет, но команды на ява скрипте будут так себе выглядеть в шелле. Z>Тот же руби даcт хороший DSL,
Z>
В янусе есть готовая реализация, заодно и с расширяемой инфраструктурой команд. Единственное, из сборки придется руками выдернуть, оно в отдельные проекты не вытащено пока.\r\n
... << RSDN@Home 1.2.0 alpha 4 rev. 1255 on Windows 7 6.1.7600.0>>
Здравствуйте, DaDa Cloun, Вы писали:
DC>Спасибо за ответ, но не могли бы вы дать ссылочку на янус. Дело в том что я впервые слышо про этот проект, а в интернете нашел только спутник сатурна и че-то там в римской мифологии..
Здравствуйте, DaDa Cloun, Вы писали:
DC>Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.