Опубликован: 01.11.2011 | Доступ: свободный | Студентов: 1424 / 63 | Оценка: 3.84 / 3.44 | Длительность: 15:38:00
Специальности: Программист
Лекция 10:

Разработка бизнес-приложений Silverlight

Аннотация: Microsoft Silverlight является реализацией .NET Framework, поддерживаемой различными браузерами и платформами, предназначенная для создания и представления мультимедиа и многофункциональных приложений (RIA) нового поколения в Интернете.

Дополнительные материалы к занятию можно скачать здесь.

Вложенные папки: AdventureWorksOrders

Ссылки: http://msdn.microsoft.com/en-us/library/ee796241%28v=VS.91%29.aspx#Y3075

Microsoft Silverlight является реализацией .NET Framework, поддерживаемой различными браузерами и платформами, предназначенная для создания и представления мультимедиа и многофункциональных приложений (RIA) нового поколения в Интернете. Silverlight объединяет возможности сервера, Интернета и персонального компьютера; возможности управляемого кода и динамических языков, декларативного и традиционного программирования, а также мощные средства Windows Presentation Foundation (WPF) [34].

Для запуска приложения Silverlight пользователям необходим небольшой подключаемый модуль для браузера. Подключаемый модуль предоставляется бесплатно. Если у пользователя еще не установлен подключаемый модуль, ему автоматически предлагается установить его. Загрузка и установка занимают всего несколько секунд и не требуют от пользователя никаких действий, кроме разрешения на установку [34].

Silverlight гарантирует, что пользователи могут запускать приложения во всех современных браузерах без создания специального кода для браузера. Приложения Silverlight могут выполняться в браузере или вне браузера [34].

При разработке бизнес-приложений очень важную роль играет обеспечение доступа к данным. Данные находятся на сервере, а Silverlight-приложение запускается на машине клиента. Для организации обмена данными между клиентским приложением и базой данных используются сервисы ( рис. 30.1):

Взаимодействие между базой данных и клиентским приложением осуществляется с помощью служб

Рис. 30.1. Взаимодействие между базой данных и клиентским приложением осуществляется с помощью служб

Silverlight поддерживает службы ASMX, WCF и REST, а также сокеты и net.tcp.

Работа со службами ASMX и WCF аналогична с точки зрения Silverlight. При реализации службы выбором по умолчанию должна быть WCF [35].

Бизнес-приложение Silverlight обычно состоит из клиентской и серверной частей:

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

Рис. 30.2. Архитектура приложения

Клиентская часть представлена Silverlight приложением. Silverlight приложение - это .xap файл (по сути дела тот же zip архив, содержащий все ресурсы и сборки приложения), выполняющийся в плагине Silverlight [36]. Существует несколько типов проектов Silverlight:

Silverlight Application обычное приложение Silverlight.
Silverlight Class Library библиотека классов Silverlight, этот тип проекта использовался для слоев: Presentation, Infrastructure, Domain.
Silverlight Navigation Application приложение SIlverlight, поддерживающее навигацию, этот тип проекта использовался для слоя View.

Серверная часть представлена WCF сервисом, взаимодействующим с БД через соответствующий слой Data Access. Рассмотрим подробнее слои приложения:

Domain Этот слой находится в центре приложения и инкапсулирует в себе всю бизнес-логику и знания предметной области. Данный слой содержит все основные бизнес-сущности и бизнес-правила предметной области. Классы Solution (программный проект), Measure (показатель), Developer (разработчик), SolutionProfile (профиль проекта) относятся именно к доменным объектам. В приложении должен быть единый домен, поскольку все, что относится к бизнесу описано именно в этом слое. Однако в архитектуре приложения присутствует два домена. Это связано с ограничением технологии Silverlight. Поскольку технология Silverlight работает на своей платформe Silverlight .Net Framework, которая является сильно урезанной версией полноценного .Net Framework, то совместное использование доменных объектов сборками Silverlight и .Net Framework без перекомпиляции невозможно [36].

Для разрешения данной проблемы и были созданы две сборки Domain: одна используется Silverlight сборками клиентской части, а вторая используется WCF сервисом, работающим под управление полноценного .Net Framework.

