Файл: Кузьмич КУРСОВА ТРПЗ.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.04.2024

Просмотров: 40

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1.3WPF

Windows Presentation Foundation (WPF) – це графічна підсистема (подібна до WinForms), спочатку розроблена Microsoft для надання інтерфейсів користувача в додатках на базі Windows. WPF,спочатку був випущений як частина .NET Framework 3.0 в 2006 році. WPF використовує DirectX(сукупність інтерфейсів прикладного програмування для обробки завдань, пов’язаних з мультимедіа) і намагається надати послідовну модель програмування для побудови додатків. Він відокремлює інтерфейс користувача від бізнес-логіки і нагадує подібний XML-орієнтований об'єкт [5]. WPF використовує XAML, мову на основі XML, для визначення та зв’язку різних елементів інтерфейсу [4]. Програми WPF можна розгорнути як окремі настільні програми або розмістити як вбудований об’єкт на веб-сайті. WPF має на меті об'єднати ряд загальних елементів інтерфейсу користувача, таких як 2D або 3D візуалізація, фіксовані та адаптивні документи, типографія, векторна графіка, анімація виконання та попередньо надані носії інформації. Ці елементи можуть бути потім пов’язані та маніпульовані на основі різних подій, взаємодії користувачів та прив'язки даних [4].


1.3.1 Особливості wpf

Прив’язка даних WPF має вбудований набір служб передачі даних, що дозволяє розробникам додатків прив'язувати та маніпулювати даними в додатках. Він підтримує чотири типи прив'язки даних:

  • один раз: коли клієнт ігнорує оновлення на сервері;

  • один шлях: клієнт має доступ лише до даних;

  • двосторонній: де клієнт може читати і записувати дані на сервер;

  • один шлях до джерела: де клієнт має доступ лише до даних.

Прив'язка даних не має ніякого відношення до їх подання. WPF надає шаблони даних для контролю подання даних. Набір вбудованих елементів управління є частиною WPF, що містить елементи, такі як кнопка, меню, сітки та поле списку. Властивості залежності можна додати до поведінки або вкладених властивостей, щоб додати власні властивості прив'язки. Потужною концепцією WPF є логічне відокремлення контролю від його появи [5].

Медіа WPF забезпечує інтегровану систему побудови інтерфейсів користувача із загальними медіа-елементами, такими як векторні та растрові зображення, аудіо та відео. WPF також пропонує анімаційну систему та 2D або 3D візуалізацію [4]. WPF забезпечує примітиви форми для двовимірної графіки разом із вбудованим набором пензлів, ручок, геометрій та перетворень. Можливості 3D в WPF – це підмножина повнофункціонального набору, що надається Direct3D. Однак WPF забезпечує більш тісну інтеграцію з іншими функціями, такими як інтерфейс користувача, документи та засоби масової інформації. Це дає можливість мати 3D-інтерфейс користувача, тривимірні документи або 3D-носії [1],[5].

1.3 Огляд ооп

Серед великої кількості існуючих технологій найбільш вживаною є техноголія об’єктно орієнтованого програмування для створення користувацьких додатків. Об'єктно-орієнтоване програмування (OOП) – парадигма програмування, заснована на понятті «об'єкти», яка може містити дані у вигляді полів (часто відомих як атрибути чи властивості) та коду у вигляді процедур (часто відомих як методи). Парадигма програмуваання – це система ідей і понять, які визначають стиль написання комп'ютерних програм, а також спосіб мислення програміста [6]. Об'єкти, які зазвичай є екземплярами класів, використовуються для взаємодії один з одним для проектування програм та комп'ютерних програм. Особливістю об'єктів є процедури об'єкта, які можуть отримати доступ і часто змінювати поля даних об'єкта, з яким вони асоціюються. В ООП комп'ютерні програми розробляють, створюючи їх з об'єктів, які взаємодіють між собою. Мови OOP різноманітні, але найпопулярніші - на основі класів, тобто об’єкти - це екземпляри класів, які також визначають їх тип [5].


ООП включає в себе фундаментальні принципи, використані у переважній більшості визначень, до яких належать:

клас – визначає абстрактні характеристики деякої сутності, включно з характеристиками самої сутності (її атрибутами або властивостями) та діями, які вона здатна виконувати (її поведінкою, методами або можливостями) [5];

об'єкт – окремий екземпляр класу (створюється після запуску програми і ініціалізації полів класу);

метод – можливості об'єкта. В межах програми, використання методу має впливати лише на один об'єкт;

обмін повідомленнями – «передача даних від одного процесу іншому, або надсилання викликів методів»;

успадкування – клас може мати «підкласи», спеціалізовані, розширені версії надкласу. Можуть навіть утворюватись цілі дерева успадкування. Підкласи успадковують атрибути та поведінку своїх батьківських класів, і можуть вводити свої власні. Успадкування може бути одиничне (один безпосередній батьківський клас) та множинне (кілька батьківських класів);

інкапсуляція – приховування деталей про роботу класів від об'єктів, що їх використовують або надсилають їм повідомлення. Інкапсуляція досягається шляхом вказування, які класи можуть звертатися до членів об'єкта. Як наслідок, кожен об'єкт надає кожному іншому класу певний інтерфейс – члени, доступні іншим класам. Інкапсуляція потрібна для того, аби запобігти використанню користувачами інтерфейсу тих частин реалізації, які, швидше за все, будуть змінюватись. Це дасть змогу полегшити внесення змін без потреби змінювати і користувачів інтерфейсу;

