Опубликован: 08.07.2011 | Доступ: свободный | Студентов: 1788 / 93 | Оценка: 4.15 / 4.08 | Длительность: 15:28:00
Лекция 6:

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

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

Разрабатываемое клиентское приложение должно обеспечивать чтение информации по сотруднику из базы данных, просмотр, редактирование, обновление, добавление и удаление данных. В качестве клиентского приложения будем использовать 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).

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

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

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

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

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

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

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

увеличить изображение
Рис. 7.9. Дизайнер решения с приложением Silverlight

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

Добавление ссылки на службу WcfDataServicePerson

увеличить изображение
Рис. 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"

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

Александр Петров
Александр Петров

При загрузке данных из БД возникает исключение InvalidOperationException с сообщением: Элемент коллекции должен быть пустым перед использованием ItemsSource. Знаю, что для заполнения DataGrid можно использовать коллекции Items или ItemsSource, но одновременно их использовать нельзя: если задано значение для свойства ItemsSource и в коде C# добавляется элемент в Items, возникает исключение. 
Вопрос, как отследить и отключить добавление элемента в Items?

Максим Спиридонов
Максим Спиридонов

В пятой лекции на второй странице в компиляторе выскакивает ошибка в строчке :

ObjectQuery<Employee> employees = DataEntitiesEmployee.Employees;

Ошибка CS0029

Не удается неявно преобразовать тип "System.Data.Entity.DbSet<WpfApplProject.Employee>" в "System.Data.Entity.Core.Objects.ObjectQuery<WpfApplProject.Employee>".

в using прописал все как положено, здесь похоже именно с преобразованием типов проблемы