Главная страница

Лабы АИС. Практикум для студентов направления подготовки 230400. 68 Информационные системы и технологии


Скачать 2.14 Mb.
НазваниеПрактикум для студентов направления подготовки 230400. 68 Информационные системы и технологии
АнкорЛабы АИС
Дата19.05.2022
Размер2.14 Mb.
Формат файлаpdf
Имя файлаЛабы АИС.pdf
ТипПрактикум
#537797
страница1 из 5
  1   2   3   4   5

Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Кузбасский государственный технический университет имени Т.Ф. Горбачева»
Составитель:
Д. Е. Турчин
АРХИТЕКТУРА СОВРЕМЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ
Лабораторный практикум
Рекомендовано учебно-методической комиссией направления подготовки 230400.68
«Информационные системы и технологии» в качестве электронного издания для использования в учебном процессе
Кемерово 2013

Рецензенты:
Ванеев О. Н. -доцент кафедры информационных и автоматизирован- ных производственных систем
Полетаев В. А. – д.т.н., профессор, председатель учебно- методической комиссии направления подготовки 230400.68 «Информаци- онные системы и технологии»
Турчин Денис Евгеньевич. Архитектура современных информа-
ционных систем. [Электронный ресурс]: лабораторный практикум для студентов направления подготовки 230400.68 «Информационные системы и технологии» очной формы обучения / Сост. Д. Е. Турчин - Электрон. дан.
– Кемерово: КузГТУ, 2012. – Систем. требования: Pentium IV; ОЗУ 256
Мб; WindowsXP; мышь. – Загл. с экрана.
В данных методических указаниях изложены содержание лаборатор- ных работ, порядок и примеры их выполнения, а также контрольные во- просы к ним.
© КузГТУ
© Турчин Д. Е.

1
СОДЕРЖАНИЕ
ПРЕДИСЛОВИЕ........................................................................2
ЛАБОРАТОРНЫЕ РАБОТЫ....................................................3 1. Основы создания запросов к коллекциям объектов с помощью LINQ...................................................................................3 1.1. Цель работы .....................................................................3 1.2. Основные теоретические сведения ................................3 1.3. Порядок выполнения работы........................................14 1.4. Контрольные вопросы...................................................18 2. Основы работы с XML-документами с помощью LINQ to
XML ...................................................................................................19 2.1. Цель работы ...................................................................19 2.2. Основные теоретические сведения ..............................19 2.3. Порядок выполнения работы........................................31 2.4. Контрольные вопросы...................................................34 3. Основы создания приложений WPF с использованием языка XAML .....................................................................................35 3.1. Цель работы ...................................................................35 3.2. Основные теоретические сведения ..............................35 3.3. Порядок выполнения работы........................................57 3.4. Контрольные вопросы...................................................58 4. Основы привязки и форматирования данных в приложениях WPF............................................................................59 4.1. Цель работы ...................................................................59 4.2. Основные теоретические сведения ..............................59 4.3. Порядок выполнения работы........................................71 4.4. Контрольные вопросы...................................................72
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА ....................................73
ПРИЛОЖЕНИЕ .......................................................................74
П.1. Пример разработки XML-документа ..........................74

