Pull to refresh

Comments 98

Я написал на Silverlight уже несколько десятков приложений — ни одно пока не тормозило.

Однозначно — если процессор «непонятно чем» загружен — это криворукость разработчика, а не технологии.
Платформа, видимо, появилась как слово, была вначале ;-) Я имею ввиду, что в платформе тоже бывают баги. Но тестировать то конечно стоит, баги надо обходить.
Зато все знают, что если «Java тормозит™», то виновата именно «жаба», да?
[сраказм]
Отличная позиция! Да, валите все на бедолагу-разработчика! Но даже в самую идеальную технологию могут реализовать разработчики с отрицательной кривизной рук.
[/сраказм]
Начало было интересным, а вот конец закончился какой-то маркетинговой мишурой, вперемешку с извинениями за разработчиков сервелата. Как-то хмуро.
Извиняюсь, не хотел тут никакой маркетинговой шумихи, просто рекомендации. Мне как-то побоку будете разрабатывать вы на SL или нет. Но честно видеть такие сайты www.mosmetro.ru/sl.htm мне тоже не особо хочется. Смысла того, что сделали на SL никакого, а минусов огромное количество: нужно ждать загрузки, текст не скопировать и т.п. Хорошо хоть запустили рядом html версию.
Просто я ожидал каких-то конкретных советов и решений для SL. А так можно заменить SL на JS без особой потери смысла. Там тоже можно не следить за событиями и получить браузер, подвешиваюищий систему на 100% :-)
Понял, да это скорее всего не техническая статья, а больше выплеск эмоций. Просто хотелось обсудить тему.
У меня кстати как то наоборот сложилось впечатления что сильверлайт быстрее аналогичных приложений на flash, в особенности всяких с видеопотоками.
Хотя уже почти год практически ничего не запускал из сильверлайта, тк сейчас 90% времени работаю в линукс, а мунлайт все таки не всегда удачно запускается без дополнительных танцев.
А плеер ютуба сильно тормозит?)
Как разработчик на флеше могу сказать, что точно больше половины разработчиков не знает про оптимизацию и профилировку, так что зависит от кривизны рук.
Плеер ютуба все больше глючит, чем тормозит. Частенько он мне показывает, что ролик загрузился, а сам пытается догружать контент. Или при промотке назад забывает, что ролик уже загружен и грузит заново.
Издержки предоставления видео-контента.
При перемотке назад — плееры(обычно) не хранят предыдущих кадров для больших роликов, с целью экономии ресурсов.
Догрузка контента после полной загрузки вроде бы должна быть исправлена в новой версии.
А можно показать эти самые бизнес приложения на сильверлайте? Я за все время только видел всего два — простую игрушку и просмотрщик фотографий.
На Silverlight написано много бизнес-приложений, но на них не посмотришь, так как это инструменты «для внутреннего использования».

Много Silverlight-проектов есть тут: www.silverlight.net/showcase — можно отфильтровать по категории «бизнес-приложения»
Там не проекты а шоукейсы. Я тоже не видел ни одного серьезного и сложного приложения на сервелате. Хотя коробочных бизнес-приложений разной сложности в дикой природе существует много.
Да нет, там можно перепрыгнуть на сайты типа такого www.kiesmarvin.nl/

Помню только один проект, который хвалили, это хард рок кафе memorabilia.hardrock.com/

Playboy архив тоже использует SL playboyarchive.com/viewer#/2/55/68/S

Ну и бибигошу привели выше, это все что я помню.
Нашей командой с десяток этих самых уже написан, размером от человеко-года. Полет нормальный у всех.
А увидеть 99% из них, из-за такого будничного документа как NDA, получится лишь поработав в компании-заказчике или компании разработчике.
а почему на surfity.com переключение вкладок происходит несколько секунд?
Предполагаю: тут есть стандартная проблема, при переключении вкладок идет инициализация новой страницы, а с ним и объектов, которые используются для байдинга. Плохо у них то, что даже если второй раз тыкнуть на вкладку, то торможение так же остается. Самый простой вариант — это кешировать объекты для байдинга, и соответственно сами страницы, тогда второе переключение будет более быстрым. Ну так же хорошо, когда переключение происходит с какой-нибудь анимацией, тогда не так заметно это самое торможение.
то есть сервелат настолько тормозной, что приходится кэшировать всё и вся, чтобы это побороть? что и требовалось доказать. хтмл+яваскрипт работают _гораздо_ быстрее и не требуют кэширования всех объектов.
Офигенные выводы, супер! =)
*или я тега не заметил?*
кто же его знает как там что инициализируется, если очень большой граф объектов, то кеш бы тут не помешал. Но это правило применимо к любой технологии.
Вот все хорошо вроде бы, но человек занимающийся performance'ом (4 раза в посте эта ошибка) на Silverlight у меня все равно не вызывает доверия (как и проприетарные технологии с приставкой MS я не люблю).
А зачем мне ваше доверие? я же вам ничего продавать не собираюсь. :) Кстати, слово perfomance в теги выползло из подсказок хабра, ну а в тексте — это да, я ошибся, бывает.
Ничего личного, если что. Просто хотел указать на ошибку, но может получилось несколько грубо. Прошу прощения.
«А зачем мне ваше доверие?»

