Отже, LINQ - запит інтегрований в мову програмування, дозволяє писати безпечні структуровані запити до локальних колекціях об’єктів та віддалених джерел даних. LINQ функціональне програмування, схоже під синтаксис мови SQL, але не всі SQL-операції і функції мають свій еквівалент в LINQ.to SQL - інструмент ORM початкового рівня, що дозволяє виконувати потужні SQL-запити. LINQ to SQL має засоби відстеження змін і оновлень бази даних, побудованих на основі оптимістичній моделі виявлення і вирішення конфліктів паралельного доступу, а також транзакційної цілісності.
В ході аналізу предметної області було вирішено наступні задачі:
) Проведено аналіз основних характеристик технології LINQ to SQL, яка призначена для роботи з базами даних SQL Server;
) Досліджено методики застосування LINQ to SQL при розробці програмного забезпечення засобами Visual Studio;
) Виконано аналіз існуючих засобів опанування технології LINQ to SQL.
) Доведено доцільність розробки
засобу візуалізації технології LINQ to SQL для його використання в навчальному
процесі з метою надання студентам знань та навичок використання технології LINQ
to SQL в розробці ПЗ
РОЗДІЛ 3. РОЗРОБКА ЗАСОБУ ВІЗУАЛІЗАЦІЇ LINQ to
SQL
.1 Вимоги до засобу візуалізації LINQ to SQL
(Unified Modeling Language - уніфікована мова моделювання) є мовою графічного опису для об'єктного моделювання при розробці програмного забезпечення. Мова UML був розроблений як уніфікація безлічі нотацій, які використовувалися для графічного опису об'єктно-орієнтованих систем. UML описує системи за допомогою набору діаграм. Кожна така діаграма є поглядом «зі свого боку» на систему.
Діаграма прецедентів (Use case diagram) - представляє різні сутності, які взаємодіють з системою (користувачів, зовнішні пристрої та інші програмні системи) і вказують функції, які необхідно реалізувати в програмній системі.
Актор (actor) ініціює прецедент (use case). Прецедент описує послідовність взаємодій між актором і системою. Актор зображується на діаграмі у вигляді фігури чоловічка, система - у вигляді прямокутника, прецедент - у вигляді еліпса всередині цього прямокутника.
Діаграма прецедентів служить для опису групи дій, які ініціюються конкретною особою. Таким чином її основне призначення - спрощення взаємодії з користувачами. Діаграма прецедентів описує, що система повинна робити і як це буде виглядати для користувача.
Актори являють собою не фізичних людей, а їх ролі. Це означає, що коли людина взаємодіє з системою різними способами (припускаючи різні ролі), він відображається декількома акторами. У поняття актор входять люди, комп'ютерні системи і процеси.
До прецедентів в UML застосований такий вид відносин як асоціація (Association), що може вказувати на те, що актор ініціює відповідний варіант використання.
Між прецедентами застосовані види відносин як: розширення, включення, узагальнення.
Включення (Include) - визначає взаємозв'язок базового варіанту використання з іншим варіантом використання, функціональне поведінка якого завжди задіюється базовим варіантом використання.
Узагальнення (Generalization) - моделює відповідну спільність ролей.
При проектуванні програмної системи проводиться пошук таких класів для реалізації прецеденту, які вдало поєднували б у собі необхідні ролі і не призводять до зайвого ускладнення системи. Реалізацію прецеденту можна змоделювати у вигляді однієї або декількох кооперацій (реалізацій прецеденту). Один і той же прецедент може бути описаний з різним ступенем деталізації[7].
Діаграма прецедентів засобу візуалізації технології LINQ to SQL зображена в додатку А.
Діаграма послідовності (Sequence diagram) - Діаграма послідовності є однією з діаграм взаємодій і відображає послідовність виконання програми в термінах взаємодії об'єктів.
Діаграми послідовностей читаються зверху вниз. Вгорі діаграми вказується клас або об'єкт. При цьому ім'я класу відділяється від імені об'єкта двокрапкою. Якщо вказується ім'я класу, воно вказується з префіксом ": '. Якщо вказується ім'я об'єкта та ім'я класу, то ім'я об'єкта вказується першим, а з ім'ям класу його розділяє символ ":". Для того, щоб відрізняти імена класів і об'єктів, імена об'єктів підкреслюються.
Вертикальні пунктирні лінії представляють життєвий шлях об'єктів (час життя), а вертикальні прямокутники - час виконання розглянутого методу.
Горизонтальні стрілки показують передачу управління (посилка повідомлення, виклик методу).
Діаграма послідовності засобу візуалізації технології LINQ to SQL зображена в додатку Б.
Загальна архітектура засобу візуалізації LINQ to SQL
Архітектура програмного забезпечення - це структура програми або обчислювальної системи, яка включає програмні компоненти, видимі зовні властивості цих компонентів, а також відносини між ними. Цей термін стосується також до документування архітектури програмного забезпечення. Документування архітектури ПЗ спрощує процес комунікації між зацікавленими особами, дозволяє зафіксувати прийняті на ранніх етапах проектування рішення про високорівневої дизайні системи і дозволяє використовувати компоненти цього дизайну і шаблони повторно в інших проектах[4].
Архітектура засобу візуалізації LINQ to SQL
відображена на рис. 3.1. Вона включає в себе три компоненти: програмну частину,
ORM та базу даних.
Рис 3.1 Загальна архітектура засобу візуалізації LINQ to SQL
Програмна частина включає в себе елементи управління засобом візуалізації, обробку та відображення візуальних процесів програми. Також тут знаходяться функціонал щодо роботи з БД.пов'язує базу даних з програмною частиною перетворюючи запити LINQ з об'єктної моделі в SQL і відправляє їх до бази даних для виконання.
БД представлена базою DataBase, що знаходиться на локальному сервері Microsoft SQL Server Express (64-bit) версії 11.0.2218.0.
Розробка складових засобів візуалізації
Для реалізації засобу моніторингу використовувалась мова C#, засоби WPF та Linq.Presentation Foundation(WPF) - система для побудови клієнтських додатків Windows з візуально привабливими можливостями взаємодії з користувачем, графічна (презентаційна) підсистема у складі. NET Framework (починаючи з версії 3.0), що використовує мову XAML.
В основі WPF лежить векторна система візуалізації, яка не залежить від дозволу пристрої виведення і створена з урахуванням можливостей сучасного графічного обладнання. WPF надає ресурси для створення візуального інтерфейсу.
Графічної технологією, що лежить в основі WPF, є DirectX, на відміну від Windows Forms, де використовується GDI/GDI+.Integrated Query (LINQ) - проект Microsoft по додаванню синтаксису мови запитів, що нагадує SQL, в мови програмування платформи. NET Framework. Являє собою не що інше, як функціональне програмування, замасковане під синтаксис SQL. LINQ це запит інтегрований в мову програмування який дозволяє писати безпечні структуровані запити до локальних колекціях об’єктів та віддалених джерел даних.
При створенні робочої області програми було вирішено створити три вікна в кожному з яких буде демонструватися окремий пункт ознайомлення з технологією LINQ to SQL.
В першому вікні демонструється особливість мови SQL. Перше вікно зображено в додатку В.
Воно містить діаграму зв’язків між таблицями бази даних в якій кожну окрему таблицю можна розгортати чи згортати під час чого буде демонструватися SQL-код в правій частині вікна. Для демонстрації SQL-запитів користувач може вибрати декілька готових варіантів запиту результат яких буде відображатися в елементі управління DataGrid. Для детальнішого вивчення SQL-запитів користувач може скористатися кнопкою “help” після натиснення якої буде відкрите вікно, яке зображено на рис 3.3, з розгорнутою інформацією про мову SQL.
В другому вікні демонструється перетворення
запитів LINQ з об'єктної моделі в SQL. Друге вікно зображено в додатку Г. Воно
містить діаграму зв’язків між таблицями бази даних в якій кожну окрему таблицю
можна розгортати чи згортати під час чого буде демонструватися як
перетворюється запит LINQ з з об'єктної моделі в SQL. Для більше детальнішого
вивчення цього процесу користувач може скористатися кнопкою “help” після
натиснення якої буде відкрите вікно, з розгорнутою інформацією.
Рис. 3.3 Вікно SQL “help”
В третьому вікні демонструються можливості технології LINQ to SQL. Третє вікно зображено в додатку Д. Воно надає можливість користувачу обирати з декількох готових варіантів LINQ-запити, результат яких буде демонструватися в елементів управління DataGrid.
На основі вибраного варіанту LINQ-запиту, користувач може вносити зміни в інформацію, чи видаляти ії по заданим критеріям. Для детальнішого вивчення технології LINQ to SQL користувач може скористатися кнопкою “help” після натиснення якої буде відкрите вікно з розгорнутою інформацією про технологію LINQ to SQL.
В програмній частині реалізовано 3 класи: phase1_SQL, phase2_LINQ_to_SQL, phase3_Application. Також було автоматично створено класи для роботи с базою даних: Employees, Product, Customers, Categories, Suppliers. Діаграма класів представлена в додатку Е.
Клас phase1_SQL відповідає за роботу з вікном в якому демонструються SQL-запити та за відображення схеми таблиць бази даних. Опис компонентів представлений в таблиці 3.1.
Клас phase2_LINQ_to_SQL відповідає за демонстрацію перетворення запитів LINQ з об'єктної моделі в SQL. Опис компонентів представлений в таблиці 3.2.
Клас phase3_Application відповідає за
демонстрацію технології LINQ to SQL. Опис компонентів представлений в таблиці
3.3.
Таблиця 3.2
Опис компонентів класу phase1_SQL
|
Компонент |
Опис |
|
Help |
Метод, що відповідає за переход на сторінку “help” |
|
LinqToSqlNav |
Метод, завдяки якому відбувається перехід з вікна phases1_SQL до вікна phases2_LINQ_to_SQL. |
|
ApplicationNav |
Метод, завдяки якому відбувається перехід з вікна phases1_SQL до вікна phases3_Application. |
|
SetDataGrid |
Метод що викликається для заповнення елемента управління DataGrid |
|
Schema_changes |
Метод, що відображає SQL-код обраної користувачем таблиці |
Таблиця 3.4
Опис компонентів класу phase2_LINQ_to_SQL
|
КомпонентОпис |
|
|
SQLNav |
Метод, завдяки якому відбувається перехід з вікна phases2_LINQtoSQL до вікна phases1_SQL. |
|
ApplicationNav |
Метод, завдяки якому відбувається перехід з вікна phases2_LINQtoSQL до вікна phases3_Application. |
|
Schema_changes |
Метод, що реалізує жемонстрацію перетворення запитів LINQ з об'єктної моделі в SQL |
|
ManipulateLinq |
Метод, що демонструэ перетворення запросів с SQL в LINQ |
|
Help |
Метод, що відповідає за переход на сторінку “help” |
Таблиця 3.5
Опис компонентів класу phase3_Application
|
Компонент |
Опис |
|
SetDataGrid |
Метод що викликається для заповнення елемента управління DataGrid |
|
UpdateDataGrid |
Метод, що відповідає за оновлення БД зміни інформації |
|
DeleteDataGrid |
Метод, що відповідає за видалення з БД інформації |
|
InsertDataGrid |
|
|
Help |
Метод, що відповідає за переход на сторінку “help” |
|
LinqToSqlNav |
Метод, завдяки якому відбувається перехід з вікна phases3_Application до вікна phases2_LINQtoSQL. |
|
SQLNav |
Метод, завдяки якому відбувається перехід з вікна phases3_Application до вікна phases1_SQL. |
Отже, розроблений засіб візуалізації досить глибоко показує особливості LINQ to SQL, та демонструє можливості та переваги ОРМ технології.
Засіб візуалізації надає змогу обирати вже готові запити для порівняння їхніх результатів, також демонструє те як відбувається перетворення запитів LINQ з об'єктної моделі в SQL.
Засіб візуалізації демонструє різницю між технологією інтегрованою в мову програмування LINQ та мовою SQL. Користувачі які вже знали мову SQL порівнюючи з технологією LINQ to SQL зможуть швидше її засвоїти, та навпаки.
Для більше детального вивчення цієї технології надається можливість до додаткового матеріалу в кожному пункті програми.
На етапі виконання розробки засобу візуалізації LINQ to SQL було вирішено наступні задачі::
) Проведено аналіз основних вимог до засобу візуалізації технології LINQ to SQL;
) Розроблено загальну архітектуру засобу візуалізації LINQ to SQL;
) Було розроблено складові засобу візуалізації технології LINQ to SQL.
) Було розроблено методику використання засобу
візуалізації технології LINQ to SQL.
ВИСНОВКИ
В процесі роботи з предметною областю пов’язаною з розробкою засобу візуалізації технології LINQ to SQL було досліджено, що в сучасному навчанні не завжди детально демонструються принципи роботи сучасних технологій і це негативно впливає на якість засвоєння матеріалу, що веде до погіршення рівня освіти.
Для вирішення цієї проблеми було розроблено засіб візуалізації технології LINQ to SQL, яка демонструє можливості та засоби використання технології LINQ.
В ході дослідження проблеми було проведено аналіз характеристик ORM, досліджено сутність проблеми парадигми «невідповідності», проведено аналіз основних характеристик технології LINQ to SQL, виконано аналіз існуючих засобів опанування технології LINQ to SQL.
Дане ПЗ демонструє різницю між технологією інтегрованою в мову програмування LINQ та мовою SQL. Користувачі які вже знали мову SQL порівнюючи з технологією LINQ to SQL зможуть швидше її засвоїти і навпаки. Для детальнішого вивчення цієї технології є можливість користуватися додатковою інформацією яка вбудована в ПЗ.
Розробка засобу візуалізації технології LINQ to SQL покращує засвоєння розглянутого навчального матеріалу, що веде до покращення якості освіти, але це ПЗ навчає лише однієї технології, для повного вирішення навчальної проблеми, потрібно розробляти більше подібного ПЗ, для суттєвого покращення якості навчального процесу.
Таким чином під час написання дипломного проекту було створено програмний засіб візуалізації технології LINQ to SQL, що відповідає наступним вимогам: простота засвоєння навчального матеріалу по даній темі, демонстрація можливостей технології LINQ to SQL, додаткова інформація для детального вивчення матеріалу, демонстрація перетворення запитів LINQ з об'єктної моделі в SQL.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
Паттерни проектування. - Корпорация Microsoft, 2011. - 46 с. [Электронный ресурс] - Режим доступа: http://outcoldman.com/ru/blog/show/184
Vijay Perelman Pro LINQ Object Relational Mapping with C#: Thomson learning, 2008 -27 с.Blundell Computer hardware London : Thomson, 2008..A.Godse A.P.Godse Computer Organization And Architecture Pune, India : Technical Publications, 2010.Stallings Computer Organization & Architecture 7e
Шилдт Г. - C# 4.0 полное руководство. 9-е изд., 2013 год - 748 с.
Эндрю Троелсен - Язык программирования C# 5.0 и платформа .NET 4.5 6-е издание Издательство: Вильямс, 2013 -537 с.