четверг, 9 августа 2012 г.

WPF и IronRuby

Создавая интерфейс программы для клиента на IronRuby столкнулся с интересной проблемой.

Надо было имитировать бордюр с изображением и своим цветом. Нашёл код, который обеспечивает эмуляцию кнопок окна. Долго не мог понять, почему код не разворачивает окно.

Отладка SharpDevelop не очень помогла. Пошагово в событие даже не заходит, а вывод в лог не даёт нормального отображения.

Пришлось открывать консоль ir и лишь там выяснилось, что есть две структуры WindowState для WPF и FormWindowState для WinForms. И из-за этой мелочи целый день ковырялся в коде, пытаясь понять, что же мешает разворачивать форму.

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

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

Комментариев нет: