test deploy on http://svonline.apphb.com/
Build status:
І. 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 2015
- Microsoft SQL Server 2014
- .NET Framework 4.6
- Microsoft Build Tools 2015 RC
- Entity Framework 6
- ASP.NET 4
- IIS 7.0
- IB Expert
- GIT
- Fiddler
- Delphi 7 and Components
- Firebird server
- SmartVillage source code
UPDATE
З 12.2015 проект повністю перенесено на нову платформу .NET 4.6 де використовується новий компілятор Roslyn і синтаксис C# 6.0
.....
VI. UnitTests
Проект призначений для створення юніт-тестів. Ми збираємося слідувати підходу Test-driven development (TDD).
Для створення тестів за технологією TDD слід дотримуватися таких пунктів:
- Визначаємо, що нам потрібно додати нову функцію або метод в додаток.
- Пишемо тест, який буде перевіряти поведінку нової функції, до того як вона буде написана.
- Запускаємо тест і отримуємо негативний результат.
- Пишемо код, який реалізує функцію.
- Знову запускаємо тест і коригуємо код, поки тест не виконається успішно.
- Якщо потрібно, оптимізуємо код (проводимо рефакторинг), наприклад, реорганізація виразів, перейменування змінних і так далі.
- Запускаємо тест, щоб підтвердити, що зміни не вплинули на поведінку доповнень
В методах модульного тестування потрібно дотримуватися патерну [arrange/act/assert(A/A/A)](http://www.arrangeactassert.com/why-and-what-is-arrange-act-assert/)
Одним з хороших підходів полягає в використанні [mock-об’єктів](https://en.wikipedia.org/wiki/Mock_object), які симулюють функціональність реальних об’єктів проекту. Mock-об’єкти дозволяють звузити фокус тестів, так щоб можна було перевірити тільки той функціонал в якому ми зацікавлені.
VII. WebUI
WebUI - є проектом ASP.NET MVC.
Але в першу чергу реалізує програмний інтерфейс WebAPI, який дозволяє легко створювати служби HTTP для широкого діапазону клієнтів, включаючи браузери і мобільні пристрої. WebUI - є RESTful додатком на платформі .NET Framework.
Реалізація клієнтської частини:
Додаткові інструменти:
- Ninject - DI(Dependency Injection) контейнер для побудови слабо-зв’язаних компонентів
- Moq - фреймворк для модульного тестування. Це набір мокінг інструментів
- Twitter Bootstrap(+/-)
- jQuery
- knockoutjs
- Microsoft OData