Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vakulenko D PI-11-2 Diplom.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

3 Опис Реалізаціі

3.1 Опис програмних засобів та технологій.

Як було сказано у попередніх розділах, проект складається з трьох частин: головний сервер, що зберігає інформацію про нерухомість, користувачів та покупки; веб-клієнт, що надає доступ до сервісу через звичайний веб-браузер; веб-клієнт для Windows Phone.

Дане застосування було створено у IDE для розробки .Net web-застосуваннь Visual Studio 2013, адже Visual Studio забезпечує повний набір функцій, включаючи інструменти та інтеграції з найбільш важливих сучасних технологій і рамок для підприємства і веб-розробки на мовах програмування C#, VB.Net, F# та інших. Було віддано перевагу цій IDE, бо вона на відміну від аналогів має всі необхідні компоненти, фреймворки та технологій вже встроєні та налаштовані, що не потребує їх додаткового скачування та встановлення у IDE. Більш того вона має достатньо зрозумілий та зручний інтерфейс та багато корисного інструментарія, який полегшує розробку програмного продукту.

Для розробки Інтернет-додатку використовувалася мова С# [3], тому що вона доцільна для реалізації поставленних задач.

Для проектування бази даних цього програмного продукту використовувалася реляційна СУБД SQL Microsoft Azure. SQL Microsoft Azure є потужною, об'єктно-реляційною системою управління базами даних. Вона має більш ніж 2-річний досвід активного розвитку та перевіреної архітектури, що здобуло репутацію надійної, цілісної і правильної системи управління базами даних. Вона повністю ACID сумісна, має повну підтримку зовнішніх ключів, об'єднань, уявлень, тригерів і збережених процедур.