хороший ответ )
Можно ли взять начинающего разработчика и попросить его сделать веб-приложение на Html+JavaScript или Flash, чтобы оно работало, было еще и интересным/привлекательным? Я говорю о приложениях для бизнеса, о сайтах-энциклопедий, а не об мелких игрушках и баннерах. Я даю на этот вопрос с уверенностью в 90% ответ “нет”.

Вы слышали про Flex слышали? У Вас опыт работы с Flex-ом есть? На чём основывается Ваше утверждение? Чем Flex сложнее Silverlight-а в плане создания бизнес-приложений?
Про Flex я слышал, но не пробовал. Видел даже как то выступление, где рассказывали про разработку на Flex (правда уже ничего не помню).
Может я просто кручусь в другой среде, но все же мне кажется, что слово Silverlight встречается уже чаще слова Flex, литературы по Silverlight больше. Даже посмотреть на хабре количество статей в блоге Flex и количество тут, разница практически в 10 раз. И я просто видел не мало любителей разработчиков, который просто позавчера услышали Silverlight, вчера посмотрели демо, а сегодня уже бегут писать приложения.
Но это чисто мое мнение. Думаете оно ошибочно? Flex настолько же дружелюбен к начинающим разработчикам?
Да вы крутись действительно в другой среде :) Про Флекс читают не на хабре а в гугле и преимущественно на английском, потому что русскоязычным разработчиком обычно некогда писать статьи. А насчет дружелюбности — это вы о чем? Как по мне сильверлайт страшная махина, которую чтобы понять надо какую-то визуал студию ставить и писать на каком-то уже очень профессиональном C# + каком-то уж очень страшном XAML.
Но все таки у меня математическое образование. Знаю немного мат статистику, есть закон распределения, и если на хабре такое процентное соотношение, то скорее всего оно везде.
Вы так сказали «читают не на хабре а в гугле и преимущественно на английском», ок я тоже ищу информацию по SL в гугле и преимущественно на английском, но я не Флекс разработчик, как мы уже выяснили. :)

Ок, но вообще я не хотел бы тут начинать спор о Flex и Silverlight. Я просто говорю, что есть, начинающих SL разработчиков огромное количество.

Вообще, постараюсь, если будет время трезво посмотреть на Flex, попробовать на нем что-то сделать for fun, чтобы иметь более трезвый взгляд на эту технологию.
Поробуйте! А насчет утверждения про 90%, не стоило его включать в статью. Оно не аргументировано.
«утверждения про 90%» — если бы вы немного не предвзято относились бы сразу к тексту, то заметили бы, что это совсем не утверждение, а «Я даю на этот вопрос с уверенностью в 90% ответ “нет”.» — мое личное мнение, при котором я пока что и остаюсь.

Но как я уже сказал, я с удовольствием попробую разобраться все таки с Flex для сравнения его с Silverlight.
>> если на хабре такое процентное соотношение, то скорее всего оно везде

О да, так везде. Не смешно самим-то? Пора уже вынуть голову из песка — Хабр ни капли не презентабелен в каких-либо выборках или статистики — целые направления и технологии по разработки здесь вообще практически не представлены в силу особенностей местных обитателей и их склонностей.
Ок, пускай так. На Apress книг по Silverlight в два раза больше чем по Flex. На wrox вообще всего 6 книг по Flex, и 25 по Silverlight.

Идем на какой-нибудь трекер, вроде rutracker.ru и находим пару страниц по Silverlight, и около 20 наименований по Flex.

