Сначала изучите Silverlight или WPF?
Похоже, что Silverlight/WPF - это долгосрочное будущее для разработки пользовательского интерфейса с помощью.NET. Это здорово, потому что, как я вижу, преимущество повторного использования навыков XAML как на стороне клиента, так и на стороне веб-разработки. Но, глядя на WPF/XAML/Silverlight, они кажутся очень крупными технологиями, и так где же лучше всего начать?
Я хотел бы услышать от любого, кто хорошо знает и то, и другое, и может порекомендовать, что является лучшей отправной точкой и почему.
9 ответов
Стоит ли сначала изучать ASP.NET или Winforms? ASP или MFC? HTML или VB? C# или VB?
Оставьте в стороне идею о том, что существует логический прогресс в том, что стало очень сложным переплетенным набором технологий, и сделайте шаг назад и задайте себе ряд вопросов:
- Каковы твои цели; как вы хотите сбалансировать прибыль против удовольствия
- Вы ориентированы на краткосрочную перспективу или на долгосрочную перспективу?
- Вы тот человек, который любит что-то делать хорошо и делать это много или вам становится скучно, когда вы полностью понимаете это?
Следующим и самым трудным шагом является принятие того, что любой совет, который вам дают, обязательно будет неправильным; и чем дольше временной интервал, тем больше вероятность, что он будет неправильным. Если рекомендация длится более шести - 12 месяцев, вероятность того, что рекомендация является крайне неверной, приближается 1.
Я могу только рассказать вам свою историю, быстро. В 2000 году я был счастлив как консультант, работавший на C++ с пользой для Windows-приложений и писавший о ASP.NET и WinForms. потом я увидел C# и мир перевернулся с ног на голову. Я никогда не возвращался.
Два года назад у меня было такое же откровение, только на порядок больше, сильнее и с большим убеждением в Silverlight. Да, WPF великолепен, и, может быть, я весь об этом, но я верю, что Silverlight меняет все. Тогда не было никаких сомнений, и сегодня нет никаких сомнений в том, что Silverlight является наиболее важной платформой разработки для Microsoft со времен.NET (конечно) и, возможно, после перехода на C++.
В двух словах, вот почему. Я не понимаю, где его ограничения. С большинством платформ я делаю: вы можете сделать это, но вы не можете сделать это. WPF является довольно хорошим примером, как ASP.Net и WinForms и, ну, на самом деле все до сих пор.
С Silverlight я пока не вижу границ. Silverlight уже выпрыгнул с рабочего стола на телефоны, и я не вижу причин для этого останавливаться на достигнутом. Да, это правда, это связано с браузером, но я вижу, что это меньше тюремная камера, чем танк, в котором Silverlight будет кататься по большой местности (должно быть, уже очень поздно, я должен идти спать).
В любом случае, сейчас изучение Silverlight - это газ, на сайте http://www.silverlight.net/ много материала, и что самое лучшее в изучении Silverlight - это то, что если вы не видите, что вам нужно, вы можете кричать на меня, и я позабочусь, чтобы вы поняли это довольно быстро.
Наслаждайтесь, удачи и грязный маленький секрет, что вы будете в порядке, что бы вы ни выбрали. Это все просто программное обеспечение.
-jesse
Джесси Либерти "Silverlight Geek"
Я бы сказал, сначала зайди с Silverlight!
Я программировал с WPF и Silverlight раньше.
Но поскольку Silverlight является подмножеством WPF, если вы слишком углубитесь и попытаетесь переключиться на написание приложений Silverlight, вы будете ломать голову в поисках того "тега", который вы научились любить в WPF, но который недоступен в Silverlight.
Когда вы сначала освоите базовые вещи в Silverlight, дополнительные механизмы / триггеры / любые другие функции в WPF просто добавят большую часть того, что вы уже знаете.
Silverlight в WPF отличается по уровню функций, а не только отсутствующим элементам управления или анимации. Возьмем, например, механизм триггеров WPF, который не полностью доступен в Silverlight.
Итак, изучая сначала меньшее подмножество, вы можете расширить эти знания до полного набора позже, но если вы начали с полного набора и пристрастились к некоторым из доступных тонкостей, у вас будут проблемы в дальнейшем, когда кто-то попросит вас портировать ваши разработанные приложения WPF для Silverlight.
Я пойду против зерна и скажу сначала изучать WPF.
Вот мои рассуждения:
Для WPF доступно гораздо больше ресурсов, чем Silverlight, таких как книги, блоги и документация msdn.
Вы не имеете дело с бета, движущейся целью
Вам не нужно работать только с асинхронными вызовами
Не ограничивается отсутствием таких функций, как объединенные словари, триггеры, TileBrushes и т. Д.
Вам не нужно беспокоиться о переучивании, чтобы делать вещи правильно из-за отсутствия функций в SL
Silverlight является урезанной версией WPF, поэтому в ней должно быть меньше вещей для изучения. С другой стороны, две платформы имеют разные цели (веб-клиент и многофункциональный клиент), поэтому я думаю, это зависит от того, какое приложение вы собираетесь создать.
Если вы просто хотите учиться для себя (в ближайшем будущем нет приложений), я бы выбрал Silverlight, потому что было бы меньше ассимилироваться. Тем не менее, Silverlight является в значительной степени движущейся целью, намного больше, чем WPF, поэтому вам придется время от времени идти в ногу с некоторыми изменениями (радость быть ранним последователем:)).
В WPF есть гораздо больше вещей, которые вы, вероятно, захотите использовать в какой-то момент, но я бы подождал, пока потребности возникнут в первую очередь.
Каждый отраслевой эксперт, которого я слышал в подкастах, блогах и интервью, рекомендует сначала изучить Silverlight, а затем постепенно переходить на WPF, который представляет собой огромную инфраструктуру пользовательского интерфейса.
Silverlight легок и позволяет вам работать с меньшим подмножеством элементов управления и функций, так что вы сможете разобраться с этой новой парадигмой построения пользовательского интерфейса на основе:
- шаблонирование
- DataBinding
- Стили
Обновление: 07/2011
Я не хочу упоминать об этом, но в последнее время Microsoft уделяет больше внимания HTML5, Javascript и CSS, продвигая возможности IE 9 и IE 10, а также грядущей Windows 8.
С течением времени все больше разработчиков и технических директоров скептически относятся к Silverlight как к платформе LOB-приложений, и мы подозреваем, что Silverlight будет ограничен Windows Phone и нишей, областями, такими как здравоохранение приложений, связанных с графикой, а не обычным LOB-приложением.
Как кажется, прямо сейчас, по состоянию на лето 2011 года, будущее может выглядеть фрагментированным с большим количеством возможностей для чистых веб-технологий (HTML5, JS и CSS), в отличие от плагина и технологии пользовательского интерфейса для конкретной ОС.
Я бы начал с WPF и делал очень простые контрольные ознакомительные образцы. Ваша цель должна состоять в изучении XAML и Binding. Так что, если вы просто создадите несколько базовых оконных приложений WPF, вы начнете скорость обучения. Тогда, в конце концов, вы можете перейти к Silverlight. Да, как уже упоминалось, Silverlight является подмножеством WPF.
Я бы начал с изучения XAML, прочитав несколько уроков и поиграв с XAMLPad. Это даст вам представление об основах перед тем, как создавать приложение.
Ну, это зависит от того, над чем вы собираетесь работать. Если вы работаете на клиент / сервер, то я бы пошел с WPF. Если вы работаете в среде, где вы можете гарантировать, что.Net установлен на всех машинах, то я бы также использовал WPF, потому что вы можете использовать то, что называется XBAP, то есть приложение WPF, которое запускается через браузер.
Это действительно зависит от вас. Однако я бы сказал, что silverlight - это еще не RTM, а WPF. У WPF много книг на эту тему, а Silverlight нет. Возможно, будет проще получить весь дзен WPF, прочитав несколько этих книг, а затем погрузиться в какую-нибудь ту, с которой вы хотели бы поиграть.
Просто имейте в виду, что silverlight имеет подмножество элементов управления WPF, спаренную структуру.Net и не выполняет синхронные вызовы. Если вы знаете об этом заранее, вы можете начать изучать суть всей основы и впоследствии адаптировать свой практический опыт к той технологии, которая вам больше подходит.