Pull to refresh

Silverlight в Mac OS X: отладка

Reading time2 min
Views984
Как известно, Silverlight это кроссплатформенная (Win, Mac) и кроссбраузерная (IE, Safari, Firefox) технология.

Однако, как это часто бывает, на разных платформах Silverlight ведёт себя немножко по-разному (пруф).

Как следствие, приложение без проблем работающее на win-платформе, начинает немного странно себя вести в MacOS. Встаёт известный вопрос.

— Что делать?

— Что-что, дебажить! Что же ещё?

Для теста предлагаю простое Silverlight приложение: тыкаешь кнопку – показывается версия твоей ОС.

Пример работы на Windows 7



Пример работы на Mac OS X



На win-платформе отладка никогда не была проблемой (Visual Studio). А как дебажиться под маком? Оказывается – это реально. Несмотря на то, что под маком невозможен обычный remote debugging, в Silverlight SDK для мака есть интересный костыль для настройки удалённой отладки.

Итак, что же он из себя представляет.
После установки Silverlight SDK for Mac у вас появится в папке Applications одна программка.



Она показывает вам окно, в котором «многабукаф».



Если с картинки читать неудобно или лень, вкратце перескажу – программа настройки создаст вам .exe файл, который вы должны скопировать на машину с установленной Visual Studio (здесь и далее используется VS2010). В этом файле захардкожен TCP порт, через который будет идти удалённый дебаг, а также пароль, который надо ввести на машине разработчика, для подтверждения того, что вы не верблюд.

После запуска этого .exe файла и ввода правильного пароля, в Visual Studio в меню «Tools->Attach to Process» откроется секретный протокол отладки. Введя IP подопытного Mac, мы получим список всех его процессов.



Я аж поперхнулся, когда это в первый раз увидел, настолько непривычно мне было наблюдать в списке процессов таких нежданных гостей, как Finder или iTunes. В Visual Studio на полном серьёзе доступна кроссплатформенная отладка Silverlight кода, что очень радует.

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



Теперь ничто не помешает найти все платформозависимые глюки. :)

Самый основной совет командам, начинающим реальный кроссплатформенный проект с использованием Silverlight – чем раньше начнётся тестирование и отладка на всех target-платформах – тем лучше.

PS. Насколько я понимаю, в мире Mono с отладкой Moonlight всё очень грустно, то есть отладчика нет совсем. Поправьте если я ошибаюсь.

PS2. В статье присутствует наглый продакт плейсмент компании, в которой я с недавнего времени работаю. Угадаете в какой именно?
Tags:
Hubs:
Total votes 19: ↑11 and ↓8+3
Comments8

Articles