Но я понимаю, все что я привел — это конечно склонности этих самых ресурсов ;)
Кто бы сомневался. А теперь идем на Амазон и смотрит, чего и сколько там нам предлагают из книг. А лучше подскажу:
flex — 150
air — 450
silverlight — 200
Конечно — мало кто пишет в названиях книг про Flex еще и наименование фирмы Adobe.
Да хорош уже. Вторая книга в списке Flash Builder 4 and Flex 4 Bible, ни слова там про Adobe нет. Мы не в 90х живем, поиск уже более продвинутый. Притом я и в поиске Silverlight как видите указываю Microsoft. Отстаиваете свою позицию, как будто я у вас конфетку отнял. Считаете, что это не так, ну и хрен с ним, вот реально мне параллельно, я остаюсь при своем мнении. ;)

P.S. А если вбивать только Flex, то в поиск включаются такие книги, как Professional Linux Programming и Work From Home Handbook: Flex Your Time, Improve Your Life (USA TODAY/Nolo Series).
МС-фанаты, такие фанаты. Ладно, уговорили. Несчастная книжка по линуксу так подпортила статистику книг по флексу, что он вдруг стал никому не нужен.

flex — 148
air — 450
silverlight — 200

Все, теперь можно со спокойной душой идти изучать самую популярную RIA-технологию и зарабатывать очки на постах с признанием любви к МС.
Ага, мы такие параноидальные фанатики, что если видим, что где-то пытаются хоть как-то принизить наши технологии брыжжим слюной и закрываем их грудью ;)
Вы кстати игнорируете, что человек упоминает Air — а это тоже Flex.
Ну хорош, действительно. Air — очень распространенное слово. Очевидно, что там ищется множество книг. Забейте Adobe Air, и их будет уже 78, половина из которых — это те же книги, которые попадают и в поиск по Flex. Разве я не прав?
UFO just landed and posted this here
С тех самых пор как начали задавать вопросы про дружелюбность Flex :)
UFO just landed and posted this here
Кстати, такой вот простой вопрос насчет дружелюбности. Ставишь VS2010, у тебя сразу рядом ставиться SQL Express 2010. Делаешь проект на Silverlight, у тебя сразу же рядом поднимается Web проект, в котором Silverlight хостится, и куда ты с легкостью запихиваешь сервисы. Все таки, что SL, что Flex — не могут жить без сервисов. Как с этим делом обстоят дела во Flex?
Да ну бросьте «жить не могут без сервисов» варианты разные, но SQL напрямую недоступен. Флекс юзает ColdFusion, LifeCycle, AMFPHP и тд но все это реализуется либо через сокет либо через пхп и кф прослойки. Есть снипеты под запросы в ФлешБилдере. Но настраивать серверсайд все равно надо отдельно.
Может это уже и можно назвать не совсем дружелюбной средой, а? В случае с SL мы все таки получаем все в одной коробке. Согласитесь новичку так будет проще?
Кстати, я правильно понимаю, что чтобы попробовать Flex нужна студия Flash Builder, которая платная или можно как-то по другому, в смысле есть типа Express обрезанная бесплатная? Захотелось действительно сравнить платформы, полистал пару страниц — реально даже похожие.
адобовские студии и каталисты после визуал студии это ад (
Начинающий разработчик на любом языке не сможет написать стопроцентно работающее интересное и привлекательное приложение. И тут даже Silverlight не сможет помочь.
Flex офигенно сложнее для тех кто пришел из мира Delphi, .Net…
Интересно узнать, почему же сложнее?
> на этом самом проблемном экране циклично и постоянно вызывается event LayoutUpdated

Мне, ни разу не работавшему с Silverlight, это было понятно уже после прочтения вашего кода.
И чтобы эту проблему найти достаточно было один раз прогнать код в отладчике. Странно, что ваши разработчики не проверяют свой код.
Ок, а оно и должно быть понятно, там достаточно очевидные вещи. Ну и я рад, что вы такой, а мы не такие. :)
Это всегда так круто покичиться собственной крутизной, когда ошибка в чужом коде видна с первого взгляда.
Зато мозг упорно и быстренько забывает те моменты, когда в своём коде мы искали «ошибку в запятой» на протяжении пары часов.
Заголовок желтоват, это раз.

Тормозят ваши левые компоненты, это два.

Смотреть надо, что покупаешь, отзывы читать, тестировать перед использованием. Тут только опыт поможет. Это три.

И вообще, причем здесь Silverlight?
А я рад, что у вас все хорошо ;)
Я не говорю, что в Silverlight совсем нет багов и ляпов. Они есть.

Многие классы непонятно зачем sealed, многие, что и public, но с internal constructor.

Отладка XAML и binding — просто отстойная (в SL5 поправят).

