Поддержка персональных доработок
Архитектура проекта на Домино8
Программа Домино состоит из исполняемой (exe и dll) и описательной (проект) частей. Исполняемая часть одинаковая для всех, в описательной части находится именно то, что отличает один проект от другого. В описательной части находятся реализация бизнес-процессов, настройки, методы, установки и т.п. Исходный код описательной части открыт и отображается в виде дерева, состоящего из элементов разного типа. Дерево изображено перевёрнутым (корни вверху, листья внизу),
Внутри дерева элементы объединены в структуры разного размера и состава: группа модулей, модуль, библиотека. Такие разбиение и группировка позволяют формировать дерево проекта как бы из отдельных блоков (модулей) и кирпичиков (библиотек). Библиотека - это минимальная структура, которая может быть либо целиком включена в дерево, либо целиком исключена из дерева.
Модуль состоит из библиотек, но точный состав определяется вариантом модуля. Например, в варианте А в модуль входят три библиотеки (номера 10, 11, 12). Вариант Б включает только две библиотеки (номера 10 и 15).
В верхней части дерева находятся области для системных разработчиков. Далее следуют модули и библиотеки разработчиков прикладных решений. Чем ниже в дереве находится библиотека, тем больше в ней содержится специфики и меньше общих элементов. Самые специфические элементы располагаются в области Приложение.
Варианты персональных доработок
Варианты персональной доработки отличаются расположением доработки в схеме проекта.
Место доработки выбирается в зависимости от множества факторов: сложность задачи, квалификация разработчика, планируется ли распространение (тиражирование) доработки, кто будет вносить изменения и т.п.
Приложение
Самый простой вариант. Применяется в случае небольших специфических задач. Например, добавить в шапку документа новый параметр.
Изменение Базового решения
Если предложение по доработке признаётся полезным, то оно вносится непосредственно в базовое решение.
Также этот вариант может быть выбран, если из-за проектных ограничений не подходит вариант с доработкой в Приложении.
Разработка новой библиотеки
Если не устраивают имеющиеся варианты какого-то модуля, то можно разработать собственную библиотеку. Библиотека подключается к имеющемуся модулю и описывается новый вариант модуля.
Разработка нового модуля
Вариант похож на предыдущий, но вместо настройки варианта существующего модуля в дереве проекта описывается новый модуль.
Персональное решение
Персональное решение строится по аналогии с Базовым решением, но содержит свой набор функциональных модулей. Персональное решение применяется вместо Базового.
Персональный проект
При построении проекта применяется только платформа (в дереве Системная область и Базовый функционал). Остальные части проекта (функциональные модули, решение) разрабатываются самостоятельно.
Подключение новой dll
Это расширение платформы, затрагивающее исполнительную часть и Системную область.
Стратегия установки обновлений
Домино постоянно изменяется. Появляются новые возможности, исправляются ошибки и неточности, повышается производительность, улучшается стабильность работы. Изменения затрагивают разные части программы. Регулярно выпускаются обновления платформы и Базовых решений.
При наличии персональных доработок стратегия установки обновлений зависит от применяемого варианта доработки.
Приложение
Возможная проблема связана с тем, что Приложение накладывается на всё то, что находится в дереве выше. При неточном программировании это может привести к тому, что обновлённые элементы не будут работать, так как они заменяются элементами Приложения. Исправляется быстро.
Изменение Базового решения
Никакие проблемы не ожидаются.
Разработка новой библиотеки, Разработка нового модуля,
Необходимо проверить корректность ссылок из библиотеки на другие элементы. Возможно потребуется внести изменения.
Персональное решение
Так же как и в предыдущих случаях требуется проверить корректность ссылок. Но количество проверок будет больше.
Персональный проект, Подключение новой dll
Поскольку изменения в платформе в большинстве случаев не связаны с изменением существующих элементов, то проблемы не ожидаются.
Перечисленные ожидания верны только в случае регулярной установки обновлений.
Если не устанавливать обновления в течении нескольких лет, то объём накопленных изменений может привести к непредсказуемым результатам. В таком случае требуется квалифицированный специалист для анализа и исправления ошибок.