Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_Silverlight.doc
Скачиваний:
1
Добавлен:
10.09.2019
Размер:
829.95 Кб
Скачать

Министерство образования Республики Беларусь

Кафедра «Автоматизированные системы управления»

Методические указания к лабораторной работе

по дисциплине «Программирование»

«Разработка приложений с использованием технологии Silverlight»

Составитель К.В. Захарченков

Могилев, 2012

Цель - освоить основные приемы разработки корпоративных Silverlight- приложений, обеспечивающих взаимодействие клиентской части с базой данных.

Проектирование серверной части приложения

Основой серверной части Silverlight- приложения является веб-сервер. В рамках веб-сервера создаются источники данных и службы, предоставляющие доступ к данным.

Взаимодействие приложения Silverlight с источником данных базируется на службе данных WCF и модели "сущность-связь" – Entity Data Model (EDM).

Концептуальная модель является специфическим представлением структуры некоторых данных в виде сущностей и связей. Одним из способов представления концептуальной модели является схема. На рис. 7.1 приведена схема концептуальной модели базы данных Person – "Персонал" с двумя типами сущностей ( Employee – Сотрудник и JobTitle –роль/должность) и одной ассоциативной связью 1:* (один ко многим).

Рис. 7.1.  Концептуальная модель базы данных

Таблица Employee содержит данные по сотруднику. Атрибутами таблицы являются:

EmployeeID – код сотрудника;

JobRoleID – внешний ключ для связи с таблицей Title;

EmployeeSurname – фамилия;

EmployeeName – имя;

EmployeePatronymic – отчество;

EmployeeStatus – статус;

Access – уровень доступа;

NetName – сетевое имя;

FirstDate – дата приема на работу;

LastDate – дата увольнения.

Таблица JobTitle является справочником должностей, имеющихся на предприятии, и включает следующие атрибуты:

ID – код должности;

Title – наименование должности.

Разработку Silverlight-приложения, взаимодействующего с базой данных, начнем с конструирования EDM-модели данных. Для этого создадим новое веб-приложение ASP.NET с именем PersonService (рис. 7.2).

увеличить изображение Рис. 7.2.  Создание новое веб-приложение ASP.NET

В проекте будем использовать порт 12345. Для этого откроем окно свойств проекта и на вкладке Веб введем новый номер порта (рис. 7.3).

Рис. 7.3.  Создание новое веб-приложение ASP.NET

Добавим в проект новый элемент – модель ADO.NET EDM, присвоив файлу модели имя Employee.edmx.

При завершении работы мастера создания EDM-модели в проект будет добавлен файл Employee.edmx (рис. 7.4).

Рис. 7.4.  Проект с моделью EDM

Службы WCF Data Services входят в состав библиотеки .NET Framework и состоят из набора шаблонов и библиотек. Они позволяют создавать службы данных и обращаться к ним в Интернете, интрасети или в приложении. Службы WCF Data Services предоставляют данные как ресурсы, адресуемые с помощью URI. Это позволяет обращаться к данным и изменять их с использованием семантики архитектурного стиля Representational State Transfer (REST), в частности стандартных команд HTTP, таких как GET, PUT, POST и DELETE.

Службы WCF Data Services взаимодействуют с сущностей модели EDM и предоставляют ресурсы в виде наборов сущностей и взаимосвязей между ними. Они позволяют предоставлять данные, происходящие из различных источников. Предоставлять реляционные данные в виде ресурсов можно, определив концептуальную модель с помощью Entity Data Model (EDM).

В состав служб WCF Data Services включен набор клиентских библиотек:

для типовых клиентских приложений .NET Framework;

для приложений на основе Silverlight.

Клиентские библиотеки предоставляют возможности объектно-ориентированного программирования для доступа к службам WCF Data Services из таких платформ, как .NET Framework и Silverlight.

Создание службы данных начнем с добавления в проект нового элемента – службы данных WCF, файл которой назовем WfcDataServicePerson.svc (рис. 7.5).

Рис. 7.5.  Добавление в проект службы данных

В объявлении сгенерированного класса WcfDataServicePerson необходимо указать обобщенный тип PersonalEntities (EDM-модель) родительского класса DataService, то есть:

public class WcfDataServicePerson : DataService<PersonalEntities>

и права при работе с таблицами базы данных:

config.SetEntitySetAccessRule("Employees", EntitySetRights.All);

config.SetEntitySetAccessRule("JobTitles", EntitySetRights.All);

Это обеспечивает авторизованным клиентам доступ к ресурсам указанных наборов сущностей.

Отредактированный класс службы данных будет иметь следующий вид:

public class WcfDataServicePerson: DataService<PersonalEntities >

{

public static void InitializeService(DataServiceConfiguration config)

{

config.SetEntitySetAccessRule("Employees", EntitySetRights.All);

config.SetEntitySetAccessRule("JobTitles", EntitySetRights.All);

config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;

}

}

Для тестирования запустим службу. Результаты выполнения приведены на рис. 7.6.

Рис. 7.6.  Тестирование службы данных

На этом создание службы данных завершено.

Проектирование клиентского приложения

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

Silverlight позволяет создавать приложения, используя любой поддерживаемый платформой .NET Framework язык (включая Visual Basic, C# и JavaScript). Visual Studio и Expression Blend предоставляют возможности разработки приложений Silverlight. Можно создавать веб-страницы, использующие как элементы HTML, так и элементы WPF с Silverlight. Подобно HTML, XAML позволяет создать пользовательский интерфейс для веб-приложения с помощью декларативного синтаксиса с тем отличием, что XAML предоставляет значительно более мощные элементы.

Создадим для нашего решения новый проект Silverlight и назовем его SilverlightAppPersonal (рис. 7.7).

Рис. 7.7.  Создание нового проекта – приложения Silverlight

В окне мастера создания приложения Silverlight проверьте размещение приложения и версию Silverlight (рис. 7.8). В нашем проекте приложение Silverlight должно размещаться на существующем сайте в решении PersonService, а версия Silverlight должна быть – 4.

Рис. 7.8.  Окно мастера создания приложения Silverlight

В обозревателе решений будет добавлен новый проект SilverlightAppPersonal (рис. 7.9).

Рис. 7.9.  Дизайнер решения с приложением Silverlight

Для проекта SilverlightAppPersonal добавим ссылку на службу данных. В мастере добавления ссылки на службу с помощью кнопки "Найти" определим адрес и имя службы и зададим пространство имен службы – Personal (рис. 7.10).

увеличить изображение Рис. 7.10.  Добавление ссылки на службу WcfDataServicePerson

В обозревателе решений будет добавлена ссылка на службу (рис. 7.11).

Рис. 7.11.  Ссылка на службу в обозревателе решений

Добавление в проект нового файла кода позволяет приложению оперировать с классами данных, которые используются для доступа к ресурсам служб данных, и взаимодействовать с ними, как с объектами. Классы данных создаются в стандартном пространстве имен клиентского приложения, которое в нашем случае имеет имя Personal.

Для обеспечения функциональности добавим интерфейсные элементы на главную страницу приложения в соответствии с рис. 7.12.

Рис. 7.12.  Главная страница приложения

XAML-код главной страницы приведен в приложении А.

Созданная страница клиентского приложения имеет все необходимые интерфейсные элементы для обеспечения требуемой функциональности. В XAML-коде описания главной страницы были изменены размеры и введена ссылка на сборку System.Windows.Controls:

xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"

Следующим шагом разработки является последовательное добавление функциональности приложения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]