Лабы АИС. Практикум для студентов направления подготовки 230400. 68 Информационные системы и технологии
Скачать 2.14 Mb.
|
1 Ресторан. 1. Дата, время и стол для заказов, которые не были выполнены. 2. Число заказов, сделанных «Дата» со стола «Стол». 3. Данные по ингредиентам, сгруп. по блюдам с ценой более «...». 4. Заказанные блюда с указанием кода заказа (join). 5. Ингредиенты блюда «Название», с объемом более «…» (XPath). 2 Успеваемость студентов. 1. Названия и число часов для дисциплин с формой контроля «…». 2. Среднее число часов по всем дисциплинам. 3. Данные по студентам пола «Пол», сгруппированные по группам. 4. Оценки студентов с указанием группы по дисц. «…» (join). 5. Группы, в которых студентов муж. пола <, чем женского (XPath). 3 Книжный магазин. 1. Названия и авторы книг ценой менее «Цена». 2. Суммарная цена книг, изданных в «Издательство». 3. Названия книг автора «Автор», сгруппиров. по годам издания. 4. ФИО сотрудника с указанием названия отдела (join). 5. Книги с числом страниц менее «…» и ценой более «…» (XPath). 4 Кинотеатр. 1. Дата и время начала сеансов с ценой билета более «Цена». 2. Число показанных фильмов, снятых режиссером «Режиссер». 3. Данные о занятых местах, сгруппированные по сеансам. 4. Список сеансов с указанием названия фильма (join). 5. Сеансы, на которые число занятых мест было более «…» (XPath). 5 Организационная структура. 1. Фамилия, имя и отчество сотрудников с датой рождения «Дата». 2. Число сотрудников пола «Пол», занимающих должность «…». 3. Данные по сотрудникам с окладом > «…», сгруппир. по отделам. 4. Список должностей с указанием названия отдела (join). 5. Все сотрудники муж. пола, имеющие оклад менее «…» (XPath). 6 Обувной магазин. 1. Наименование, размер и цена обуви, выпущенной фирмой «…». 2. Суммарная стоимость обуви с размером от «…» до «…». 3. Данные по аксессуарам ценой < «Цена», сгруппиров. по отделам. 33 № вар. Данные для разработки запросов LINQ к XML-документу 4. Список обуви с указанием названия отдела (join). 5. Отделы, в кот. скидка на обувь составляет менее «…» (XPath). 7 Перевозка грузов. 1. Даты рейсов и адреса доставки грузов с весом более «Вес». 2. Число рейсов, в которых вес груза составил от «…» до «…». 3. ФИО водителей, сгруппир. по автомобилям с «Тип кузова». 4. Список водителей с указанием рейса (join). 5. Рейсы, в которых участвовали два и более водителя (XPath). 8 Поликлиника. 1. Даты обращений и болезни с результатом лечения «Результат». 2. Число обращений с продолжит. болезни от «…» до «…». 3. ФИО пациентов пола «Пол», сгруппированные по врачам. 4. Список обращений с указанием ФИО врача (join). 5. Пациенты, которые сделали более «…» обращений (XPath). 9 Банк. 1. Вид и сумма вкладов с процентной ставкой более «Процент». 2. Число вкладов, по которым процент составляет от «…» до «…». 3. Данные по вкладам размером более «…», сгруппир. по клиентам. 4. Список вкладов с указанием данных по вкладчику (join). 5. Клиенты, сделавшие более одного вклада (XPath). 10 Аэропорт. 1. Коды и модели самолетов авиакомпании «…». 2. Число рейсов, в которых длительн. составляет от «…» до «…». 3. Данные по пассажирам, сгруппированные по самолетам. 4. Список пассажиров с указанием рейса (join). 5. Самолеты, в которых число мест класса «…» больше «…» (XPath). 11 Гостиница. 1. Коды и названия гостиничных номеров вместимостью более «...». 2. Число клиентов, с датой заселения «…» и датой выезда «…». 3. ФИО клиентов, сгруппированные по номерам. 4. Список клиентов с указанием обслужив. сотрудников (join). 5. Номера, в которые заселено более одного клиента (XPath). 12 Продажа легковых автомобилей. 1. Модели и цены автомобилей фирмы «Фирма». 2. Средняя цена автомобиля с кузовом «Тип». 3. Данные по автомобилям мощностью более «», сгрупп по фирмам. 4. Список автомобилей с указанием ответств. сотрудника (join). 5. Все автомобили с мощностью двигателя более «…» (XPath). 34 2.4. Контрольные вопросы 1. Для чего предназначена технология LINQ to XML? 2. Каковы основные классы пространства имен System.Xml. Linq? 3. Какие методы класса XDocument используются для за- грузки XML-документа в память и для его сохранения? 4. Каким образом с помощью классов LINQ to XML стро- ится дерево XML? 5. Что понимают под осевыми методами LINQ to XML? 6. Как с помощью осевых методов получить доступ к набо- рам дочерних элементов и элементов-потомков? 7. Как в LINQ to XML можно использовать выражения XPath для получения данных из XML-документа? 8. Какие методы класса XElement позволяют редактировать XML-данные, добавлять и удалять элементы и атрибуты? 35 3. ОСНОВЫ СОЗДАНИЯ ПРИЛОЖЕНИЙ WPF С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА XAML 3.1. Цель работы Цель работы – приобрести умение разрабатывать приложе- ния на платформе MS Windows Presentation Foundation (WPF) с использованием языка разметки XAML. Работа рассчитана на 4 часа. 3.2. Основные теоретические сведения 3.2.1. Назначение и возможности WPF. Создание приложений WPF в Visual Studio Назначение и возможности WPF. Windows Presentation Foundation (WPF) – это набор средств для построения пользовательских интерфейсов, появившийся в .NET Framework, начиная с версии 3.0. Основная цель WPF со- стоит в интеграции и унификации множества разрозненных тех- нологий в единую программную модель. Платформа WPF спроектирована для .NET под влиянием та- ких современных технологий отображения, как HTML5 и Flash. В настоящее время WPF является альтернативой таким традицион- ными графическим интерфейсам на платформе .NET, как Win- dows Forms и GDI+. Возможности разработки приложений WPF включают мо- дель приложения, элементы управления, язык разметки XAML, стили и шаблоны, двухмерную и трехмерную графику, привязки данных, анимацию, использование звука и видео. С помощью WPF можно создавать широкий спектр клиент- ских приложений. На рис. 3.1. показан пример одного из таких приложений – Contoso Healthcare Sample Application, которое предназначено для просмотра медицинских карт пациентов в уч- реждениях здравоохранения. 36 Рис. 3.1. Пример окна приложения WPF (Contoso Healthcare Sample Application) Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI+. Производительность WPF выше, чем у GDI+ за счёт использова- ния аппаратного ускорения графики через DirectX. WPF позволяет строить приложения XBAP, которые рабо- тают внутри Web-браузера. Кроме того, WPF является основой для технологии Silverlight, предназначной для разработки много- функциональных Web-приложений. Основными классами для любого приложения WPF являют- ся классы Application и Window. Класс System.Windows.Application представляет экземпляр работающего приложения WPF. В этом классе предусмотрен ме- тод Run() для запуска приложения, а также событие Exit для вы- хода из приложения. Внутри класса Application определяется точка входа программы (метод Main()). Одним из свойств класса Application является свойство Windows, предоставляющего доступ к коллекции WindowCollec- tion, в которой представлены все загруженные в память окна для данного приложения WPF. 37 Класс System.Windows.Window представляет одиночное окно, включая все диалоговые окна. Построение приложений WPF с помощью Visual Studio 2010. Интегрированная среда MS Visual Studio предлагает боль- шой набор средств для создания приложений WPF. Возможность разработки приложений WPF в Visual Studio поддерживается, на- чиная с версии 2008. Альтернативой Visual Studio для построения WPF- приложений является MS Expression Blend. В диалоговом окне New Project (Создать проект) среды Vis- ual Studio определен набор шаблонов для проектов WPF, которые размещены в узле Windows (рис. 3.2). Рис. 3.2. Окно создания нового проекта Visual Studio В Visual Studio 2010 доступны следующие варианты шабло- нов для WPF: • WPF Application – настольное приложение WPF, которое запускается на локальном компьютере в виде одного или не- скольких окон; данный вид приложений может использовать Web-подобную модель работы, при которой в каждое из окон мо- 38 гут загружаться страницы с элементами графического интерфей- са; • WPF Browser Application – приложение обозревателя WPF (браузерное приложение XAML – XBAP), которое открыва- ется через Web-браузер при переходе пользователя по заданному URL-адресу; в настоящее время поддержка приложений XBAP осуществляется только браузерами Internet и Explorer Firefox; • WPF User Control Library – библиотека пользовательских элементов управления WPF; • WPF Custom Control Library – библиотека настраивае- мых элементов управления WPF. На рис. 3.3 показан общий вид окна Visual Studio 2010 для разработки проекта приложения WPF. Основную часть окна про- екта занимают визуальный конструктор и текстовый редактор XAML. Рис. 3.3. Окно Visual Studio 2010 с открытым проектом при- ложения WPF Кроме стандартных панели элементов (ToolBox), обозрева- теля решений (Solution Explorer) и окна свойств (Properties), в окне проекта приложения WPF может быть открыто окно струк- тура документа (Document Outline) (рис. 3.3). Данное окно слу- жит для быстрого выбора элементов с целью редактирования в визуальном конструкторе Visual Studio. 39 Рис. 3.3. Окно структура документа (Document Outline) 3.2.2. Особенности языка разметки XAML. Основные элементы XAML. Свойства и события в XAML Особенности языка разметки XAML. Одним из наиболее значительных преимуществ WPF перед Windows Forms является строгое отделение внешнего вида при- ложения с графическим интерфейсом от программной логики, которая им управляет. Данная задача решается с помощью языка XAML (произносится как «Замл» или «Замль»). Язык XAML (Extensible Application Markup Language – рас- ширяемый язык разметки приложений) – язык разметки, являю- щийся диалектом языка XML, который используемый для созда- ния экземпляров объектов на платформе .NET. На этапе разработки приложения WPF файлы XAML явля- ются текстовыми XML-документами, которые имеют расширение .xaml. Данные файлы можно сохранять в любой кодировке, под- держиваемой XML, но обычно используется кодировка UTF-8. В процессе компиляции приложения WPF файлы XAML преобразуются в файлы языка двоичной разметки приложений BAML (Binary Application Markup Language), которые затем встраиваются в виде ресурсов в сборку проекта. Основное назначение XAML – конструирование пользова- тельских интерфейсов WPF. То есть документы XAML опреде- ляют расположение и внешний вид элементов управления в при- ложении WPF. Элементы XAML отображаются на типы классов заданного пространства имен .NET. Атрибуты в открывающем теге элемен- та отображаются на свойства и события конкретного типа. 40 В следующем примере с помощью XAML реализуется внешний вид окна, содержащего одну кнопку: < Window x : Class ="WpfAppPrimer.Window1" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/ presentation" xmlns : x ="http://schemas.microsoft.com/winfx/2006/xaml" Title ="Окно с кнопкой" Height ="150" Width ="250"> < Grid > < Button Name ="button1" Width ="100" Height ="50" Click ="button1_Click"> Нажми меня! Button > Grid > Window > Представление указанного кода XAML показано на рис. 3.4. Рис. 3.4. Окно с кнопкой работающего приложения WPF В большинстве случаев при разработке WPF-приложений используют комбинацию приемов. Часть пользовательского ин- терфейса разрабатывается с помощью инструмента проектирова- ния (Visual Studio или Expression Blend), а затем производится тонкая настройка за счет ручного редактирования кода разметки. Существует ряд задач, решение которых возможно только с помощью вручную написанного кода XAML. К таким задачам относятся: • привязка обработчиков событий к элементам XAML; • написание выражений привязки данных; • определение ресурсов (например, стилей и шаблонов эле- ментов управления). Основные элементы и пространства имен XAML. Каждый элемент в XAML-документе соответствует опреде- ленному экземпляру класса WPF. При этом имя элемента в точ- 41 ности должно соответствовать имени класса. Например, элемент Button сообщает WPF, что должен быть создан объект Button. В коде XAML допускается вложение одного элемента в дру- гой. При этом дочерний элемент обычно размещается в границах родительского элемента. Например, если элемент Button вложен в элемент Grid, то это может означать, что кнопка Button распо- лагается на панели Grid. Свойства каждого элемента XAML можно устанавливать через атрибуты. Кроме атрибутов в XAML для установления свойств элементов используются дескрипторы со специальным синтаксисом. Документ XAML, как и любой XML-документ, должен иметь только один корневой элемент. Обычно при работе с WPF используются такие корневые элементы, как Window (для опре- деления окна), Page (для определения страницы) или Application (для определения приложения). Дочерними элементами для корневого элемента являются определения ресурсов и контейнеры. Можно выделить следующие основные группы элементов XAML, используемые в приложениях WPF: • панели компоновки, которые позволяют требуемым обра- зом расположить содержащиеся внутри них элементы (Grid, StackPanel, DockPanel, Canvas и др.); • элементы управления (Button, Label, TextBox, ListBox, DataGrid и др.); • графические примитивы (Ellipse, Line, Rectangle, Poligon и др.); • службы документов, которые позволяют разбивать со- держимое на страницы, масштабировать содержимое, адаптиро- вать документы под особенности дисплея пользователя и т.д. Анализатору XAML требуется знать не только имя класса, но и пространство имен XML, к которому относится этот класс. Пространствами имен, которые присутствуют в каждом докумен- те XAML, являются: • Пространство имен WPF: xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/ presentation " 42 Это пространство является пространством имен по умолча- нию и охватывает все классы WPF, включая элементы управле- ния. • Пространство имен XAML: xmlns:x = " http://schemas.microsoft.com/winfx/2006/xaml " Данное пространство включает различные служебные свой- ства XAML. Этому пространству имен соответствует префикс х. Атрибут x:Class может присутствовать только в корневом элементе документа XAML и только в коде, компилируемом в составе проекта. Он не может использоваться в автономном XAML-документе. Для программного управления элементами управления, описанными в XAML-документе, необходимо для элемента управления задать атрибут Name. Некоторые ключевые слова XAML: • x:Key – позволяет устанавливать значение ключа (уни- кального имени) для элемента XAML; • x:Type – XAML-эквивалент операции typeof языка C#, ко- торая выдает System.Type на основе указанного имени; • x:Name – позволяет указывать имя заданного элемента в документе XAML; • x:Null – представляет ссылку null. Свойства и события в XAML. Язык XAML имеет ряд особенностей при задании свойств (атрибутов) элементов. Простые свойства элементов задаются в XAML-документе в соответствии с синтаксисом «свойство-значение»: ИмяСвойства ="значение" При необходимости задать свойство, которое является пол- ноценным объектом, используются сложные свойства в соот- ветствии с синтаксисом «свойство-элемент», который имеет сле- дующий вид: < ИмяЭлемента > < ИмяЭлемента.ИмяСвойства > 43 ИмяЭлемента.ИмяСвойства > ИмяЭлемента > В дополнение к синтаксису «свойство-элемент» в XAML поддерживается специальный синтаксис присоединяемых свойств. Присоединяемые свойства позволяют дочернему эле- менту устанавливать значение свойства, определенного в роди- тельском элементе: < РодитЭлемент > < ДочерЭлемент РодитЭлемент.СвойствоРодитЭлемента ="значение" /> РодитЭлемент > Наиболее часто присоединяемые свойства применяются для позиционирования элементов пользовательского интерфейса внутри одного из диспетчеров компоновки (например, Grid). Для задания свойства может использоваться расширение разметки, которое позволяет анализатору XAML получать зна- чение свойства из выделенного внешнего класса. Расширение разметки заключается в фигурные скобки и ис- пользует следующий синтаксис: < Элемент Свойство ="{КлассРасширРазметки Аргумент }" /> Расширения разметки реализуются классами, дочерними от класса System.Windows.Markup.MarkupExtention. Атрибуты могут быть использованы для прикрепления об- работчиков событий. Синтаксис XAML при этом выглядит сле- дующим образом: ИмяСобытия ="ИмяМетода_Обработчика" Если в редакторе XAML среды разработки Visual Studio ввести имя события, а за ним – знак равенства, то будут отобра- жены все совместимые обработчики (если они существуют), а также опция |