Дополнительные материалы к занятию можно скачать здесь.
Вложенные папки: 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 (Для разрешения данной проблемы и были созданы две сборки Domain: одна используется Silverlight сборками клиентской части, а вторая используется WCF сервисом, работающим под управление полноценного .Net Framework. |
| Presentation | Этот слой содержит в себе всю логику работы интерфейса. В этом слое содержатся классы презентеров (Presenters), которые управляют видами (Views). В этом же слое объявлены интерфейсы IViews, которые реализуются в слое View. Также здесь содержатся плоские объекты, так называемы Presenter Entities, которые обеспечивают более удобное представление доменных объектов для отображения. Вся логика работы интерфейса заложена в этом слое. Поскольку он отделен непосредственно от представления (View), и реализован в виде библиотеки классов, то данный слой идеально поддается модульному тестированию, что естественно является одной из главных особенностей и преимуществ шаблона |
| 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, что очень важно при интеграции приложения, поскольку сериализация и
В ходе выполнения данной работы мы создадим бизнес-приложение Silverlight, предназначенное для отображения данных из двух связанных таблиц базы данных ).
Для выполнения работы необходимо выполнить следующую последовательность действий:
Для выполнения предлагаемой работы требуется предварительная инсталляция определенного программного обеспечения, такого как Visual Studio 2010, Silverlight Developer Runtime вместе с SDK, а также WCF RIA Services и WCF RIA Services Toolkit. Потребуется также установить и настроить SQL Server 2008 R2 Express с расширенными службами и инсталлированными базами данных AdventureWorks OLTP и LT.
Бизнес-приложения Silverlight являются решениями, состоящими из двух проектов: Приложение Silverlight и веб-приложение ASP.Net, запускающее Silverlight-приложение. Бизнес-приложения Silverlight имеют встроенную функциональность. По умолчанию имеется страничка Home, страничка About, навигационная панель, а также функциональность для регистрации.
Для создания приложения необходимо:
Решение AdventureWorksOrders solution создается с двумя проектами: Silverlight-проект AdventureWorksOrders и проект веб-приложения AdventureWorksOrders.Web.
Для того, чтобы управлять данными в приложении мы будем использовать модель сущности данных
Для того, чтобы создать модель сущности данных необходимо:
Вы должны запустить проект перед добавлением службы доменов.
Служба доменов отображает сущности данных и операций в модели данных для клиента. В данном упражнении мы добавим службу доменов к серверному проекту.
Для того, чтобы создать службу доменов необходимо:
AdventureWorksService, после чего щелкните по пункту Add. Появится окно диалога Add New Domain Service Class.
Служба доменов предоставляет основные операции, требующие модификации в конкретном приложении. В данном примере мы отредактируем запрос GetSalesOrderHeaders, так, чтобы он возвращал связанные записи SalesOrderDetail. Для запуска объекта DataPager также требуется задание порядка сортировки в запросе.
Для того, чтобы изменить запрос службы домена необходимо:
GetSalesOrderHeaders следующим кодом.
public IQueryable<SalesOrderHeader> GetSalesOrderHeaders()
{
return this.ObjectContext.SalesOrderHeaders.Include("SalesOrderDetails").OrderBy(e => e.SalesOrderID);
}
SalesOrderHeaderMetadata добавьте атрибут Include обязательно перед выражением коллекции сущностей SalesOrderDetails:
[Include]
public EntityCollection<SalesOrderDetail> SalesOrderDetails { get; set; }
В этом упражнении мы добавим страницу Orders для отображения данных из таблиц.
Создание страницы Silverlight
В этом упражнении мы добавим кнопку к домашней страничке приложения для перехода на страничку Orders.
Создание кнопки навигации
<HyperlinkButton x:Name="Link2" ... />.
<Rectangle x:Name="Divider3" Style="{StaticResource DividerStyle}"/>
<HyperlinkButton x:Name="Link3" Content="Orders"
Style="{StaticResource LinkStyle}" NavigateUri="/Orders" TargetName="ContentFrame"/>
В этом упражнении мы создадим элемент управления связывания данных на странице Orders за счет перетаскивания элементов из окна Data Sources прямо в конструктор. Вначале мы создадим DataGrid, отображающий основную информацию об отдельном заказе, такую как Account Number, CustomerID, и Amount Due. Затем мы создадим элемент управления Grid, который перечисляет индивидуальные элементы заказа.
Создание элемента управления связывания данных
В данном упражнении мы добавим разбивку на страницы за счет добавления элемента управления DataPager к источнику данных. Мы установим DataPager.Source в положение DomainDataSource для управления данными на странице.
Нужно при этом учитывать, что DataPager требует, чтобы его данные были явно отсортированы. Именно поэтому выражение OrderBy было добавлено в запрос в самом начале упражнения.
Конфигурирование разбивки данных на страницы
В этом упражнении мы построим и запустим приложение для того, чтобы убедиться, что программа работает нормально.
Тестирование приложения
Учтите, что связь между главной и подчиненной таблицами появится в DataGrid при навигации по записям заголовка заказов.
Дополнительные материалы к занятию можно скачать здесь.
Вложенные папки: 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 (Для разрешения данной проблемы и были созданы две сборки Domain: одна используется Silverlight сборками клиентской части, а вторая используется WCF сервисом, работающим под управление полноценного .Net Framework. |
| Presentation | Этот слой содержит в себе всю логику работы интерфейса. В этом слое содержатся классы презентеров (Presenters), которые управляют видами (Views). В этом же слое объявлены интерфейсы IViews, которые реализуются в слое View. Также здесь содержатся плоские объекты, так называемы Presenter Entities, которые обеспечивают более удобное представление доменных объектов для отображения. Вся логика работы интерфейса заложена в этом слое. Поскольку он отделен непосредственно от представления (View), и реализован в виде библиотеки классов, то данный слой идеально поддается модульному тестированию, что естественно является одной из главных особенностей и преимуществ шаблона |
| 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, что очень важно при интеграции приложения, поскольку сериализация и
В ходе выполнения данной работы мы создадим бизнес-приложение Silverlight, предназначенное для отображения данных из двух связанных таблиц базы данных ).
Для выполнения работы необходимо выполнить следующую последовательность действий:
Для выполнения предлагаемой работы требуется предварительная инсталляция определенного программного обеспечения, такого как Visual Studio 2010, Silverlight Developer Runtime вместе с SDK, а также WCF RIA Services и WCF RIA Services Toolkit. Потребуется также установить и настроить SQL Server 2008 R2 Express с расширенными службами и инсталлированными базами данных AdventureWorks OLTP и LT.
Бизнес-приложения Silverlight являются решениями, состоящими из двух проектов: Приложение Silverlight и веб-приложение ASP.Net, запускающее Silverlight-приложение. Бизнес-приложения Silverlight имеют встроенную функциональность. По умолчанию имеется страничка Home, страничка About, навигационная панель, а также функциональность для регистрации.
Для создания приложения необходимо:
Решение AdventureWorksOrders solution создается с двумя проектами: Silverlight-проект AdventureWorksOrders и проект веб-приложения AdventureWorksOrders.Web.
Для того, чтобы управлять данными в приложении мы будем использовать модель сущности данных
Для того, чтобы создать модель сущности данных необходимо:
Вы должны запустить проект перед добавлением службы доменов.
Служба доменов отображает сущности данных и операций в модели данных для клиента. В данном упражнении мы добавим службу доменов к серверному проекту.
Для того, чтобы создать службу доменов необходимо:
AdventureWorksService, после чего щелкните по пункту Add. Появится окно диалога Add New Domain Service Class.
Служба доменов предоставляет основные операции, требующие модификации в конкретном приложении. В данном примере мы отредактируем запрос GetSalesOrderHeaders, так, чтобы он возвращал связанные записи SalesOrderDetail. Для запуска объекта DataPager также требуется задание порядка сортировки в запросе.
Для того, чтобы изменить запрос службы домена необходимо:
GetSalesOrderHeaders следующим кодом.
public IQueryable<SalesOrderHeader> GetSalesOrderHeaders()
{
return this.ObjectContext.SalesOrderHeaders.Include("SalesOrderDetails").OrderBy(e => e.SalesOrderID);
}
SalesOrderHeaderMetadata добавьте атрибут Include обязательно перед выражением коллекции сущностей SalesOrderDetails:
[Include]
public EntityCollection<SalesOrderDetail> SalesOrderDetails { get; set; }
В этом упражнении мы добавим страницу Orders для отображения данных из таблиц.
Создание страницы Silverlight
В этом упражнении мы добавим кнопку к домашней страничке приложения для перехода на страничку Orders.
Создание кнопки навигации
<HyperlinkButton x:Name="Link2" ... />.
<Rectangle x:Name="Divider3" Style="{StaticResource DividerStyle}"/>
<HyperlinkButton x:Name="Link3" Content="Orders"
Style="{StaticResource LinkStyle}" NavigateUri="/Orders" TargetName="ContentFrame"/>
В этом упражнении мы создадим элемент управления связывания данных на странице Orders за счет перетаскивания элементов из окна Data Sources прямо в конструктор. Вначале мы создадим DataGrid, отображающий основную информацию об отдельном заказе, такую как Account Number, CustomerID, и Amount Due. Затем мы создадим элемент управления Grid, который перечисляет индивидуальные элементы заказа.
Создание элемента управления связывания данных
В данном упражнении мы добавим разбивку на страницы за счет добавления элемента управления DataPager к источнику данных. Мы установим DataPager.Source в положение DomainDataSource для управления данными на странице.
Нужно при этом учитывать, что DataPager требует, чтобы его данные были явно отсортированы. Именно поэтому выражение OrderBy было добавлено в запрос в самом начале упражнения.
Конфигурирование разбивки данных на страницы
В этом упражнении мы построим и запустим приложение для того, чтобы убедиться, что программа работает нормально.
Тестирование приложения
Учтите, что связь между главной и подчиненной таблицами появится в DataGrid при навигации по записям заголовка заказов.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.