Wizard Framework
Фреймворк для построения пошаговых мастеров, с типовым набором базовым страниц
Его принципиальное отличие от аналогов заключается в том, что он позволяет организовывать вложенные мастера, которые работают с единой, с архитектурной точки зрения, системой хранения данных отдельных страниц мастеров разных уровней.
Иными словами страницы не знают, в рамках какого мастера их запускают. Это позволяет из готовых страниц компоновать различные по набору шагов мастера включая вложенные, не меняя логики самих страниц.
Именно на этом фреймворке построены мастера настройки продуктов, которые мы разрабатываем для заказчиков.
Мы придерживаемся концепции easy install, смысл которой в максимальном облегчении процедуры MSI инсталляции продукта, которую мы кстати делаем на WiX, и перенос всей логики по настройке в отдельный мастер или мастера. Настройка продукта является функцией самого продукта.
А инсталляция настраивает тот необходимый минимум, чтобы эта функция заработала.
Такой поход имеет следующие преимущества:
- Упрощается разработка, т.к. мастера удобнее разрабатывать и отлаживать
- Уменьшается количество проблем, которые могут возникать на стадии установки продукта
- Установка ускоряется и гарантированно дает установленный продукт с работающей подсистемой конфигурирования
- Упрощается troubleshooting инфраструктурных проблем в процессе внедрения
Database Wizard
Готовый мастер для настройки соединения с базой данных, создания, обновления и валидации базы данных
Также поддерживается выбор поставщика СУБД, режима работы: новая конфигурация или существующая, поиск серверов в сети, различные режимы аутентификации, создание новых баз и подключение к существующим, обновление структуры баз при upgrade, валидацию структуры базы, набор готовых скриптов для создания основных сущностей и многое другое.
Мастер настройки базы данных out of the box позволяет работать в двух режимах
- Новая конфигурация
- Cуществующая конфигурация
- Выбор типа СУБД: Microsoft SQL Server или Oracle
- Выбор сервера СУБД и подключение к нему с указанием настроек аутентификации для мастера
- Выбор существующей БД или определение параметров новой с указанием настроек аутентификации для продукта
- Валидация структуры существующей БД и ее обновление при необходимости
- Создание новой БД
- Проверка наличия конфигурации
- Валидация структуры существующей БД и ее обновление при необходимости
- Добавление своих страниц мастера
- Добавление других типов СУБД
- Декларативное добавление своих правил обновления БД между версиями
- Добавление своих скриптов создания элементов БД и кастомизация существующих
- Кастомизация графических элементов
Custom Properties Framework
SDK для создания бизнес-объектов, с динамически расширяемым набором свойств
Он позволяет моментально расширять существующие бизнес-объекты функционалом, который позволяет уже в готовой системе в режиме дизайна следующее:
- Добавление пользовательских свойств объекта
- Создание справочников
- Назначение справочников в качестве свойств объекта
Workflow Framework
SDK для создания бизнес-объектов, построенных по принципу конечного автомата
Он позволяет моментально расширять существующие бизнес-объекты функционалом, который позволяет уже в готовой системе в режиме дизайна следующее:
- Добавление состояний
- Определение правил перехода между состояниями
- Определение ролей, имеющих права на перевод объекта из состояния в состояние
Application Host Framework
SDK для построения слоя бизнес-логики как windows service
Для реализации конкретного сервиса бизнес-логики для конкретного продукта с использованием этого фреймворка необходимо лишь разработать специфичные для продукта компоненты соблюдая идеологию хоста и зарегистрировать их в его конфигурации.
В хосте уже есть готовые подсистемы и компоненты:
- Непосредственно сервис
- Система активации компонент согласно конфигурации
- Система управления компонентами через программный API и по событиям ОС, такие как запуск и останов сервиса, события по питанию
- Система мониторинга и логгирования
- Система конфигурирования
- Единая система отладочной трассы
- Система обработки ошибок
- Счетчики производительности
- Значительно ускоряется разработка
- Разработка унифицируется
- Повышается стабильность работы продукта
- Масштабирование за счет гибкости активации тех или иных компонент в разных процессах
Enterprise Application Template
Шаблон проекта enterprise приложения с типовыми компонентами и настроенными между ними связями
Однако есть достаточно большая часть, которая не может быть оформлена в виде SDK или готовых исполняемых модулей, т.к. фактически является каркасом исходного кода multi tier приложения. Эта часть оформлена в виде шаблона enterprise приложения, который представляет собой готовый solution с набором заранее подготовленных и настроенных проектов.
Шаблон содержит:
- Сервис бизнес-логики и его регистрация
- Счетчики производительности и их регистрация
- Трасса и ее настройки
- Event log и его регистрация
- Административный API
- Уровень доступа к данным
- Бизнес-логика
- Подсистема мониторинга
- Система обработки событий питания
- Tray агент управления, command line утилита управления
- Мастер настройки
- Административный клиент
- Автоматизированные тесты бизнес-логики
- Итд