2
ПРЕДИСЛОВИЕ
Пособие предназначено для студентов направления подго- товки магистра 230400.68 «Информационные системы и техноло- гии», изучающих дисциплину «Архитектура современных ин- формационных систем».
Целью лабораторных занятий является формирование уме- ний, связанных с использованием технологий и средств разработ- ки архитектуры информационных систем.
В качестве используемых средств и технологий выступают:
• технология доступа к данным LINQ;
• интегрированная среда разработки программного обеспе- чения MS Visual Studio 2010 и язык программирования Visual C#
2010;
• платформа разработки клиентских приложений MS Win- dows Presentation Foundation (WPF) и язык XAML;
Выписка из ФГОС ВПО по направлению 230400.68
Код
Компетенции, формируемые
при освоении дисциплины
Результаты освоения
Б2.Б.5 • ПК-1 умение разрабатывать стратегии проектирования, оп- ределение целей проектирова- ния, критериев эффективно- сти, ограничений применимо- сти;
ПК-2 умение разрабатывать новые методы и средства про- ектирования информационных систем;
ПК-9 умение проводить раз- работку и исследование мето- дик анализа, синтеза, оптими- зации и прогнозирования ка- чества процессов функциони- рования информационных систем и технологий;
ПК-10 умение осуществлять моделирование процессов и объектов на базе стандартных пакетов автоматизированного проектирования и исследова- ний.
Знать:
• понятие архитектуры информа- ционной системы и ее контекст
(ПК-2);
• основные домены предметные области архитектуры информаци- онной системы (ПК-2);
• методики описания архитектуры
(ПК-9);
• общую схему процесса разра- ботки архитектуры информаци- онной системы и методы управ- ления этим процессом (ПК-1).
Уметь:
• моделировать бизнес-процессы предприятия с использованием различных языков (ПК-10);
• разрабатывать архитектурное описание информационной сис- темы (ПК-6);
• определять цели и задачи проек- тирования архитектуры информа- ционной системы (ПК-1).

3
ЛАБОРАТОРНЫЕ РАБОТЫ
1. ОСНОВЫ СОЗДАНИЯ ЗАПРОСОВ К КОЛЛЕКЦИЯМ
ОБЪЕКТОВ С ПОМОЩЬЮ LINQ
1.1. Цель работы
Цель работы – приобрести умение выполнять запросы к ис- точникам данных в форме коллекций объектов с помощью тех- нологии LINQ to Objects.
Работа рассчитана на 4 часа.
1.2. Основные теоретические сведения
1.2.1. Общие сведения о технологии LINQ. Операции запросов
LINQ. Расширяющие методы
Общие сведения о технологии LINQ. Запросы LINQ.
Одной из наиболее важных технологий для доступа к дан- ным на платформе .NET является LINQ (Language Integrated
Query) – язык интегрированных запросов.
Под LINQ понимают набор средств, появившийся в .NET
Framework 3.5, который предоставляет стандартные технологии для работы с различными типами источников данных. Для запро- сов и преобразований данных в LINQ используются одинаковые базовые шаблоны кодирования, напоминающие SQL.
В состав Visual Studio, начиная с версии 2008, входят сред- ства для использования LINQ с коллекциями объектов, поддер- живающих интерфейс IEnumerable, базами данных SQL Server, наборами данных ADO.NET и XML-файлами.
По типу источника данных выделяют следующие разновид- ности LINQ:
LINQ to Objects – позволяет применять запросы к масси- вам и коллекциям объектов;
LINQ to DataSet – позволяет применять запросы LINQ к объектам DataSet из ADO.NET;
LINQ to Entities – позволяет применять запросы LINQ внутри API-интерфейса ADO.NET Entity Framework (EF);

4
LINQ to XML – позволяет применять запросы LINQ к до- кументам XML и манипулировать XML-данными;
Parallel LINQ (PLINQ) – позволяет выполнять параллель- ную обработку данных, возвращенных запросом LINQ.
Для применения средств LINQ to Objects в исходный код программы следует импортировать пространство имен Sys-
tem.Linq. Для этого в файле C# должна присутствовать следую- щая директива: using
System.Linq;
В основу LINQ положено понятие запроса, в котором опре- деляется сведения, получаемые из источника данных. При необ- ходимости, запрос также указывает способ сортировки и группи- ровки этих сведений. В запросе LINQ работа всегда осуществля- ется с объектами.
Для сохранения результатов запросов LINQ удобно исполь- зовать неявно типизируемые локальные переменные, задавае- мые ключевым словом var. Тип данных таких переменных опре- деляется во время компиляции на основе первоначального значе- ния.
Неявная типизация применима только для локальных пере- менных в контексте какого-то метода или свойства. Не допуска- ется применять ключевое слово var для определения полей клас- сов, возвращаемых значений и параметров методов.
Кроме того, локальным переменным, объявленным с помо- щью ключевого слова var, обязательно должно быть присвоено начальное значение в самом объявлении.
Все операции запроса LINQ состоят из трех различных дей- ствий:
1. Получение доступа к источнику данных. При этом в ис- точнике должен быть реализован интерфейс IEnumerable.
2. Создание запроса, которое заключается в определении то- го, что именно следует извлечь из источника данных.
3. Выполнение запроса, в ходе которого выводятся резуль- таты. Это может быть сделано в цикле foreach.
В общем виде запрос LINQ записывается следующим обра- зом:

