Оперативные новости и аналитические материалы мира высоких технологий
Статья

Разработка СЭД: что сможет дать "Конструктор решений"

ПО Интеграция Документооборот Бизнес-приложения Системное ПО Софт

Использование решений-конструкторов не является чем-то новым – многие разработчики не раз говорили о том, что тот или иной продукт имеет функцию конструктора и позволяет на его основе создавать готовое ПО. Тем не менее, их возможности ограничены, и на деле продуктом такой работы становятся лишь весьма ограниченные по функционалу решения. Новый инструмент со старым называнием анонсировала компания "ДоксВижн", заявив, что в реальностиэто совершенно иной продукт, существенно отличающийся от своих предшественников. В чем же заключаются эти отличия и насколько новый "Конструктор решений" облегчит жизнь и интеграторам, и заказчикам?

Отдельно хотелось бы обратить внимание на то, что "Конструктор решений" позволяет осуществлять новый подход к описанию состояний и ролей, предоставляет возможность переиспользования решений и их частей, имеет удобный механизм распространения решений за счет легкости создания инсталляционных пакетов, а также использует новый способ рассылки уведомлений – с помощью сервиса уведомлений.

Истина – в сравнении

На самом деле существует 4 способа разработки карточек. Первый, активно применяемый до настоящего времени - на универсальной карточке. Он примечателен тем, что не порождает новых типов карточек. Второй способ – на "Конструкторе решений". Среди его отличительных черт – визуальное проектирование интерфейса и карточки, а также минимум кодирования (с использованием скриптов). Третий способ - на основе базовой карточки того же "Конструктора решений". За счет него есть возможность создавать более сложные собственные разработческие решения, тем не менее, использующие в своей основе базовую карточку конструктора и многие его возможности. Последний способ разработки карточек – это создание полностью собственных решений с нуля. Попробуем определить, какие возможности и ограничения имеет тот или иной способ. Для начала рассмотрим метод "Универсальной карточки", поскольку изначально его возможностей практически хватало для создания полноценного решения а-ля Канцелярия.

Сравнение способов разработки на базе универсальной карточки и с помощью "Конструктора решений"

Универсальная карточка"Конструктор решений"
Возможности построения интерфейса карточкиОграничены стандартным набором вкладок/полей и возможностью добавления собственных свойствНе ограничены
Хранение данныхХранение нестандартных данных возможно только в свойствахВозможно хранение и в свойствах, и в полях
Описание поведенияС помощью изолированных скриптов на VBС помощью скриптов на С# или VB.Net. Все скрипты карточки объединены в общий класс. Можно писать общие методы, переменные, объявления, подключать внешние сборки
Возможность программировать отклик на событияПоддерживается лишь небольшой перечень событий от DocsVision Поддерживаются все события формы карточки и ее контролов и дополнительно набор событий от DocsVision
Обращение к данным в скриптахЧерез ObjectManagerЧерез удобную более высокоуровневую объектную модель
Возможности настройки прав доступаТолько для объекта целикомНа отдельные операции и поля карточки
Ведение истории операций с карточкойНетАвтоматически. Есть стандартный контрол, показывающий всю историю изменений
Настройка уведомленийНетНастраивается с помощью шаблонов уведомлений

Источник: "ДоксВижн", 2011

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

Сравнение способов разработки карточек с нуля и на конструкторе решений

Разработка с нуляРазработка с использованием базовой карточкиКонструктор решений
Связывание контролов с даннымиНеобходимо программироватьНеобходимо программироватьВстроенный механизм
Хранение данныхВ поляхВ поляхВозможно хранение и в свойствах, и в полях
Доступ к даннымНеобходимо реализовывать через ObjectManagerНеобходимо реализовывать через ObjectManagerВстроенный механизм
Описание поведенияКодирование на С#, VB.Net или VB Кодирование на С#, VB.Net или VB С помощью скриптов на С# или VB.Net. Все скрипты карточки объединены в общий класс. Можно писать общие методы, переменные, объявления, подключать внешние сборки
Ведение истории операций с карточкойНетАвтоматически. Есть стандартный контрол, показывающий всю историю измененийАвтоматически. Есть стандартный контрол, показывающий всю историю изменений
Возможности настройки уже готового решения
Настройка различных дизайновНетНастраивается в справочнике разметокНастраивается в справочнике разметок
Настройки отображения контроловНетНастраивается в справочнике разметок. Ограничения: только видимость, размер, местоположение, текст меткиНастраивается в справочнике разметок
Выбор дизайнов в зависимости от вида, роли, состоянияНетНастраивается в справочнике разметокНастраивается в справочнике разметок
Настройка автомата состоянийНетНастраивается в справочнике ролейНастраивается в справочнике ролей
Настройка ролейНетНастраивается в справочнике ролейНастраивается в справочнике ролей
Настройка прав доступаНетНастраивается в справочнике ролейНастраивается в справочнике ролей
Настройка уведомленийНетНастраивается с помощью шаблонов уведомлений Настраивается с помощью шаблонов уведомлений

Источник: "ДоксВижн", 2011

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

Практическая ценность

Теперь поговорим подробнее об использовании особенностей конструктора и применении разных способов разработки.

Олег Баранов окончил в 1989 году Санкт-Петербургский Государственный Технический Университет, начинал свой путь в ИТ-сфере разработчиком отечественной системы автоматизированного проектирования печатных плат ПРАМ 5.3. С 1995 года трудился в компании Typhoon Software, занимался системами искусственного интеллекта и IP-телефонии. В 2000 году пришел на работу в компанию Digital Design, где стал заниматься задачами электронного документооборота, руководил проектами по внедрению и отделом по разработке информационных систем. С 2008 года работает в компании "ДоксВижн" и занимает должность директора по продуктам и решениям. Олег является идеологом создания "Конструктора решений".

Одним из самых серьезных преимуществ нового инструмента является возможность быстрого прототипирования будущей системы для заказчика. Описав задачу формально и выделив необходимые объекты, можно сразу переходить к их визуальному созданию. При этом за достаточно короткий период времени можно создать работающий прототип.Для этого необходимо нарисовать интерфейс объектов и установить связи между ними, настроить права доступа, после чего разработчик получает уже работающее приложение, умеющее редактировать и сохранять самые разные данные и может продемонстрировать его заказчику, обсудить с ним детали. Хотелось бы отметить, что при создании решения нет резона удалять прототип. В дальнейшем для созданных карточек потребуется лишь описать привычную XML-схему, привязать интерфейсные элементы к полям вместо свойств, и добавить логику с помощью скриптов.