Для зручної роботи з базою даних використовуватиметься технологія Entity Framework, яка не лише полегшує взаємодію з даними, а також здійснює самостійний захист даних, наприклад, від SQL ін`єкцій та інш. Entity Framework ORM [4] дозволяє розробникам легше писати додатки. Як ORM фреймворк, Entity Framework пов'язаний із збереженням даних, оскільки це належить до реляційних баз даних. Entity Framework дозволяє розробляти програми з уже звичними об'єктно-орієнтованими поняттями, включаючи успадкування, поліморфізм, асоціації в рамках колекцій С#. Entity Framework не вимагає належності інтерфейсу або базових класів і дозволяє будь-якому класу або структурі даних буди об’єктом Entity Framework.

Entity Framework має високі експлуатаційні характеристики. Entity Framework не вимагає спеціальних таблиць бази даних або поля і генерує більшу частину SQL під час ініціалізації системи замість часу виконання. Entity Framework добре масштабується в будь-якому середовищі, надійний, стабільний та якісний, гнучкий, легко конфігурується і розширюється [5].

Доступ до бази даних та параметри підключення знаходяться в окремому файлі config і підключається програмно, що підвищує гнучкість програми, та надає можливість з легкістю змінити сховище даних без зміни коду роботи з нею.

При написанні програмного продукту використовувався фреймворк ASP.NET MVC [6], який дозволив створити проект за архітектурою MVC. Не потрібно здійснювати налаштування фрейморку. Зв'язування даних ASP.NET є дуже гнучким. ASP.NET MVC включає безліч унікальних особливостей веб -підтримки [7]:

  • чіткий поділ ролей. Кожна роль - контролер , валідатор , команда об'єкт , форма об'єкта , об'єктна модель, Dispatcher, відображення обробник , вид распознаватель , і так далі - можуть бути виконані спеціалізованим об'єкта;

  • можливість адаптації, не нав'язливість і гнучкість;

  • багаторазовий бізнес код , немає необхідності в дублюванні;

  • настроювані зв'язування і валідація;

  • настроювані handler mapping і view resolution;

  • гнучка модель передачі даних;

Для забезпечення обмеження доступу користувачів з відповідними ролями у системі був застосован ASP.Net Membership Provider [7], що є потужним фреймворком для аутентифікації і управління доступом.

Також використовувався модуль Nuget, який дозволив динамічно підключати необхідні для розробки бібліотеки.

Для розробки інтерфейсу були використані html [8], css та мова javascript. Також javascript бібліотеки jQuery [9].

Для роботи з JSON: пакування та розпакування відповідей, використовувалась вільно-розповсюджувана бібліотека JSON.Net.

Для обробки запитів від клієнта був обран веб-сервер IIS, який дозволяє розміщувати в Інтернеті сайти. IIS підтримує протоколи HTTP, HTTPS, FTP, POP3, SMTP, NNTP. IIS другий за популярністю веб-сервер за кількістю сайтів, після Apache HTTP Server. [10]

Для розробки веб-клієнту також використовувався C# і бібліотека JSON.Net. Веб-клієнт має власну базу данних задля поліпшення user experience. Але більшість данних, що використовує для відображення клієнт, він бере з JSON-відповідей головного серверу. Для відображення даних використовувались стандартні елементи з набору для розробки Windows Phone applications.

Повертаючись до головного сервера і веб-клієнта, варто роз’яснити яку логіку роботи веб-застосувань було обрано. Ми маємо шар Доступу до данних, який абстрагує роботу з бд безпосередньо у шару Даних, шар Ядро у яком знаходяться кореневі моделі та методи розширення, шар Інфраструктура який відповідає за інверсію управління, та шар Веб який безпосередньо обробляе кліенться запроси (надіслані з браузерного та WinPhone кліентів). Варто зазначити, що задля задоволення важливого принципу ООП інверсії управління  (Модулі верхніх рівнів не повинні залежати від модулів нижчих рівнів. Обидва типа модулів повинні залежати від абстракцій. Абстракції не повинні залежати від деталей. Деталі повинні залежати від абстракцій) було застосовано IoC контейнери Castle Windsor на сервері, який розриває залежності між Веб шаром та шаром доступу до данних, та з такою ж ціллю вбудований в MVVM.light IoС container у мобільному кліенті. Інакше кажучи, робота веб-застосування виглядає таким чином: користувач звертається до сторінки, тоді контроллер, що відповідає за очікувану сторінку, починає свою роботу: оброблює GET та POST-дані, виконує дії, потом звертається до шару Даних, який повертає йому потрібну інформацію. Після цього подання повідомляє шару Виду (View), що дані готові для відображення й передає інформацію йому. Тепер в роботу включається шар Виду. Він, використовуючи передані оброблені дані, динамічно формує сторінку, а потім ця сторінка передається користувачеві. Логіка роботи мобільного кліента використовує поширений паттерн MVVM.

Програмний продукт створювався на ЕОМ з наступними характеристиками:

  • процесор: Intel® Core™ i5 CPU @ М330 2.13GHz 2.13GHz;

  • ОЗП: 8 Гб;

  • OS Win 8.

Вимоги до сервера:

  • .Net Framework 4.5;

  • MS SQL як база даних;

  • IIS 7.0;

  • ОЗУ не менш ніж 128 МБ, в залежності від навантаження на сервер.

Вимоги до клієнта для доступу на сайт:

  • браузер з підтримкою JavaScript;

  • доступ до мережі Internet.

Для побудови бази даних був використаний ORM Entity Framework, який генерує більшу частину SQL під час ініціалізації системи замість часу виконання. Для того, щоб побудувати базу даних, на основі ER-діаграми були створені класи-сутності.

Наведемо програмну реалізацію класу для сутності користувача:

public class Users : Entity

{

public virtual bool Activated { get; set; }

public virtual bool PaidUser { get; set; }

public virtual bool Banned { get; set; }

public virtual bool PaidSeller { get; set; }

public virtual string Email { get; set; }

public virtual string FirstName { get; set; }

public virtual string LastName { get; set; }

public virtual string Login { get; set; }

public virtual string LoginHash { get; set; }

public virtual string Password { get; set; }

public virtual string Patronymic { get; set; }

public virtual string Adress { get; set; }

public virtual string Phone { get; set; }

public virtual int Likes { get; set; }

public virtual int Dislikes { get; set; }

public virtual string Comments { get; set; }

public virtual IList<UserInteraction> UsersLiked { get;}

public virtual DateTime RegisterDateTime { get; set; }

public virtual IList<Role> Roles { get; set; }

}

Він має усі необхідні зв’язки із іншими сутностями. Зв’язки «Один до багатьох» та «Багато до одного» створені автоматично за допомогою Entity Framework. Нижче приведена програмна реалізація класу-сутності «Категорія»:

public class BuildCategories : Entity {

public string CatName { get; set; }

public IList<Realty> Realties { get; set; }

}

Клас-сутність «Нерухомість», має у собі усі необхідні поля для запису даних про транзакцію: суму транзакції та дату проведення, а також має посилання на сутність «Категорія»:

public class Realty : Entity

{

public string Named { get; set; }

public BuildCategory BuildCategory { get; set; }

public DateTime Created { get; set; }

public List<ImageAttachments> Photos { get; set; }

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]