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
IV. Instruments Перелік інструментів які використовуються:
- Microsoft Visual Studio 2013 or 2015
- Microsoft SQL Server 2014
- .NET Framework 4.6
- Microsoft Build Tools 2015 RC
- Entity Framework 6
- ASP.NET 5
- IIS 7.0
- IB Expert
- GIT
- Fiddler
- Delphi 7 and Components
- Firebird server
- SmartVillage source code
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 - скрипти бази даних, має наступну структуру:
VI. Domain Бібліотека для роботи з даними реалізована на основі generic-патерну Repository і патерну UnitOfWork . Використовується MS SQL Server 2014 та Entity Framework (EF), який є ORM-платформою .NET. Платформа ORM дозволяє працювати з таблицями, стовпцями і рядками в реляційній базі даних за допомогою звичайних об’єктів C#.
Має таку структуру файлів:
- Abstract - містить generic-інтерфейс IRepository який описує загальну структуру репозиторію і абстрактний базовий клас BaseEntity для всіх таблиць бази даних.
- Concrete - клас EFDbContext реалізує клас DbContext який відповідає за підключення до бази даних. EFRepository реалізує інтерфейс IRepository та описує основні операції для роботи з даними.
- Entities - опис таблиць бази даних
- Mapping - конфігурація таблиць
- Migrations - Параметри міграції бази.
VI. UnitTests Проект призначений для створення юніт-тестів. Ми збираємося слідувати підходу Test-driven development (TDD). Для створення тестів за технологією TDD слід дотримуватися таких пунктів:
- Визначаємо, що нам потрібно додати нову функцію або метод в додаток.
- Пишемо тест, який буде перевіряти поведінку нової функції, до того як вона буде написана.
- Запускаємо тест і отримуємо негативний результат.
- Пишемо код, який реалізує функцію.
- Знову запускаємо тест і коригуємо код, поки тест не виконається успішно.
- Якщо потрібно, оптимізуємо код (проводимо рефакторинг), наприклад, реорганізація виразів, перейменування змінних і так далі.
- Запускаємо тест, щоб підтвердити, що зміни не вплинули на поведінку доповнень
VII. WebUI WebUI - є проектом ASP.NET MVC.
Але в першу чергу реалізує програний інтерфейс WebAPI, який дозволяє легко створювати служби HTTP для широкого діапазону клієнтів, включаючи браузери і мобільні пристрої. WebUI - є RESTful додатком на платформі .NET Framework. Реалізація клієнтської частини:
Додаткові інструменти:
- Ninject - DI(Dependency Injection) контейнер для побудови слабо-зв’язаних компонентів
- Moq - фреймворк для модульного тестування. Це набір мокінг інструментів
- Twitter Bootstrap(+/-)
- jQuery
- knockoutjs
- Microsoft OData