5
var переменная_запроса = выражение_запроса;
Запрос хранится в переменной запроса и инициализируется
выражением запроса. Сама переменная запроса только хранит команды запроса. Фактическое выполнение запроса откладывает- ся до выполнения итерации переменной запроса в операторе
foreach. Выражение запроса состоит из набора предложений, включающих операции запросов LINQ и операнды.
Операции запросов LINQ.
В языке C# определены различные операции запросов LINQ.
Наиболее часто используемыми операциями являются:
fromin – используется для определения основы любого выражения, позволяющей извлечь подмножество данных из нуж- ного источника;
select – используется для выбора последовательности из источника данных;
where – используется для определения ограничений на из- влекаемые из источника данные;
orderbyпозволяет упорядочить результирующий набор;
group – позволяет группировать данные по указанному ключу.
В простейшем виде каждый запрос LINQ строится из опера- ций from, in и select, которые вместе с операндами образуют со- ответствующие предложения. Синтаксис простейшего запроса имеет вид: var перем_запроса = from перем_диапаз in источник_данных select результат_запроса;
Переменная диапазона, следующая за операцией from, принимает данные из источника данных, записанного после операции in. Тип переменной диапазона выводится из источника данных. Имя переменной диапазона задается в самом выражении запроса.
Запрос может содержать несколько предложений from, что требуется при получении данных из нескольких источников.
Операция select определяет, что именно должно быть полу- чено по запросу (результат запроса). Когда предложение с опе-

6
рацией select создает что-либо отличное от копии переменной диапазона, то операция select называется проекцией. Использо- вание проекций для преобразования данных является мощной возможностью выражений запросов LINQ.
Чтобы получить определенное подмножество из источника можно использовать операцию where. При этом запрос будет иметь следующий синтаксис: var перем_запроса = from перем_диапаз in источник_данных where логич_выражение select результат_запроса;
Логическое выражение, задаваемое после операции where, задает определенное условие и возвращает булевское значение.
Запрос возвращает только те элементы, для которых логическое выражение является истинным.
Для построения выражения фильтра в предложении where можно использовать логические операции C# AND (&&) и OR
(||).
Часто требуется отсортировать возвращенные зпросом дан- ные по одному или нескольким критериям. Для этого использует- ся операция orderby. Запрос LINQ при задании сортировки будет иметь следующий вид: var перем_запроса = from перем_диапаз in источник_данных orderby выраж_сортировки [
descending
] select результат_запроса;
Выражение сортировки содержит элемент, по которому проводится сортировка. По умолчанию принята сортировка по возрастанию, поэтому упорядочивание строк производится в ал- фавитном порядке, числовых значений – от меньшего к больше- му, и т.д.
Операция descending используется для сортировки в обрат- ном порядке (по убыванию). По умолчанию используется опера- ция ancesting, которую можно не записывать при сортировке по возрастанию.
Операция group служит для группирования полученных данных по ключам. Данная операция, как и операция select, мо-

