Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: about 2 months ago
JSON representation

Framework for quickly creating enterprise microservices on .NET https://habr.com/ru/company/raiffeisenbank/blog/494830/

Awesome Lists containing this project

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"