Вежливое приглашение к разработке

Критикуешь — предлагай Нас нередко ругают на Хабрахабре за то, что статьи недостаточно технические, а описание работы программы плохо детализировано. Но на самом деле каждый читатель понимает, что описать в одном посте абсолютно все — просто невозможно, потому что несколько лет развитие DRP шло во множестве направлений.Часть из них связана непосредственно с исполняемым файлом, пресловутым .exe’шником; другая — с созданием архива и, что немаловажно, индекса драйверов; третья — с тестированием приложения и отдельных версий драйверов для различного оборудования как на разных версиях ОС Windows, так и на железных стойках. Часть из этих решений мы отдаем в тестирование пользователям, проявившим особенный интерес.

Предлагаешь — делай Поэтому мы решили пригласить всех желающих принять участие в непосредственной разработке windows-приложения DRP, ведь всегда проще взглянуть на код, к тому же мы принимаем всю полезную помощь в создании наиболее удобного для пользователя приложения для установки и обновления драйверов.GitHub-репозиторий доступен любому и мы будем рады вашему предметному интересу, багрепортам и любым возможным улучшениям программы.

У нас есть ряд проблем, которые мы сможем решить вместе с опытными web-разработчиками:

— Unit-тесты ПО. У нас уже есть небольшие наработки по тестированию оборудования и автоматическое тестирование в виртуальной лаборатории (на базе Azure).— Документация. Мы до сих пор не придумали, при помощи чего генерировать документы.— А также будущие фичи для приложения и их реализация.

20b053eb4a02458b989947c8399cad18.png

Введение DriverPack Solution написан на языке HTA (HTML Application), поэтому программный код исполняется движком Internet Explorer (процесс mshta.exe), являющимся стандартным на всех версиях Windows. Его описание находится по следующему адресу.В DRP используются популярные js- и html-фреймворки, такие как: jQuery Tools, Bootstrap и др. Используемая сейчас нами база-данных: SQLite

Да, HTA — проблема. В нём хватает недостатков, однако его преимущества также очевидны:

Взаимосвязь между фронт- и бэк-эндом Скриптовый язык, простое редактирование Доступ к реестру и файловой системе Использование Javascript UI-библиотек Отсутствие компиляции Краткое описание HTA не является объектом для ограничений безопасности, накладываемых на Web-страницы, а выполняется также, как любой исполняемый файл. HTA-программы не могут быть «подписаны», однако могут быть установлены из различных инсталляционных форматов.HTA выглядит как полноценное Windows-приложение, поэтому привычно для любого пользователя и объединяет в себе все возможности браузера Explorer: объектную модель, HTML, каскадные листы стилей, скрипты и события, а также специфическую функциональность HTA.

Концепция DRP 16, разработкой которой мы заняты прямо сейчас, следующая:

Модульность Многоязычность Покрытие авто-тестами Асинхронность Быстрая скорость работы Структура папки Drivers\ — драйверпаки (7zip архивы драйверов); Indexes\ — индексные файлы, для быстрого поиска по базе драйверов; Soft\ — софт для автоматической установки; DriverPackSolution.exe — Launcher, передает управление файлу DriverPackSolution.html; \bin\DriverPackSolution.html — главный исполняемый файл \bin\Tools — папка с JS-скриптами, плагинами и exe-приложениями; Основные модули Модуль dpinst Driver Package Installer (DPInst), являясь одним из компонентов DIFX, позволяет производить установку пакетов драйверов для тех устройств, которые еще не были установлены в компьютере («инициализационная установка»).DPInst также автоматически обновляет драйверы для всех установленных устройств, которые поддерживаются установленными пакетами драйверов.Модуль devcon DevCon — это программа с интерфейсом командной строки, которая используется в качестве альтернативы диспетчеру устройств. С её помощью можно: включать, выключать, перезапускать, обновлять, удалять и опрашивать отдельные устройства или группы устройств.Программа DevCon также предоставляет необходимые разработчику драйвера сведения, которые недоступны с помощью диспетчера устройств. Используется пользователями, которым удобнее работать с командной строкой.Модуль позволяет как напрямую работать с программой и драйверами, так и использовать список идентификаторов для распространенных классов устройств, который актуален в случае, если нет доступа к самому устройству.

Модуль mshta Модуль предназначен для работы с файлами *.HTA.Если для корректной работы системы требуется использование этого модуля, стоит отметить, что интеграция программы и модуля mshta настроены таким образом, чтобы не снижать производительность всей системы в целом, в первую очередь.

Плагины Чтобы не вносить изменений в общий код программы, можно создать отдельный плагин (js-файл). Плагин может полностью изменить поведение приложения.Плагины могут Изменять события кнопок (onClick, onMouseUp, onMouseDown и т.д.) Переопределение функций Загрузка внешних JS или CSS файлов Манипуляции с DOM Манипуляции с CSS Способы внедрить плагин Локальная работа плагина Разместите js-плагин в папке bin\tools\modules и подключите в DriverPackSolution.htmlOnline плагин Если при запуске есть подключение к сети, можно подключить новый плагин и менять логику программы, даже в самых старых версиях DRP.По вопросу размещения плагинов обращайтесь напрямую ко мне.

Beta-Online плагин DRP с названием версии Beta подгружает Offline версию файла bin\tools\update.js. Для загрузки вашего плагина добавьте в этот файл функцию: inc (»); Важно чтобы каждый плагин который модифицирует интерфейс DRP поддерживал многоязычность.

Главный принцип написания плагина: сначала пишем сценарий авто-теста, только потом сам код. Авто-тесты выполняются из скрипта: tools/modules/tests/RunTests.hta

DRP изначально разрабатывался без автоматического тестирования и использования объектов, из-за чего теперь сильно страдает, а мы заняты внесением масштабных изменений в исходный код приложения.

Любые возможные вопросы и предложения — в комментариях или личных сообщениях. Если вы настроены всерьез, мы также рекомендуем просмотреть вебинар по DRP 16-версии.

© Habrahabr.ru