RichTextBox в InlineUIContainer выравнивает TextBox криво, дернешь ширину этого текстбокса — снова по baseline, приходится писать хаки. RichTextBox.Blocks — никак MVVM-way не забиндить. RichTextBox.Xaml MVVM-way не забиндить.

TextBox — в режиме Memo — найди координату курсора без подсчета CR/LF в своем тексте?

Классы из SDK (типо TreeView), вообще сразу переписывать надо, настолько кривые. Вложенные nodes банально лежат в parent-node. Selection и Focus для них — одно и то же. Просто нет слов.

Про управление фокусом — отдельная история, ни один Popup после закрытия не восстанавливает фокус, банально бросают в первый попавшийся контрол, а там хоть трава не расти. Про то, что ContainerControl по умолчанию tabstop (а это практически в каждом шаблоне), Tab-навигация — «вырви все волосы, пока найдешь свой фокус».

И таких мелочей — море. Но вот чего-чего, а на performance никто никогда не жаловался.
Не очень понимаю, как два этих комментария ваши связаны. Первый звучит явно с прямым уклоном в мою сторону, типа «хрень написали, во всем сами виноваты». Потому и сказал, что рад что у вас все хорошо.

И я не начинал тему про баги и ляпы в SL, нахожу и я достаточное количество. Надеюсь только, что вы со своей стороны отсылаете баги на connect.microsoft.com?
Покритиковал я вас за неоправданный наезд на Silverlight. Вы обвиняете Silverlight в тормозах какого-то левого быдлокода, назвали статью не «почему тормозят говнокомпоненты от определенного говнопроизводителя», а Silverlight, который к этим тормозам никакого отношения не имеет.

За что можно справедливо наехать на Silverlight, я написал выше. В этом виноват сам Silverlight и конкретно Микрософтеры.
Понял, тогда я просто думаю вы не так мою мысль поняли. Как бы заголовок — это некий сарказм. А в тексте я хочу сказать только то, что SL называют томозным потому что приложения так написаны, а не потому что технология такая, но видимо вы просто не прочитали текст.
Прочитал я текст. В отличие от многих других, кто просто увидел заголовок и подумал, о, а Сервелат-то оказывается тормозной ;)

Мне это особенно обидно, я можно сказать всю карму на него слил ;)
тогда получается за него :) ничего подымем ;)
Не знаю, как вы это делаете.

Большое спасибо. Ждите обалденную статью. Только для подписчиков :)
А что там такого происходит, что требует от 150 до 200 мегабайт памяти?
Код выполняется ;) Объектная модель не маленькая, визуализации много. Стараемся, чтобы работало быстро, при этом не жалея лишних 100 Мб памяти. ИМХО хороший обмен.
Можно ли взять начинающего разработчика и попросить его сделать веб-приложение на Html+JavaScript или Flash, чтобы оно работало, было еще и интересным/привлекательным? Я говорю о приложениях для бизнеса, о сайтах-энциклопедий, а не об мелких игрушках и баннерах. Я даю на этот вопрос с уверенностью в 90% ответ “нет”.

К слову привлекательным делает приложение не разработчик а дизайнер :) Или вы человек-оркестр?

Все чем различается сильверлайт и флеш — в сильверлайт поддерживается 3д аппаратно (мелкие фичи касательно различных форматов я опускаю), но когда нужны 3д приложения лучше их писать на Unity3d как наиболее оптимизированной 3д платформе для веб.
В идеале дизайнер. Я просто говорю о том, что в Silverlight даже без особых знаний в дизайне можно сделать красивое приложение, причем проще чем в любой другой среде, разве нет?