абстрагування – спрощення складної дійсності шляхом моделювання класів, що відповідають проблемі, та використання найприйнятнішого рівня деталізації окремих аспектів проблеми;

поліморфізм – означає залежність поведінки від класу, в якому ця поведінка викликається, тобто, два або більше класів можуть реагувати по-різному на однакові повідомлення. Реалізовується шляхом реалізації ряду підпрограм (функцій, процедур, методи тощо) з однаковими іменами, але з різними параметрами. Залежно від того, що передається, і вибирається відповідна підпрограма [5].


1.4 Огляд коп

У зв’язку з тим, що неконтрольване застосування ООП призводить до викикнення проблем із здатністю великих програмних комплексів виконувати потрібні функції в заданих режимах та умовах застосування застосовують КОП(компонентно-орієнтоване програмування). КОП – одна з парадигм програмування, виникла як свого роду дисципліна, тобто набір певних обмежень, що накладаються на механізм об'єктно-орієнтованого програмування [7].

Це підхід, заснований на повторному використанні, для визначення, впровадження та складання в систему слабко пов'язаних незалежних компонентів. Ця практика має на меті принести однаково широку ступінь вигоди як в короткостроковій, так і в довгостроковій перспективах як для самого програмного забезпечення, так і для організацій, які спонсорують таке програмне забезпечення [7].

Працівники програмної інженерії розглядають компоненти як частину стартової платформи орієнтації на обслуговування. Компоненти відіграють цю роль, наприклад, у веб-сервісах та з недавніх пір у сервісно-орієнтованих архітектурах (SOA), завдяки чому компонент перетворюється веб-сервісом у сервіс та згодом успадковує подальші характеристики, вищі за характеристики звичайного компонента [7].

Компоненти можуть створювати або споживати події і можуть використовуватися для архітектур, керованих подіями (EDA) [7].

Індивідуальний програмний компонент – це програмний пакет, веб-служба, веб-ресурс або модуль, який інкапсулює набір пов'язаних функцій (або даних). Всі системні процеси розміщуються в окремі компоненти, так що всі дані та функції всередині кожного компонента є семантично пов'язаними (так само, як і зі змістом класів). Через цей принцип часто говорять про те, що компоненти модульні та згуртовані. Що стосується загальносистемної координації, компоненти спілкуються один з одним через інтерфейси. Коли компонент пропонує послуги для решти системи, він приймає наданий інтерфейс, який визначає послуги, якими можуть користуватися інші компоненти, і як вони можуть це робити. Цей інтерфейс можна розглядати як підпис компонента - клієнту не потрібно знати про внутрішню роботу компонента (реалізації), щоб ним скористатися. Цей принцип призводить до того, що компоненти, які називаються ікапсульованими [7].

1.4 Принципи SOLID


SOLID – це абревіатура складена з перших літер п'яти базових принципів об'єктно-орієнтованого програмування та дизайну запропонована Робертом Мартіном [9]. Принципи SOLID є дуже важливими при написанні програми так, як при їх дотриманні структура програми стає чіткою та правильною. Принципи SOLID використовуються для дизайну та розробки таких програмних систем, які, з великою ймовірністю, зможуть тривалий час розвиватися, розширятися і підтримуватися [9].

SOLID розшифровується як:

  • принцип єдиного обов'язку (Single responsibility principle): Кожен об'єкт має виконувати лише один обов'язок;

  • принцип відкритості/закритості (Open/closed principle): Програмні сутності повинні бути відкритими для розширення, але закритими для змін. Розширення певного класу/інтерфейсу може здійснюватись через його успадкування;

  • принцип підстановки Лісков (Liskov substitution principle): Об'єкти в програмі можуть бути заміненими їх нащадками без зміни коду програми;

  • принцип розділення інтерфейсу (Interface segregation principle): Багато спеціалізованих інтерфейсів краще за один універсальний. Інтерфейс може бути поділений на спеціалізовані ще на стадії проектування, заради майбутньої гнучкості програмних компонентів;

  • принцип інверсії залежностей (Dependency inversion principle): Залежності всередині системи будуються на основі абстракцій, що не повинні залежати від деталей; навпаки, деталі мають залежати від абстракцій. Модулі вищих рівнів не мають залежати від модулів нижчих рівнів [9].

1.5 MVVM

Model-View-ViewModel – це шаблон проектування, що застосовується під час проектування архітектури застосунків (додатків). Публічно вперше був представлений Джоном Госсманом (John Gossman) у 2005 році як модифікація шаблону Presentation Model. MVVM орієнтований на такі сучасні платформи розробки, як Windows Presentation Foundation та Silverlight від компанії Microsoft [8].

MVVM полегшує відокремлення розробки графічного інтерфейсу від розробки бізнес логіки (бек-енд логіки), відомої як модель (можна також сказати, що це відокремлення представлення від моделі). Модель представлення є частиною, яка відповідає за перетворення даних для їх подальшої підтримки і використання. З цієї точки зору, модель представлення більше схожа на модель, ніж на представлення і оброблює більшість, якщо не всю, логіку відображення даних. Модель представлення може також реалізовувати патерн медіатор, організовуючи доступ до бек-енд логіки навколо множини правил використання, які підтримуються представленням [8].