https://github.com/Raiffeisen-DGTL/ViennaNET
Framework for quickly creating enterprise microservices on .NET https://habr.com/ru/company/raiffeisenbank/blog/494830/
https://github.com/Raiffeisen-DGTL/ViennaNET
csharp ddd dotnet dotnet-core enterprise microservices onion-architecture raiffeisen webapi
Last synced: 5 months ago
JSON representation
Framework for quickly creating enterprise microservices on .NET https://habr.com/ru/company/raiffeisenbank/blog/494830/
- Host: GitHub
- URL: https://github.com/Raiffeisen-DGTL/ViennaNET
- Owner: Raiffeisen-DGTL
- License: mit
- Created: 2019-12-11T04:10:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-24T15:28:43.000Z (12 months ago)
- Last Synced: 2024-08-05T15:05:02.785Z (8 months ago)
- Topics: csharp, ddd, dotnet, dotnet-core, enterprise, microservices, onion-architecture, raiffeisen, webapi
- Language: C#
- Homepage: https://www.nuget.org/profiles/ViennaNET
- Size: 1.7 MB
- Stars: 224
- Watchers: 28
- Forks: 36
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Security: SECURITY.md
Awesome Lists containing this project
- awesome_dotnet_cloud_ecosystem - ViennaNET
README
# ViennaNET
ViennaNET is an open-source extensions of .NET and ASP.NET Core frameworks for quickly creating enterprise
microservices, such as RESTFull web api services, uses any databases, message brokers, etc...[![Default ViennaNET release pipeline][49]][50]
[![Quality Gate Status][51]][52][![Maintainability Rating][53]][54]
[![Security Rating][55]][56]
[![Reliability Rating][57]][58]
[![Coverage][59]][60]## Table of contents
### ArcSight
* [ViennaNET.ArcSight][1] - library with ArcSight connection logic
* [ViennaNET.ArcSight.DefaultConfiguration][2] - assembly integration into the project through SimpleInjector### Mediator (inner bus)
* [ViennaNET.Mediator][3] - implementation of the internal message bus
* [ViennaNET.Mediator.DefaultConfiguration][4] - assembly integration into the project through SimpleInjector### Messaging
* [ViennaNET.Messaging][5] - classes and interfaces providing a common functionality for working with queues
* [ViennaNET.Messaging.DefaultConfiguration][6] - integration through SimpleInjector> ActiveMQ:
> * [ViennaNET.Messaging.ActiveMQQueue][7] - work with the ActiveMQ queue
> * [ViennaNET.Messaging.ActiveMQQueue.DefaultConfiguration][8] - integration through SimpleInjector> IBM MQ:
> * [ViennaNET.Messaging.MQSeriesQueue][9] - work with the IBM MQ Series queue
> * [ViennaNET.Messaging.MQSeriesQueue.DefaultConfiguration][10] - integration through SimpleInjector> Kafka:
> * [ViennaNET.Messaging.KafkaQueue][11] - work with the Kafka queue
> * [ViennaNET.Messaging.KafkaQueue.DefaultConfiguration][12] - integration through SimpleInjector> RabbitMQ:
> * [ViennaNET.Messaging.RabbitMQQueue][13] - work with the RabbitMQ queue
> * [ViennaNET.Messaging.RabbitMQQueue.DefaultConfiguration][14] - integration through SimpleInjector### ORM
* [ViennaNET.Orm][15] - DAL, wrapper over NHibernate
* [ViennaNET.Orm.DefaultConfiguration][16] - assembly integration into the project through SimpleInjector> DB2:
> * [ViennaNET.Orm.DB2.Win][17] - driver for connecting to IBM DB2 under Windows
> * [ViennaNET.Orm.DB2.Lnx][18] - driver for connecting to IBM DB2 under Linux> MSSql:
> * [ViennaNET.Orm.MSSQL][19] - connection of the MS SQL driver
> * [ViennaNET.Orm.MSSQL.DefaultConfiguration][20] - assembly integration into the project through SimpleInjector> Oracle:
> * [ViennaNET.Orm.Oracle][21] - connecting the Oracle driver
> * [ViennaNET.Orm.Oracle.DefaultConfiguration][22] - assembly integration into the project through SimpleInjector> PostgreSQL:
> * [ViennaNET.Orm.PostgreSql][23] - connecting the PostgreSql driver
> * [ViennaNET.Orm.PostgreSql.DefaultConfiguration][24] - assembly integration into the project through SimpleInjector> SQLite:
> * [ViennaNET.Orm.SQLite][25] - connecting the SQLite driver
> * [ViennaNET.Orm.SQLite.DefaultConfiguration][26] - assembly integration into the project through SimpleInjector### Redis
* [ViennaNET.Redis][27] - services for working with Redis
* [ViennaNET.Redis.DefaultConfiguration][28] - assembly integration into the project through SimpleInjector### Security
* [ViennaNET.Security][29] - base security interface abstractions library
* [ViennaNET.Security.Jwt][30] - token factory### Useful Utilities
* [ViennaNET.Utils][31] - contains useful extension methods and attributes
* [ViennaNET.Validation][32] - implementation of validation services
* [ViennaNET.Specifications][33] - library for creating and using specifications### WebApi
* [ViennaNET.WebApi][35] - WebApi-service builder with common AspNetCore & Swagger features enabled
* [ViennaNET.HttpClient][36] - Http-client builder, integrated in standard AspNetCore DI-container## Quickstart
## Examples
* [Simple empty microservice example][37]
* [Example of microservice with Mediator and SimpleInjector][38]
* [Example of microservice with validation][39]
* [Example of microservice with database][40]
* [Example of microservice with messaging][42]## Description
* [ViennaNET part1 (WebApi, Mediator, Validation, Redis, Specifications)][43]
* [ViennaNET part2 (Sagas, Orm, Messaging, CallContext)][44]## [Video materials][45]
## Let's contribute
* [Open issues][46]
* [Codestyle conventions][47]
* [Release notes][48][1]: "Руководство по пакету ViennaNET.ArcSight"
[2]: "Пакет SimpleInjector для регистрации клиента ArcSight в DI"
[3]: "Руководство по пакету ViennaNET.Mediator"
[4]: "Пакет SimpleInjector для регистрации клиента Mediator в DI"
[5]: "Руководство по пакету ViennaNET.Messaging"
[6]: "Пакет SimpleInjector для регистрации клиента Messaging в DI"
[7]: "Руководство по пакету ViennaNET.Messaging.ActiveMQQueue"
[8]: "Пакет SimpleInjector для регистрации клиента Messaging.ActiveMQQueue в DI"
[9]: "Руководство по пакету ViennaNET.Messaging.MQSeriesQueue"
[10]: "Пакет SimpleInjector для регистрации клиента Messaging.MQSeriesQueue в DI"
[11]: "Руководство по пакету ViennaNET.Messaging.KafkaQueue"
[12]: "Пакет SimpleInjector для регистрации клиента Messaging.KafkaQueue в DI"
[13]: "Руководство по пакету ViennaNET.Messaging.RabbitMQQueue"
[14]: "Пакет SimpleInjector для регистрации клиента Messaging.RabbitMQQueue в DI"
[15]: "Руководство по пакету ViennaNET.Orm"
[16]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm в DI"
[17]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.DB2.Win в DI"
[18]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.DB2.Lnx в DI"
[19]: "Руководство по пакету ViennaNET.Orm.MSSQL"
[20]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.MSSQL в DI"
[21]: "Руководство по пакету ViennaNET.Orm.Oracle"
[22]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.Oracle в DI"
[23]: "Руководство по пакету ViennaNET.Orm.PostgreSql"
[24]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.PostgreSql в DI"
[25]: "Руководство по пакету ViennaNET.Orm.SQLite"
[26]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.SQLite в DI"
[27]: "Руководство по пакету ViennaNET.Redis"
[28]: "Пакет SimpleInjector для регистрации клиента ViennaNET.Redis в DI"
[29]: "Контекст безопасности"
[30]: "Контекст безопасности JWT"
[31]: "Некоторые вспомогательные программы"
[32]: "Компонент предоставляющий Api для создания валидаторов"
[33]: "Компонент предоставляющий Api для созданя спецификаций"
[35]: "ViennaNET.WebApi"
[36]: "ViennaNET.HttpClient"
[37]: "Пример создания простой WebApi службы на основе ViennaNET"
[38]: "Пример использования ViennaNET.Mediator"
[39]: "Пример использования ViennaNET.Validation"
[40]: "Пример использования ViennaNET.Orm"
[42]: "Пример использования ViennaNET.Messaging"
[43]: "ViennaNET part1"
[44]: "ViennaNET part2"
[45]: "Video materials"
[46]: "Open issues"
[47]: "Codestyle conventions"
[48]: "Release notes"
[49]: "Pipeline status badge"
[50]: "Default pipeline link"
[51]: "Quality Gate Status badge"
[52]: "Quality Gate Status link"
[53]: "Maintainability rating badge"
[54]: "Maintainability rating link"
[55]: "Security Rating badge"
[56]: "Security Rating link"
[57]: "Reliability Rating badge"
[58]: "Reliability Rating link"
[59]: "Coverage badge"
[60]: "Coverage link"