По поводу 3D вас обманули, только псевдо 3D в SL. Поддерживаются шейдеры, что очень хорошо применимо для создания теней, blur и т.п. Что как раз достаточно просто и может добавить красивойстей приложению.
Слава Богу — еще один плюс флешу :)
Насчет 3D… Сразу после релиза 3го SL я побаловался с трехмеркой (реальной, как в WPF). Интересно, но уж слишком тяжело. Потом перешел на четвертую версию и решал иные задачи. Через какое-то времени вспомнил о 3D, но его не обнаружил. Ни в четвертой ни в третьей версиях. Даже в книгах читал про это… До сих пор ощущение, что меня проглючило.
В любом случае при правильном подходе к проектированию SL-приложения получится производительный продукт. К примеру, 3D-движок можно реализовать через WriteableBitmap. Шэйдеры рисуются с использованием инструкций SSL ЦП (это и есть хваленая аппаратная поддержка). С их помощью можно многое делать — не только тени. Если рисовать геометрию через StreamGeometry внутри одного Path, то также удастся улучшить производительность чартов.
В режиме Out of Browser, якобы, GPU задействуется… Возможно… не проверял. Все зависит от архитектуры приложения. Нужно использовать наиболее производительные приемы.
О платформе Catalyst от Adobe слышали? Когда из шаблона в формате .psd генерируется готовое приложение? То есть накидать дизайн в фотошопе(без особых знаний) и вуаля — готово, чуть доделать и можно людям отдавать.
Ок, а про LightSwitch от MS слышали на SL? Берешь натравливаешь на БД, а у тебя готовое бизнес приложение готово.
Другой вопрос пользуются ли, и действительно ли результат оправдывает ожидания. Я вот честно могу сказать, что в случае с LightSwitch — нет.
Для флеша этот механизм встроен во FlashBuilder
Сам недавно столкнулся с проблемой LayoutUpdated. Правда в моем случае тормоза оказались совсем явные и все просто зависало.

А в целом Silverlight нельзя назвать тормозной платформой, если сравнивать ее с другими реально существующими, а не с чем-то сферическим. Постоянная загрузка процессора бывает только в каких-то особенных случаях. Это могут быть либо ошибки разработчика, либо анимация. В первом случае проблема решается устранением ошибок. В случае с анимацией — это уже не ошибка, а банальный закон физики. Здесь процессор используется для пересчета состояния системы 30 раз в секунду. И этим глупо возмущаться, как глупо возмущаться загрузкой процессора, когда запущена любимая игра.
UFO just landed and posted this here
Обвиняете, как будто украл у кого-то. У вас ко мне злость что ли какая-то?
UFO just landed and posted this here
спасибо за статью, думаю и для Флеша сгодится.
Не сгодиться — про производительность и оптимизирования приложений на флеше написано очень много (например актуальная презентация от Скиннера www.gskinner.com/talks/quick/), и данный случай это только неправильное программирование а не проблема сильверлайта.
Вы хотите сказать, что такую ошибку на Флеше допустить нельзя?
П.С. спасибо за ссылку.
Я хочу сказать что такую ошибку можно совершить на любой платформе :)
ну так это ведь и подтверждает мои слова «думаю и для Флеша сгодится»
UFO just landed and posted this here
Я знаю ответ на вопрос “Покажите нормальное приложение на Silverlight”. Это Bing Maps. Самые плавные карты, на уровне Google Earth. Можно включить слой OSM.
Ни разу в жизни не видел таких же плавных карт на Flash или js, несмотря на то что Flash обещал поддержку GPU и DirectX несколько лет назад.
На silverlight не писал практически, на шарпе минимум, но уже дойдя до строчки про LayoutUpdated сразу стало понятно что у вас там бесконечно вызывался update. Это первое что приходит в голову — это такие заметные огромные граблища :)
Знаете почему? Если бы я дал код на пару страниц, то процент тех, кому было бы сразу понятна ошибка сократился бы в половину. Тут то в трех строках понятно, если я намекаю, то очевидно, что баг должен быть, а догадаться какой, не так уж и сложно. Я не говорю о том, что вы бы тогда не нашли бы ошибку сходу, просто не нужно тут выставлять себя большими знайками. ;) Или что? Пишите ПО всегда без ошибок? Багов никогда не было? Святые, не иначе. :)

Я вот не стыжусь показывать какие баги я совершаю (хотя в этом случае это был не мой баг, но я допускаю, что так же мог бы его совершить), и считаю, что можно и нужно об этом писать, мало ли даже 10% не знают — не понимают — не догадываются, и допустят в ближайшем будущее подобное — уже хорошо ;)
Бывают такие ситуации, что нужного эвента просто не предусмотрено (вроде Loaded, Initialized, Completed), а подцепиться к чему-то хочется. Помотав туда-сюда список в IntelliSense, останавливаешься на LayoutUpdated, как на единственном более или менее подходящем. И все вроде как работает. И желание искать какой-то другой хак начинает пропадать. И аномальные нагрузки могут быть сразу не заметны, так как во время тестовых запусков приложение еще как правило не доделано и не работает на 100%.
Такой вопрос “Почему тормозит Silverlight?” достаточно часто можно услышать

Ни разу еще не слышал такого вопроса.
+1

тоже как-то удивился))

знаю что флеш тормозит жутко…

у меня жена как открывает какиенить игрушки онлайн — комп просто вешается…
винт крутит, проц под 100.
Sign up to leave a comment.

Articles