Home - Marusyk/SmartVillageOnline GitHub Wiki

SmartVillage-Online

test deploy on http://deploy-test.apphb.com/ І. What is Smart Village? Система «Розумне село» є єдиною, здатною до масштабування та адаптації, інформаційною системою, що призначена для автоматизації діяльності сільських і селищних рад по веденню погосподарських книг, статистичного обліку землі, нерухомості, транспорту, свійських тварин і худоби у відповідності до норм законодавства України, а саме Наказу Держкомстату від 08.12.10 р. № 491 про затвердження нової Інструкції з ведення погосподарського обліку в сільських, селищних та міських радах. Більше інофрмації на офсайті: http://sisoftware.biz/products/smart-village/

II. What is Smart Village - Online?

Система “SmartVillage-Online” є веб-додатком який побудований на основі нових технологій за концепцією SaaS і є аналогом desktop-версії програми Smart Village

IIІ. Аrchitecture Image of Yaktocat

IV. Instruments Перелік інструментів які використовуються:

V. Subversion Існує 2 Git-репозиторія на GitHub: SmartVillageOnline - source code Містить у собі Visual Studio Solution який складається з трьох проектів:

  • Domain - це бібліотека (Class Library) яка містить доменні об’єкти і логіку; підтримує механізм збереження за домогою патернів Repository та UnitOfWork, створених використовуючи Entity Framework. Реалізує Data Layer архітектури.
  • WebUI - є проектом ASP.NET MVC 4 Web Application і містить контролери і представлення; є інтерфейсом додатку і реалізує Presentation layer і Business layer архітектури.
  • UnitTests - (Unit Test Project) містить модульні тести для 2-х проектів

SmartVillageOnlineDB - скрипти бази даних, має наступну структуру:

Image of Yaktocat

VI. Domain Бібліотека для роботи з даними реалізована на основі generic-патерну Repository і патерну UnitOfWork . Використовується MS SQL Server 2014 та Entity Framework (EF), який є ORM-платформою .NET. Платформа ORM дозволяє працювати з таблицями, стовпцями і рядками в реляційній базі даних за допомогою звичайних об’єктів C#.

Image of Yaktocat

Має таку структуру файлів:

Image of Yaktocat

  • Abstract - містить generic-інтерфейс IRepository який описує загальну структуру репозиторію і абстрактний базовий клас BaseEntity для всіх таблиць бази даних.
  • Concrete - клас EFDbContext реалізує клас DbContext який відповідає за підключення до бази даних. EFRepository реалізує інтерфейс IRepository та описує основні операції для роботи з даними.
  • Entities - опис таблиць бази даних
  • Mapping - конфігурація таблиць
  • Migrations - Параметри міграції бази.

Image of Yaktocat

VI. UnitTests Проект призначений для створення юніт-тестів. Ми збираємося слідувати підходу Test-driven development (TDD). Для створення тестів за технологією TDD слід дотримуватися таких пунктів:

  • Визначаємо, що нам потрібно додати нову функцію або метод в додаток.
  • Пишемо тест, який буде перевіряти поведінку нової функції, до того як вона буде написана.
  • Запускаємо тест і отримуємо негативний результат.
  • Пишемо код, який реалізує функцію.
  • Знову запускаємо тест і коригуємо код, поки тест не виконається успішно.
  • Якщо потрібно, оптимізуємо код (проводимо рефакторинг), наприклад, реорганізація виразів, перейменування змінних і так далі.
  • Запускаємо тест, щоб підтвердити, що зміни не вплинули на поведінку доповнень

Image of Yaktocat

VII. WebUI WebUI - є проектом ASP.NET MVC.

Image of Yaktocat

Але в першу чергу реалізує програний інтерфейс WebAPI, який дозволяє легко створювати служби HTTP для широкого діапазону клієнтів, включаючи браузери і мобільні пристрої. WebUI - є RESTful додатком на платформі .NET Framework. Реалізація клієнтської частини:

Image of Yaktocat

Додаткові інструменти: