Опубликован: 01.03.2010 | Уровень: специалист | Доступ: платный
Лекция 4:

Создание бизнес-приложений Silverlight с использованием .NET RIA сервисов

< Лекция 3 || Лекция 4: 123456 || Лекция 5 >
Аннотация: Описание механизмов построения бизнес-приложений с использованием .NET RIA Services.

Rich Internet Application (RIA) - это особый класс веб-приложений. RIA приложения позволяют делать богатый пользовательский интерфейс, но без необходимости перегрузок страниц, как в обычных веб-приложениях. Типовая архитектура таких приложений приведена на рис. 4.1

Архитектура RIA приложений

увеличить изображение
Рис. 4.1. Архитектура RIA приложений

Обычно приложение состоит из серверной части, где размещены веб-сервисы, бизнес-логика, СУБД. Клиентская часть может быть HTML+Ajax или Silverlight. Мы будем рассматривать в контексте Silverlight. По сети части взаимодействуют по протоколам SOAP или REST (см. Работа Silverlight с web сервисами).

В обычном бизнес приложении уровни клиента и сервера разъединены и независимо разрабатываются. Но в RIA приложениях две части разрабатываются как одно приложение. Такую возможность дают .NET RIA сервисы. RIA сервисы не входят в состав Silverlight 3 и доступны для скачивания по адресу: http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en

.NET RIA сервисы упрощают разработку многоуровневых приложений объединяя платформы ASP.NET и Silverlight. Логика приложения располагается на среднем уровне и отвечает за запросы, изменения данных и прочие методы. .NET RIA сервисы автоматически генерируют прокси-классы для клиента, чтобы тот мог использовать их в этих операциях. И так как на уровнях логики и клиента сервисы работают с одной средой выполнения CLR (Common Language Runtime), разработчик может писать код, работающий на обоих уровнях. Использование .NET RIA сервисов стирает грань между разработкой клиентской и серверной частями и позволяет разрабатывать обе части, как одно приложение.

В общем .NET RIA сервисы могут использоваться не только с Silverlight, но и с другими технологиями написания клиентской части (Рис. 4.2). В любом случае бизнес-логика приложения будет передаваться через прокси-классы клиенту.

Возможности . NET RIA сервисов

Рис. 4.2. Возможности . NET RIA сервисов

Создание приложений с .NET RIA сервисами

На Рис. 4.3 показан процесс создания приложения Silverlight с поддержкой .NET RIA сервисов в Visual Studio 2008.

затем

Создание проекта Silverlight и .NET RIA Services

Рис. 4.3. Создание проекта Silverlight и .NET RIA Services

Есть возможность изменить существующий проект Silverlight, для того чтобы тот мог работать с .NET RIA сервисами. Автоматически в references проекта добавится ссылка на библиотеку System.Windows.Ria.

Изменение свойств проекта Silverlight для работы с .NET RIA сервисами

Рис. 4.4. Изменение свойств проекта Silverlight для работы с .NET RIA сервисами

http://www.silverlightshow.net/AWWeb/AdventureWorksLOB.aspx - пример бизнес-приложения, использующего .NET RIA сервисы

Пример бизнес-приложения Silverlight, использующего .NET RIA сервисы

увеличить изображение
Рис. 4.5. Пример бизнес-приложения Silverlight, использующего .NET RIA сервисы

В примере виден список товаров, возможна сортировка (List price), группировка (Category), поиск, постраничный вывод.

Преимущества для клиента при использовании .NET RIA сервисов.

Ключевыми моментами создания многоуровневых приложений с использованием .NET RIA сервисов являются:

  • Стандартное приложение Silverlight может быть трансформировано в многоуровневое с помощью линка RIA link между проектом Silverlight и веб-проектом.
  • Простейшее многоуровневое приложение состоит из 2-х отдельных проектов внутри одного решения (solution), один из них проект ASP.NET (уровень бизнес-логики), а другой - приложение Silverlight (клиент).
  • Класс DomainService в серверном проекте располагает набором сущностей и операций, свойственных определенному домену. Разработчик помещает логику приложения в этот класс.
  • Когда решение скомпилировано, прокси-класс для клиента генерируется автоматически для проекта Silverlight, согласно сущностям и операциям, определенных классом DomainService.
  • Клиент Silverlight взаимодействует со сгенерированным кодом прокси-класса DomainContext для получения и манипулирования соответствующими сущностями.
  • И сервер и клиент работают с одним и тем же набором сущностей, делая возможным прозрачно использовать бизнес-логику и правила ввода данных на всех уровнях.

Преимуществами для клиента при использовании .NET RIA сервисов являются:

  • Навигация по страницам с помощью кнопок браузера "вперед" и "назад". Заголовок страницы изменяется во время навигации.
  • Проверка правильности ввода (валидация) данных на клиенте.
  • Фильтрация, сортировка, разбиение на страницы - осуществляется декларативно
  • Создание окон в рамках Silverlight 3 приложения - необходимая функция для бизнес-приложений
  • Обеспечение безопасности через [RequiresAuthentication] - атрибут метода или свойства
  • Любые источники данных ADO.NET, SOAP|REST, LINQ, SQL Server
  • Полное тестирование кода (unit test)
  • Добавление любых бизнес-операций
< Лекция 3 || Лекция 4: 123456 || Лекция 5 >
Ляйсан Рустамханова
Ляйсан Рустамханова
Россия, Башкирский Государственный университет, 2006
Елена Лях
Елена Лях
Россия, Ярославль, ЯГПУ, 2009