7
жет завершать выражение запроса. Запрос с операцией group в простейшем случае может быть записан следующим образом: var перем_запроса = from перем_диапаз in источник_данных group результат_запроса by ключ;
Когда запрос завершается предложением group, его резуль- таты представляют группу списков. При итерации таких резуль- татов запроса, необходимо использовать вложенный цикл
foreach. Внешний цикл выполняет итерацию каждой группы, а внутренний цикл – итерацию элементов каждой группы.
Для результата выполнения операции group определено доступное только для чтения свойство Key, которое возвращает ключ.
Операция join служит для объединения двух последова- тельностей данных в одну. При использовании операции join ка- ждый источник должен содержать данные, которые можно срав- нивать. Сравниваемые элементы данных указываются после клю- чевого слова on. При этом операция join отбирает только те эле- менты данных, которые имеют общее значение. Запрос LINQ при использовании операции join имеет следующий синтаксис: var перем_запроса = from перем_диап_A in источник_данных_A join перем_диап_B in источник_данных_B on перем_диап_A.свойство equals перем_диап_B.свойство select результат_запроса;
1.2.2. Анонимные типы. Расширяющие методы
Анонимные типы. Расширяющие методы.
В языке C# одним из средств, непосредственно связанных с
LINQ, являются анонимные типы. Как следует из названия, анонимный тип представляет собой класс, не имеющий имени.
Его основное назначение состоит в создании объекта, возвращае- мого оператором select.
Благодаря анонимным типам в ряде случаев отпадает необ- ходимость объявлять класс, который предназначен только для хранения результата запроса.

8
Анонимный тип объявляется с помощью следующей общей формы: new
{ имя_А = значение_А, имя_В = значение_В, ... }
Для того чтобы поменять порядок элементов в результи- рующем наборе на обратный используется расширяющий метод
Reverse() класса Enumerable.
Для вычисления одного значения из коллекции значений используются статистические операции. К основным статистиче- ским операциям LINQ относятся:
Average – вычисляет среднее арифметическое значение в коллекции;
Count – подсчитывает число элементов в коллекции (при необходимости только те элементы, которые удовлетворяют за- данному условию);
Max – определяет максимальное значение в коллекции;
Min – определяет минимальное значение в коллекции;
Sum – вычисляет сумму значений в коллекции.
Пример 1.1. Выполнение запросов LINQ к массиву объ-
ектов с помощью консольного приложения на языке C#.
Требуется разработать набор запросов LINQ к массиву объ- ектов, каждый из которых содержат данные о продуктовом това- ре (наименование, производитель, количество единиц, вес одной единицы, цена, код стеллажа), хранимом на складе.
Исходный код на языке C# для класса Product, описываю- щего продуктовый товар, представлен на рис. 1.1, а код класса
Store (стеллаж) – на рис. 1.2.

9
Рис. 1.1. Исходный код класса Product
Рис. 1.2. Исходный код класса Store
Запросы:
1. Данные о всех товарах.
2. Наименования всех товаров в алфавитном порядке.
3. Товары с количеством более 50 шт.
4. Товары фирмы «Алтайпродукт» с ценой менее 80 руб.
5. Число наименований товаров весом от 250 до 500 г.
6. Наименования товаров и их количество в порядке убыва- ния количества.
7. Средняя, наибольшая и наименьшая цены товаров фирмы
«Алтайпродукт».
8. Суммарный вес всех товаров на складе.
9. Общая стоимость товаров каждого наименования.
10. Наименования товаров, сгруппированные по производи- телям (используется операция group).
11. Наименование и количество товара с указанием данных о стеллаже, на котором он хранится (используется операция join).

10
Рис. 1.3. Исходный код метода Main() консольного прило- жения

11
Рис. 1.4. Исходный код методов, выполняющих запросы
LINQ (часть 1)

12
Рис. 1.5. Исходный код методов, выполняющих запросы
LINQ (часть 2)

13
Рис. 1.6. Исходный код методов, выполняющих запросы
LINQ (часть 3)

14
Рис. 1.7. Результат работы консольного приложения
1.3. Порядок выполнения работы
Данная лабораторная работа предполагает выполнение сле- дующих этапов:
1. Изучить методические указания к лабораторной работе.
2. Создать консольное приложение на языке C# с заданным классом (табл. 1.1), а также массив объектов этого класса. Число элементов массива должно быть не менее пяти.
3. Выполнить заданные запросы LINQ к массиву объектов
(табл. 1.1). Для запроса №6 следует использовать операцию
group, а для запроса №7 – операцию join.
4. .Оформить и защитить отчет по лабораторной работе.
Таблица 1.1
Варианты заданий для создания массивов объектов и запро- сов к ним
  1   2   3   4   5


написать администратору сайта