Presentation Этот слой содержит в себе всю логику работы интерфейса. В этом слое содержатся классы презентеров (Presenters), которые управляют видами (Views). В этом же слое объявлены интерфейсы IViews, которые реализуются в слое View. Также здесь содержатся плоские объекты, так называемы Presenter Entities, которые обеспечивают более удобное представление доменных объектов для отображения. Вся логика работы интерфейса заложена в этом слое. Поскольку он отделен непосредственно от представления (View), и реализован в виде библиотеки классов, то данный слой идеально поддается модульному тестированию, что естественно является одной из главных особенностей и преимуществ шаблона MVP [36].
View Этот слой представляет собой UI приложения. В нем реализуются интерфейсы, объявленные в слое Presenter (IViews). Сам View содержит в себе минимум логики (Passive View), и имеет только простые свойства, для отображения данных [36].
Infrastructure Данный слой содержит классы адаптеров, которые предоставляют и сохраняют доменные объекты по запросу презентеров. Разнообразие адаптеров скрывается от слоя Presenter одним общим фасадом (GOF Facade pattern), что делает работу со слоем Infrastructure очень простой и удобной. Сами интерфейсы фасада и адаптеров объявлены в слое Domain, а в слое Infrastructure содержится реализация этих интерфейсов.

Серверная часть реализована в виде WCF сервиса, который с помощью слоя DataAccess (в нашем случае в качестве ORM мы использовали LINQ to SQL) получает данные из BD, формирует доменные объекты и передает их в клиентскую инфраструктуру. Однако для того чтобы передать доменные объекты необходимо их сериализовать, то есть преобразовать из сложных объектов в строку, а на клиенте в слое Infrastructure соответственно десериализовать строку в доменные объекты. Для сериализации мы использовали класс DataContractSerializer, доступный как в полноценных сборках .Net, так и в сборках Silverlight, что очень важно при интеграции приложения, поскольку сериализация и десериализация доменных объектов происходит как в клиентских сборках, так и в серверных сборках [36].

Практическое занятие 29. Отображение связанных данных в бизнес-приложении Silverlight

В ходе выполнения данной работы мы создадим бизнес-приложение Silverlight, предназначенное для отображения данных из двух связанных таблиц базы данных AdventureWorks. Этот пример взят с сайта msdn (http://msdn.microsoft.com/en-us/library/ee796241%28v=VS.91%29.aspx#Y3075).

Для выполнения работы необходимо выполнить следующую последовательность действий:

  1. Создать бизнес-приложение Silverlight, содержащее два проекта: клиент Silverlight и веб-приложение ASP.NET.
  2. Изменить название приложения с помощью модификации строки ресурсов.
  3. Создать модель сущности данных, основанную на файле базы данных.
  4. Создать доменную службу, представляющую данные в модели сущности данных для клиента Silverlight.
  5. Изменить запрос в доменной службе для того, чтобы вернуть связанные данные.
  6. Изменить метаданные доменной службы для поддержки загрузки связанных данных.
  7. Создать дополнительную страницу Silverlight для того, чтобы отображать данные пользователям.
  8. Добавить кнопку на стандартную панель навигации для обеспечения доступа к странице Silverlight.
  9. Сконфигурировать страницы Silverlight для отображения данных за счет перетаскивания элементов из окна Источник данных в конструктор Silverlight.
  10. Добавить элемент управления DataPager для навигации по записям

Пререквезиты

Для выполнения предлагаемой работы требуется предварительная инсталляция определенного программного обеспечения, такого как Visual Studio 2010, Silverlight Developer Runtime вместе с SDK, а также WCF RIA Services и WCF RIA Services Toolkit. Потребуется также установить и настроить SQL Server 2008 R2 Express с расширенными службами и инсталлированными базами данных AdventureWorks OLTP и LT.

Создание бизнес-приложения Silverlight

Бизнес-приложения Silverlight являются решениями, состоящими из двух проектов: Приложение Silverlight и веб-приложение ASP.Net, запускающее Silverlight-приложение. Бизнес-приложения Silverlight имеют встроенную функциональность. По умолчанию имеется страничка Home, страничка About, навигационная панель, а также функциональность для регистрации.

Для создания приложения необходимо:

  1. В In Visual Studio 2010 создайте новый проект Бизнес-приложения Silverlight в C# с именем AdventureWorksOrders.
    Решение AdventureWorksOrders solution создается с двумя проектами: Silverlight-проект AdventureWorksOrders и проект веб-приложения AdventureWorksOrders.Web.
  2. В Solution Explorer разверните проект AdventureWorksOrders
  3. Разверните папку Resources, вложенную в папку Assets
  4. Дважды щелкните по файлу ApplicationStrings.resx для того, чтобы запустить инструмент Resource Designer.

  5. Внесите изменение в строку ресурсов, заменив строку ApplicationName на Adventure Works Orders.
  6. Сохраните изменения и закройте файл ApplicationStrings.resx.
  7. Запустите проект. Откроется домашняя страница и отобразит измененное название приложения.