Bodoconsult.App.Abstractions
1.0.8
dotnet add package Bodoconsult.App.Abstractions --version 1.0.8
NuGet\Install-Package Bodoconsult.App.Abstractions -Version 1.0.8
<PackageReference Include="Bodoconsult.App.Abstractions" Version="1.0.8" />
<PackageVersion Include="Bodoconsult.App.Abstractions" Version="1.0.8" />
<PackageReference Include="Bodoconsult.App.Abstractions" />
paket add Bodoconsult.App.Abstractions --version 1.0.8
#r "nuget: Bodoconsult.App.Abstractions, 1.0.8"
#:package Bodoconsult.App.Abstractions@1.0.8
#addin nuget:?package=Bodoconsult.App.Abstractions&version=1.0.8
#tool nuget:?package=Bodoconsult.App.Abstractions&version=1.0.8
Bodoconsult.App
Overview
What does the library
Bodoconsult.App is a library with basic functionality for multilayered monolithic applications like database based client server apps. It delivers the following main functionality:
Application performance measurement (APM) tools for performnce logging
# Client notifications for technologies like GRPC, WebAPI, etc...
Prerequisites
If you get an exception "Could not load file or assembly 'Microsoft.Extensions.Logging.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. ..." you need to add the following packages to your app.
<PackageReference Include="log4net" Version="3.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.11" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.11" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.11" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.11" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.11" />
During JSON deserialization of appsettings.json this packages are required.
How to use the library
The source code contains NUnit test classes the following source code is extracted from. The samples below show the most helpful use cases for the library.
Dependency injection container DiContainer
A dependency container is a piece of software for simpler handling of dependencies between classes in the code of an app.
See page Dependency injection container DiContainer for details.
App start infrastructure for diverse app types
Bodoconsult.App contains the infrastructure to set up certain types of apps with commonly used features like
- Reading appsettings.json, keep it in memory for later usage and extract connection string and logging settings from it
- Setup a central logger
- Setup DI containers for production and testing environment
- Start the console app and run workload in a separate thread
- Unhandled exception handling
Bodoconsult.App currently supports the following MS Windows apps:
- Console app
- WinForms apps (classical WinForms app or service-like app with a very limited WinForms based UI)
- WPF (classical WPF app or service-like app with a very limited WPF based UI)
- Avalonia (classical Avalonia app or service-like app with a very limited Avalonia based UI)
- Windows background service
- Windows background service hosting a GRPC server service
See page app start infrastructure for details.
Logging with IAppLoggerProxy / AppLoggerProxy
AppLoggerProxy is a high performance logger infrastructure for multithreaded and or multitasked apps with low resulting garbage pressure.
See page Logging with IAppLoggerProxy / AppLoggerProxy for details
Performance logging
Performance logging infrastructure is implemented based on the https://learn.microsoft.com/en-us/dotnet/core/diagnostics/. So it can be used with professionell APM tools like Application Insights, dotnet-counters, and dotnet-monitor.
See page Performance logging for details.
Business transactions
See page Business transactions for details.
Client notifications
See page Client notifications for details.
More tools for developers
Bodoconsult.App provides more tools like WatchDog, ProducerConsumerQueue, BufferPool etc.
See page More tools for developers for details.
About us
Bodoconsult http://www.bodoconsult.de is a Munich based software company from Germany.
Robert Leisner is senior software developer at Bodoconsult. See his profile on http://www.bodoconsult.de/Curriculum_vitae_Robert_Leisner.pdf.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Microsoft.Extensions.Configuration.Json (>= 9.0.11)
- Microsoft.Extensions.DependencyInjection (>= 9.0.11)
- Microsoft.Extensions.Logging (>= 9.0.11)
- Microsoft.Extensions.Logging.Console (>= 9.0.11)
- Microsoft.Extensions.Logging.Debug (>= 9.0.11)
- Microsoft.Extensions.Logging.EventSource (>= 9.0.11)
NuGet packages (15)
Showing the top 5 NuGet packages that depend on Bodoconsult.App.Abstractions:
| Package | Downloads |
|---|---|
|
Bodoconsult.App
Package providing basic functionality like logging, application performance measuring etc. for layered apps in a client server scenario |
|
|
Bodoconsult.App.WinForms
Added IAppBuilder and base classes for it to support background services too with app infrastructure |
|
|
Bodoconsult.App.BackgroundService
Package providing basic functionality like logging, application performance measuring etc. for layered apps in a background service scenario |
|
|
Bodoconsult.App.GrpcBackgroundService
Package providing basic functionality like logging, application performance measuring etc. for layered apps in a background service scenario hosting a GRPC service |
|
|
Bodoconsult.App.Windows
Additonal tools for app infrastructure like eventlog logging and file tools for Windows OS |
GitHub repositories
This package is not used by any popular GitHub repositories.
Added API docu and new packages