Выбирая между WPF и Silverlight- часть 2 из 3
Как вы могли заметить, в прошлой статье, я ни слова не сказал про новые возможности Silverlight 3, и это было сделано специально. Я хотел показать вам, насколько важно понимание текущего положения дел, технологий. Сегодня я хотел бы вам рассказать немного о новых возможностях Silverlight 3, об архитектурных моделях в ваших решениях и проблемах общего плана.
Что же такое Silverlight 3? Это - прежде всего, новые возможности и традиционная компактность. В данной статье я не буду освещать все новые возможности, о них можно прочитать в этом документе, я остановлюсь на наиболее интересных. Не буду вас искушать и тратить время зря, перейду сразу к самому интересному, к новым возможностям.
Что же нового в Silverlight 3?
Полная поддержка Visual Studio и Expression Blend’ом, множество новых возможностей. Silverlight 3 включает в себя: значительные изменения средств для работы с медиа; режим работы вне браузера; существенно улучшенную модель для работы с 3D графикой; поддержку GPU ускорения; формат видеоH.264 и многие другие возможности, которые позволят сделать разработку ваших RIA приложений более продуктивной. Также, для полной интеграции с разработчискими средствами .NET Framework’а, Visual Studio 2010 будут поддерживать полноценный редактор-дизайнер для Silverlight.
Вне браузерный режим
Silverlight 3 теперь предоставляет возможность запускать приложения вне окна браузера. При этом данное приложение по-прежнему исполняется в песочнице браузера.
Подробнее узнать о данном сценарии можно здесь
Работа без сети
Также, Silverlight 3 позволяет вашему приложению работать при отсутствии сети. Для проверки наличия сети существуют специально предусмотренные средства. У вас есть возможность сохранить ваши данные в изолированном хранилище, а при возобновлении Интернета синхронизировать их сервером.
Мульти-страничные приложения
Для создания полноценных приложений Silverlight постепенно двигается от предоставления контролов и UX к простым framework’ам. А именно, в Silverlight 3 появился новый framework для работы с мульти-страничными приложениями.
Более полная информация здесь
. Net RIA Services
Microsoft .NETRIA Services упрощает разработку клиент-серверных приложений, соединяя вместе платформы ASP.NET и Silverlight. RIA Services предоставляет шаблоны для написания бизнес логики, которые выполняются на среднем уровне и управляют данными и различными операциями.
Подробную информацию можно получить здесь
Разговоры об архитектуре
Основные сценарии и решения
Выбор вашего типа приложения напрямую зависит от используемого сценария.
• Толстый клиент подходит для сценариев, где большая часть вычислений выполняется за счет ресурсов клиента и не требует постоянного подключения к сети.
• Богатые Интернет приложения ( RIA ) предоставляют широкий пакет средств для работы с медиа, используя веб распространение.
Модель толстого клиента
Толстый клиент – это высоко производительное интерактивное приложение с богатым пользовательским интерфейсом, которое работает в различных сценариях независимо от наличия Интернета.
Уровень представления - отвечает за взаимодействие приложения с пользователем, он формирует, отрисовывает и проверяет введенные пользователям данные.
Уровень бизнес логики - включает бизнес потоки и логику, которые собственно и управляют приложением, также на этом уровне находятся бизнес сущности – элементы, которыми обмениваются компоненты логики.
Уровень данных - содержит модели и провайдеры, которые позволяют получать данные.
Рассматривайте модель толстого клиента, как модель вашего приложения, если:
• Приложение будет загружено на клиентский компьютер.
• Это интерактивное приложение.
• Богатый пользовательский функционал.
• Приложение тесно взаимодействует с ОС.
• Приложение использует много ресурсов клиента.
Модель богатых Интернет приложений ( RIA )
Богатые Интернет приложения (RIA) выполняются в песочнице браузера. Преимущество RIA над традиционным вебом в том, что они предоставляют больше возможностей, интерактивность и более эффективное сетевое взаимодействие.
Клиент, как я уже говорил, выполняется в песочнице браузера. Каждое приложение песочницы изолировано, хотя Silverlight 3 предоставляет новые средства для взаимодействия приложений. Существует изолированное хранилище для каждого приложения, которое позволяет сохранять информацию. Важно то, что хранилище изолировано, и доступ к реальной файловой системе пользователя отсутствует. Данный уровень взаимодействует с пользователем (формирует, отрисовывает и проверяет введенные данные).
Веб сервер
1. Уровень сервисов предоставляет интерфейсы клиентской части для взаимодействия с уровнем логики.
2. Уровень бизнес логики идентичен уровню логики толстого клиента.
3. Уровень данных идентичен уровню данных толстого клиента.
Рассматривайте модель богатых Интернет приложений, как модель вашего приложения, если:
• Приложение требует поддержки медиа высокого качества и 3D графики.
• Интерактивное приложение.
• Богатый пользовательский функционал.
• Ограниченное использование клиентских ресурсов.
• Требуется упрощенная модель развертывания.
Толстый клиент vs . RIA
Тип приложения |
Преимущества |
Проблемы |
Толстый клиент |
1. Может расходовать клиентские ресурсы 2. Интерактивность, богатый пользовательский функционал 3. Высокая способность к реагированию 4. Поддержка работы без сети |
1. Требует установки (Click Once, Windows Installer, Copy) 2. Контроль версий 3. Зависимость от платформы |
RIA |
1. Тот же богатый пользовательский интерфейс, как и у толстого клиента 2. Поддержка 3Dи медиа высокого качества 3. Простой способ распространения 4. Простой механизм контроля версий 5. Кросс платформенность и кросс браузерность |
1. Небольшой размер приложений 2. Ограничения по использованию клиентских ресурсов 3. Требует установленного Silverlight™ Runtime’а |
Целевая аудитория
Хочу обратить ваше внимание на необходимость понимания, для кого вы разрабатываете конкретное решение. Следует учитывать специфику рынка, на который вы хотите вывести ваш продукт. Вот некоторый список характеристик, который поможет вам классифицировать целевую аудиторию
1) Операционная система
2) Качество Интернета
3) Браузер
4) Наличие необходимых Runtime’ов (.Net & Silverlight)
5) Мощность компьютера
На основании собранных данных можно сделать предварительную модель вашего решения. Собранные данные сыграют ключевую роль, а рационально выбранная схема определит успешность вашего бизнеса. К примеру, планируемая аудитория использует в 70% случаях Windows, а в 30% MacOSX, в такой ситуации разумнее использовать Silverlight, который позволит вам охватить весь рынок. Другой пример, вы разрабатываете программу, которая должна снимать показания с датчиков и отправлять их на сервер; очевидно, что требуется использовать WPF, который позволяет в полной мере общаться с операционной системой.
Немного о бизнесе
Необходимо также помнить о стоимости оборудования, которое потребуется для создания вашей инфраструктуры. Перенося все вычисления на веб сервер, вам требуется наличие продуманной мощной среды. В некоторых случаях, это может стать причиной для применения другой технологии. Существуют также и гибридные архитектуры, где часть вычислений делает сервер, а часть клиент. При такой архитектуре, выполняя критические операции на стороне сервере, стоит не забивать про безопасность вашего решения.
Резюме
Данной статьей я не хотел показать, что Silverlight можно использовать только для RIA приложений, а WPF для толстых клиентов. Рассмотренные технологии, безусловно, прекрасно подходят для именно таких сценариев. Важно, в ваших приложениях рационально выбирать используемые технологии. Ключевым параметром Silverlight является его компактность. Это не значит, что вы не можете делать вычисления на стороне клиента. С другой стороны, Silverlight содержит меньше готовых компонентов, которые придется реализовывать самостоятельно, увеличивая размер приложения. Стоит задуматься над тем, что при слишком большом размере приложения, на его загрузку будет потрачено пользователем много времени, тем самым возникает опасность потери части клиентов. Таким образом, за счет использования WPF и Silverlight мы можем разгружать наш сервер, перенося вычисления на клиента.
В этих двух частях я постарался коротко рассказать о наиболее распространённых технологиях, созданных корпорацией Microsoft для построения клиентских решение. Также, в статье были затронуты архитектурные модели, которые помогут вам на стадии проектирования. Следует не забывать и про экономический аспект и целевую аудиторию. В заключительной части я бы хотел поговорить о техниках программирования Silverlight и WPF приложений, об их различиях и об общих методах.