Утилита управления Directum Development Studio

Предыстория

Всем разработчикам Directum RX известна особенность инструмента разработки, которая заключается в следующем: безболезненно на один стенд можно установить только одну версию Directum Development Studio (DDS) и можно работать только с одним проектом. 

Не так давно коллеги поделились набором скриптов PowerShell, которые помогают обойти эту особенность. Действительно, теперь на стенде достаточно один раз настроить структуру папок для хранения версий DDS, каталогов с решениями, и, используя скрипты, переключаться между версиями и проектами.

Задача

Мы изучили данный набор скриптов и пришли к выводу, что при частом использовании оболочка PowerShell может быть не очень удобна. Поэтому для облегчения работы со скриптами была разработана утилита, которая в графическом режиме позволяет выполнять две самые частые операции: переключение между проектами и версиями Directum RX.


Рисунок 1. Окно утилиты.

Возможности утилиты:

  1. Настройка каталога, который содержит конфигурационные файлы проектов.
  2. Выбор в выпадающем списке конфигурационного файла для переключения на проект.
  3. Настройка каталога, который содержит установленные версии Directum RX.
  4. Выбор в выпадающем списке версии Directum RX для переключения.
  5. Отображение информации о том, на какой проект или версию было последнее переключение.
  6. Защита от лишних действий: если в выпадающем списке не выбраны значения или они совпадают с предыдущими, то кнопки Переключить проект и Переключить версию будут недоступны.
  7. Сохранение настроек конфигурации утилиты через соответствующий пункт меню Файл.

Особенности утилиты:

  1. Исполняемый файл утилиты должен располагаться в каталоге со скриптами PowerShell.
  2. Запуск утилиты необходимо выполнять с привилегированными правами, так как в процессе выполнения скриптов выполняется остановка и запуск службы IIS и DirectumServiceRunner.

Перспективы развития решения

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

Несколько скриншотов с примерами работы.



Рисунок 2. Процесс переключения между проектами.


Рисунок 3. Процесс переключения между версиями Directum RX.


Рисунок 4. Сохранение настроек утилиты.

Прикреплен файл: ManageDDS.zip

Организация: Акелон (Akelon)
4
64
Авторизуйтесь, чтобы оценить материал.
Утверждено

У вас похожая задача?

Обсудите реализацию с экспертом Directum

Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле

Благодарим за интерес! Мы свяжемся с вами.

Комментарии (5)

Игорь Макаров

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

Несколько наблюдений:
1. Не подхватывает обновление списках xml-файлов с описанием проекта. Требуется либо перезапустить утилиту, либо изменить каталог с конфигами.
2. Запоминает проект, на который переключились предыдущий раз и не дает переключиться на него повторно - кнопка недоступна. Иногда это нужно. Например, когда конфиг был сделан некорректно и был подправлен. Может не блокировать кнопку переключения?
3. Требует расположения в папке скриптов - осложняется синхронизация скриптов с гит-репозиторием. Хорошо бы настраивать путь к скриптам. Может просто через xml-ку, чтобы лишний GUI не делать?
4. Если поменять настройку каталога с проектами, то в списке конфигурационных файлов будет как файлы из предыдущего каталога, так и из нового.
5. По ddsSettings.xml и session_info.xml:
  - может сделать один и назвать по именин приложения - ManageDDS.xml? Проще будет искать, если в каталоге есть другие файлы.
  - сохранять в структурированном виде, без  сжатия пробельных символов, чтобы проще было глазами посмотреть?
  - не требовать явного сохранения настроек, а автоматически сохранять при изменении любой настройки?
6. В поле с выбором файла конфигурации добавить бы фильтрацию по подстроке. А то у меня около 50 разных проектов разных для десятка версий RX - длинный список получается. Причем самые активно используемые в конце, т.к. в качестве префикса используется версия RX.
7. Может попробовать показывать ключевые переменные (DATABASE, DOC_ROOT_DIRECTORY, GIT_ROOT_DIRECTORY, REPOSITORIES) при выборе конфига проекта?

P.S. В скриптах добавил pause, чтобы консоль не закрывалась сразу и была возможность посмотреть результат работы скрипта. 
 

Александр Волошин

Игорь, спасибо большое за развернутый комментарий и проведенное дополнительное тестирование =) Рад, что утилита сделала немного удобнее Вашу работу. Все Ваши наблюдения попадут в бэклог развития утилиты и будут реализованы в ближайшем будущем.

Нана Абуладзе

Вы исходные коды утилиты не выкладывали в открытый доступ? Есть желание настроить ее под себя.

Андрей Андреев

Нана, то же мне бином Ньютона, на сишарпе все в открытом доступе.. хотя есть хорошие, но платные  обфускаторы.Прикреплен файл: Form1.cs
Прикреплен файл: Program.cs
​​​​​​​
 

Иван Романов

Коллеги, утилита поддерживает все последние изменения в репозитории со скриптами?

Авторизуйтесь, чтобы написать комментарий
Directum Awards 2024
Какой проект лучше?
Авторизуйтесь, чтобы оценить материал.
Авторизуйтесь, чтобы оценить материал.
Directum Awards 2024
Спасибо за активность!
Ваш голос принят