Выбор WPF, Silverlight или чего-либо еще на этот счет на основании того, что это модно, кажется мне просто глупым, если только вы не пытаетесь произвести впечатление на девушку или остроконечного босса.
Цель написания программного обеспечения - зарабатывать деньги. Вот почему Microsoft делает это, именно поэтому я делаю это, и, вероятно, именно поэтому вы делаете это. Хотя, безусловно, есть люди, которые делают это потому, что им нравится это делать или в погоне за высокими идеалами, эти люди не являются эффективными рыночными силами и не имеют права голоса.
Большая часть денег идет на бизнес-приложения (LOB), и все инструменты создаются с явной целью продавать их людям, пытающимся создавать LOB-приложения, поскольку это составляет основную часть мирового бюджета на инструменты для разработки.
Silverlight до третьей версии по сути конкурировал с Flash, то есть он был бесполезен для всего, кроме искры на сайтах: посмотрите все примеры сайтов, связанных со страницей Microsoft Silverlight.
Большой толчок Microsoft в SL4 - поддержка разработки LOB; инструменты RIA. Но почему? Потому что, хотя вы можете разрабатывать LOB с использованием HTML, CSS, AJAX, Flash и веб-сервисов, это все равно, что сказать, что вы можете построить хороший автомобиль из набора Meccano, при условии, что вы готовы использовать много болото Silverlight делает то же самое, но эффективно и согласованно, с единой средой разработки. И блестит.
Это огромное улучшение по сравнению с разбитым набором инструментов для работы с HTML, CSS, AJAX, Flash и веб-сервисами, и если вы продаете эту интегрированную студию разработки, это просто изумительно.
Silverlight означает простое развертывание. Что если у них нет Silverlight? Они будут, даже если Microsoft должна скрыть это в следующем пакете обновления. Простое развертывание отлично подходит для ИТ-специалистов и отлично подходит для продажи услуг бюро. Также замечательно, если вы разрабатываете, потому что вам не нужно заниматься разработкой или тестированием установочных комплектов.
Для услуг типа бюро другого разумного выбора нет. Для обычных приложений LOB нет причин не использовать его, и развертывание намного проще и удобнее. если вам нужно что-то делать за пределами этих границ, Silverlight не подходит.
Может быть интересно отметить, что мое приложение выполняет ряд функций (прямая передача TCP), не поддерживаемых Silverlight, и это совсем не проблема; сервер делает их от имени клиента, и это хорошо уклоняется от всех экологических опасностей, связанных с развертыванием в дикой природе, потому что мы можем контролировать среду сервера.
Я полагаю, что кроссплатформенная поддержка - это заблуждение, потому что Silverlight на платформах, отличных от Windows, сильно отстает, а также коммерческие рабочие станции, отличные от Windows, немногочисленны. Предприятия не используют Linux на рабочих станциях. Macintosh - это не платформа, это религия: нет смысла даже говорить с ними.
Все, что сказано, до VS2010 не было дизайнера Silverlight. Ручное кодирование бесконечного XAML - это колоссальная боль в заднице. SL4 / RIA в VS2010 - это замечательно, но у Joe Public его еще нет, и он не мог использовать его для развертывания, если он у него есть, потому что нет действующей лицензии или среды выполнения для конечного пользователя.
Это оставляет WPF единственным практическим вариантом. Тем не менее, [барабанная дробь] будет доступна финальная бета-версия с действующей лицензией и временем исполнения. Реально скоро, вероятно, в конце февраля. Слава Скотту и команде.