xeno_by (xeno_by) wrote,
xeno_by
xeno_by

Нечеловеческие интерфейсы

Летом я делал визуальный редактор модели данных для простенькой объектной БД. Для того, чтобы не писать свои диаграммы с нуля, я решил воспользоваться услугами VS DSL Tools SDK. Вкратце - это фреймворк, который позволяет хостить диаграммы в студии и редактировать их аля winforms-дизайнер.

Весьма неслабое омерзение у меня вызвала идеология VS SDK - необходимость создания солюшена для редактирования простой схемки, принуждение к использованию докающихся окошек как средства упорядочения экранного пространства и общее чувство заброшенного дома - куча элементов меню достались в наследство от VS Shell и не использовались. Вместо того, чтобы честно признать отстойность этого подхода, я оправдывал его тем, что зато так получается униформно и похоже на студию.

Сегодня пришел час расплаты. Два дня я ваял репорт для динамикс-црма, но сегодня внезапно оказалось, что он не поддерживает формат второго Report Builder (ибо репорт-билдер изначально заточен под сиквел-2008, а Dynamics CRM, включая и последнюю на момент написания версию за номером 4.0, создавался для сиквела-2005; я в курсе, что четвертую версию можно пересадить на 2008й сиквел, но, к несчастью, нашему кастомеру это не подходит). В результате пришлось переделать репорт в BIDS, которая по факту представляет собой VS Shell, заточенный для репортинга.

В роли пользователя я наглядно почувствовал разницу между человеческим и нечеловеческим интерфейсом. 1) Куча лишних файлов вместо одного-единственного rdl, 2) невнятная структуризация компонентов репорта, искусственно подстроенная под структуру солюшена, 3) пачка мешающихся под руками докающихся окошек, которые можно бы смело объединить в несколько более крупных, но не позволяет идеология студийного шелла, 4) необходимость в окошке Properties вместо риббона + системы смартовых контекстных меню репорт-билдера - я могу продолжать дальше, но лучше остановиться. Это все работает для организации большого количества исходников в один проект, но ниразу не работает в общем случае.

Вывод: так же, как и XML лучше не использовать для написания DSL-ей, которыми будут пользоваться живые люди, так и жесткие фреймворки для построения юзер-интерфейса (CAB, Naked objects, VS Shell и так далее) лучше не юзать в целях разработки GUI для хуманов. Как бы ни хотелось это сделать, оправдывая себя простотой разработки, лучше не надо.
Tags: tools
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments