Как известно, 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. В статье присутствует наглый продакт плейсмент компании, в которой я с недавнего времени работаю. Угадаете в какой именно?
Однако, как это часто бывает, на разных платформах 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. В статье присутствует наглый продакт плейсмент компании, в которой я с недавнего времени работаю. Угадаете в какой именно?