{"id":13836574,"url":"https://github.com/Raiffeisen-DGTL/ViennaNET","last_synced_at":"2025-07-10T15:33:16.861Z","repository":{"id":45347398,"uuid":"227274371","full_name":"Raiffeisen-DGTL/ViennaNET","owner":"Raiffeisen-DGTL","description":"Framework for quickly creating enterprise microservices on .NET https://habr.com/ru/company/raiffeisenbank/blog/494830/","archived":false,"fork":false,"pushed_at":"2024-04-24T15:28:43.000Z","size":1786,"stargazers_count":224,"open_issues_count":22,"forks_count":36,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-08-05T15:05:02.785Z","etag":null,"topics":["csharp","ddd","dotnet","dotnet-core","enterprise","microservices","onion-architecture","raiffeisen","webapi"],"latest_commit_sha":null,"homepage":"https://www.nuget.org/profiles/ViennaNET","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Raiffeisen-DGTL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-11T04:10:53.000Z","updated_at":"2024-07-27T14:42:18.000Z","dependencies_parsed_at":"2024-01-15T13:25:45.512Z","dependency_job_id":null,"html_url":"https://github.com/Raiffeisen-DGTL/ViennaNET","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raiffeisen-DGTL%2FViennaNET","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raiffeisen-DGTL%2FViennaNET/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raiffeisen-DGTL%2FViennaNET/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raiffeisen-DGTL%2FViennaNET/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Raiffeisen-DGTL","download_url":"https://codeload.github.com/Raiffeisen-DGTL/ViennaNET/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225647521,"owners_count":17502095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","ddd","dotnet","dotnet-core","enterprise","microservices","onion-architecture","raiffeisen","webapi"],"created_at":"2024-08-04T15:00:50.175Z","updated_at":"2024-11-20T23:31:20.041Z","avatar_url":"https://github.com/Raiffeisen-DGTL.png","language":"C#","readme":"# ViennaNET\n\nViennaNET is an open-source extensions of .NET and ASP.NET Core frameworks for quickly creating enterprise\nmicroservices, such as RESTFull web api services, uses any databases, message brokers, etc...\n\n[![Default ViennaNET release pipeline][49]][50]\n[![Quality Gate Status][51]][52]\n\n[![Maintainability Rating][53]][54]\n[![Security Rating][55]][56]\n[![Reliability Rating][57]][58]\n[![Coverage][59]][60]\n\n## Table of contents\n\n### ArcSight\n\n* [ViennaNET.ArcSight][1] - library with ArcSight connection logic\n* [ViennaNET.ArcSight.DefaultConfiguration][2] - assembly integration into the project through SimpleInjector\n\n### Mediator (inner bus)\n\n* [ViennaNET.Mediator][3] - implementation of the internal message bus\n* [ViennaNET.Mediator.DefaultConfiguration][4] - assembly integration into the project through SimpleInjector\n\n### Messaging\n\n* [ViennaNET.Messaging][5] - classes and interfaces providing a common functionality for working with queues\n* [ViennaNET.Messaging.DefaultConfiguration][6] - integration through SimpleInjector\n\n\u003e ActiveMQ:\n\u003e * [ViennaNET.Messaging.ActiveMQQueue][7] - work with the ActiveMQ queue\n\u003e * [ViennaNET.Messaging.ActiveMQQueue.DefaultConfiguration][8] - integration through SimpleInjector\n\n\u003e IBM MQ:\n\u003e * [ViennaNET.Messaging.MQSeriesQueue][9] - work with the IBM MQ Series queue\n\u003e * [ViennaNET.Messaging.MQSeriesQueue.DefaultConfiguration][10] - integration through SimpleInjector\n\n\u003e Kafka:\n\u003e * [ViennaNET.Messaging.KafkaQueue][11] - work with the Kafka queue\n\u003e * [ViennaNET.Messaging.KafkaQueue.DefaultConfiguration][12] - integration through SimpleInjector\n\n\u003e RabbitMQ:\n\u003e * [ViennaNET.Messaging.RabbitMQQueue][13] - work with the RabbitMQ queue\n\u003e * [ViennaNET.Messaging.RabbitMQQueue.DefaultConfiguration][14] - integration through SimpleInjector\n\n### ORM\n\n* [ViennaNET.Orm][15] - DAL, wrapper over NHibernate\n* [ViennaNET.Orm.DefaultConfiguration][16] - assembly integration into the project through SimpleInjector\n\n\u003e DB2:\n\u003e * [ViennaNET.Orm.DB2.Win][17] - driver for connecting to IBM DB2 under Windows\n\u003e * [ViennaNET.Orm.DB2.Lnx][18] - driver for connecting to IBM DB2 under Linux\n\n\u003e MSSql:\n\u003e * [ViennaNET.Orm.MSSQL][19] - connection of the MS SQL driver\n\u003e * [ViennaNET.Orm.MSSQL.DefaultConfiguration][20] - assembly integration into the project through SimpleInjector\n\n\u003e Oracle:\n\u003e * [ViennaNET.Orm.Oracle][21] - connecting the Oracle driver\n\u003e * [ViennaNET.Orm.Oracle.DefaultConfiguration][22] - assembly integration into the project through SimpleInjector\n\n\u003e PostgreSQL:\n\u003e * [ViennaNET.Orm.PostgreSql][23] - connecting the PostgreSql driver\n\u003e * [ViennaNET.Orm.PostgreSql.DefaultConfiguration][24] - assembly integration into the project through SimpleInjector\n\n\u003e SQLite:\n\u003e * [ViennaNET.Orm.SQLite][25] - connecting the SQLite driver\n\u003e * [ViennaNET.Orm.SQLite.DefaultConfiguration][26] - assembly integration into the project through SimpleInjector\n\n### Redis\n\n* [ViennaNET.Redis][27] - services for working with Redis\n* [ViennaNET.Redis.DefaultConfiguration][28] - assembly integration into the project through SimpleInjector\n\n### Security\n\n* [ViennaNET.Security][29] - base security interface abstractions library\n* [ViennaNET.Security.Jwt][30] - token factory\n\n### Useful Utilities\n\n* [ViennaNET.Utils][31] - contains useful extension methods and attributes\n* [ViennaNET.Validation][32] - implementation of validation services\n* [ViennaNET.Specifications][33] - library for creating and using specifications\n\n### WebApi\n\n* [ViennaNET.WebApi][35] - WebApi-service builder with common AspNetCore \u0026 Swagger features enabled\n* [ViennaNET.HttpClient][36] - Http-client builder, integrated in standard AspNetCore DI-container\n\n## Quickstart\n\n## Examples\n\n* [Simple empty microservice example][37]\n* [Example of microservice with Mediator and SimpleInjector][38]\n* [Example of microservice with validation][39]\n* [Example of microservice with database][40]\n* [Example of microservice with messaging][42]\n\n## Description\n\n* [ViennaNET part1 (WebApi, Mediator, Validation, Redis, Specifications)][43]\n* [ViennaNET part2 (Sagas, Orm, Messaging, CallContext)][44]\n\n## [Video materials][45]\n\n## Let's contribute\n\n* [Open issues][46]\n* [Codestyle conventions][47]\n* [Release notes][48]\n\n[1]: \u003csrc/ViennaNET.ArcSight/\u003e \"Руководство по пакету ViennaNET.ArcSight\"\n\n[2]: \u003csrc/ViennaNET.ArcSight.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ArcSight в DI\"\n\n[3]: \u003csrc/ViennaNET.Mediator/\u003e \"Руководство по пакету ViennaNET.Mediator\"\n\n[4]: \u003csrc/ViennaNET.Mediator.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента Mediator в DI\"\n\n[5]: \u003csrc/ViennaNET.Messaging/\u003e \"Руководство по пакету ViennaNET.Messaging\"\n\n[6]: \u003csrc/ViennaNET.Messaging.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента Messaging в DI\"\n\n[7]: \u003csrc/ViennaNET.Messaging.ActiveMQQueue/\u003e \"Руководство по пакету ViennaNET.Messaging.ActiveMQQueue\"\n\n[8]: \u003csrc/ViennaNET.Messaging.ActiveMQQueue.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента Messaging.ActiveMQQueue в DI\"\n\n[9]: \u003csrc/ViennaNET.Messaging.MQSeriesQueue/\u003e \"Руководство по пакету ViennaNET.Messaging.MQSeriesQueue\"\n\n[10]: \u003csrc/ViennaNET.Messaging.MQSeriesQueue.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента Messaging.MQSeriesQueue в DI\"\n\n[11]: \u003csrc/ViennaNET.Messaging.KafkaQueue/\u003e \"Руководство по пакету ViennaNET.Messaging.KafkaQueue\"\n\n[12]: \u003csrc/ViennaNET.Messaging.KafkaQueue.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента Messaging.KafkaQueue в DI\"\n\n[13]: \u003csrc/ViennaNET.Messaging.RabbitMQQueue/\u003e \"Руководство по пакету ViennaNET.Messaging.RabbitMQQueue\"\n\n[14]: \u003csrc/ViennaNET.Messaging.RabbitMQQueue.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента Messaging.RabbitMQQueue в DI\"\n\n[15]: \u003csrc/ViennaNET.Orm/\u003e \"Руководство по пакету ViennaNET.Orm\"\n\n[16]: \u003csrc/ViennaNET.Orm.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm в DI\"\n\n[17]: \u003csrc/ViennaNET.Orm.DB2.Win.DefaultConfiguration/\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.DB2.Win в DI\"\n\n[18]: \u003csrc/ViennaNET.Orm.DB2.Lnx.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.DB2.Lnx в DI\"\n\n[19]: \u003csrc/ViennaNET.Orm.MSSQL/\u003e \"Руководство по пакету ViennaNET.Orm.MSSQL\"\n\n[20]: \u003csrc/ViennaNET.Orm.MSSQL.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.MSSQL в DI\"\n\n[21]: \u003csrc/ViennaNET.Orm.Oracle/\u003e \"Руководство по пакету ViennaNET.Orm.Oracle\"\n\n[22]: \u003csrc/ViennaNET.Orm.Oracle.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.Oracle в DI\"\n\n[23]: \u003csrc/ViennaNET.Orm.PostgreSql/\u003e \"Руководство по пакету ViennaNET.Orm.PostgreSql\"\n\n[24]: \u003csrc/ViennaNET.Orm.PostgreSql.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.PostgreSql в DI\"\n\n[25]: \u003csrc/ViennaNET.Orm.SQLite/\u003e \"Руководство по пакету ViennaNET.Orm.SQLite\"\n\n[26]: \u003csrc/ViennaNET.Orm.SQLite.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Orm.SQLite в DI\"\n\n[27]: \u003csrc/ViennaNET.Redis/\u003e \"Руководство по пакету ViennaNET.Redis\"\n\n[28]: \u003csrc/ViennaNET.Redis.DefaultConfiguration\u003e \"Пакет SimpleInjector для регистрации клиента ViennaNET.Redis в DI\"\n\n[29]: \u003csrc/ViennaNET.Security\u003e \"Контекст безопасности\"\n\n[30]: \u003csrc/ViennaNET.Security.Jwt\u003e \"Контекст безопасности JWT\"\n\n[31]: \u003csrc/ViennaNET.Utils\u003e \"Некоторые вспомогательные программы\"\n\n[32]: \u003csrc/ViennaNET.Validation\u003e \"Компонент предоставляющий Api для создания валидаторов\"\n\n[33]: \u003csrc/ViennaNET.Specifications\u003e \"Компонент предоставляющий Api для созданя спецификаций\"\n\n[35]: \u003csrc/ViennaNET.WebApi\u003e \"ViennaNET.WebApi\"\n\n[36]: \u003csrc/ViennaNET.HttpClient\u003e \"ViennaNET.HttpClient\"\n\n[37]: \u003csrc/Examples/1-empty-service\u003e \"Пример создания простой WebApi  службы на основе ViennaNET\"\n\n[38]: \u003csrc/Examples/2-mediator\u003e \"Пример использования ViennaNET.Mediator\"\n\n[39]: \u003csrc/Examples/3-validation\u003e \"Пример использования ViennaNET.Validation\"\n\n[40]: \u003csrc/Examples/4-orm\u003e \"Пример использования ViennaNET.Orm\"\n\n[42]: \u003csrc/Examples/6-messaginga\u003e \"Пример использования ViennaNET.Messaging\"\n\n[43]: \u003chttps://habr.com/ru/company/raiffeisenbank/blog/494830/\u003e \"ViennaNET part1\"\n\n[44]: \u003chttps://habr.com/ru/company/raiffeisenbank/blog/516540/\u003e \"ViennaNET part2\"\n\n[45]: \u003chttps://github.com/Raiffeisen-DGTL/ViennaNET/wiki/Video-materials\u003e \"Video materials\"\n\n[46]: \u003chttps://github.com/Raiffeisen-DGTL/ViennaNET/issues\u003e \"Open issues\"\n\n[47]: \u003chttps://github.com/Raiffeisen-DGTL/ViennaNET/wiki/Codestyle-conventions\u003e \"Codestyle conventions\"\n\n[48]: \u003cRELEASE_NOTES.md\u003e \"Release notes\"\n\n[49]: \u003chttps://github.com/Raiffeisen-DGTL/ViennaNET/actions/workflows/default.yml/badge.svg\u003e \"Pipeline status badge\"\n\n[50]: \u003chttps://github.com/Raiffeisen-DGTL/ViennaNET/actions/workflows/default.yml\u003e \"Default pipeline link\"\n\n[51]: \u003chttps://sonarcloud.io/api/project_badges/measure?project=Raiffeisen-DGTL_ViennaNET\u0026metric=alert_status\u003e \"Quality Gate Status badge\"\n\n[52]: \u003chttps://sonarcloud.io/dashboard?id=Raiffeisen-DGTL_ViennaNET\u003e \"Quality Gate Status link\"\n\n[53]: \u003chttps://sonarcloud.io/api/project_badges/measure?project=Raiffeisen-DGTL_ViennaNET\u0026metric=sqale_rating\u003e \"Maintainability rating badge\"\n\n[54]: \u003chttps://sonarcloud.io/dashboard?id=Raiffeisen-DGTL_ViennaNET\u003e \"Maintainability rating link\"\n\n[55]: \u003chttps://sonarcloud.io/api/project_badges/measure?project=Raiffeisen-DGTL_ViennaNET\u0026metric=security_rating\u003e \"Security Rating badge\"\n\n[56]: \u003chttps://sonarcloud.io/dashboard?id=Raiffeisen-DGTL_ViennaNET\u003e \"Security Rating link\"\n\n[57]: \u003chttps://sonarcloud.io/api/project_badges/measure?project=Raiffeisen-DGTL_ViennaNET\u0026metric=reliability_rating\u003e \"Reliability Rating badge\"\n\n[58]: \u003chttps://sonarcloud.io/dashboard?id=Raiffeisen-DGTL_ViennaNET\u003e \"Reliability Rating link\"\n\n[59]: \u003chttps://sonarcloud.io/api/project_badges/measure?project=Raiffeisen-DGTL_ViennaNET\u0026metric=coverage\u003e \"Coverage badge\"\n\n[60]: \u003chttps://sonarcloud.io/dashboard?id=Raiffeisen-DGTL_ViennaNET\u003e \"Coverage link\"\n","funding_links":[],"categories":["Application Frameworks","Architectural Patterns"],"sub_categories":["Examples","Microservices"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRaiffeisen-DGTL%2FViennaNET","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRaiffeisen-DGTL%2FViennaNET","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRaiffeisen-DGTL%2FViennaNET/lists"}