Abraham.HomenetFramework 1.0.5

dotnet add package Abraham.HomenetFramework --version 1.0.5
                    
NuGet\Install-Package Abraham.HomenetFramework -Version 1.0.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Abraham.HomenetFramework" Version="1.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Abraham.HomenetFramework" Version="1.0.5" />
                    
Directory.Packages.props
<PackageReference Include="Abraham.HomenetFramework" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Abraham.HomenetFramework --version 1.0.5
                    
#r "nuget: Abraham.HomenetFramework, 1.0.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Abraham.HomenetFramework@1.0.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Abraham.HomenetFramework&version=1.0.5
                    
Install as a Cake Addin
#tool nuget:?package=Abraham.HomenetFramework&version=1.0.5
                    
Install as a Cake Tool

Abraham.HomenetFramework

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image GitHub Repo stars GitHub Repo stars

OVERVIEW

Contains a collection of functions that I typically need for worker applications.

  • Command line options parser
  • Configuration file reader
  • State file reader/writer
  • Scheduler for background tasks
  • NLog logger
  • MQTT client
  • Client for my personal home automation server

CREDITS

LICENSE

Licensed under Apache licence. https://www.apache.org/licenses/LICENSE-2.0

Compatibility

The nuget package was build with DotNET 6.

INSTALLATION

Install the Nuget package "Abraham.HomenetFramework" into your application (from https://www.nuget.org). Take my demo project as a template for your application.

The following code should only give an idea how to use it.

using Abraham.HomenetFramework;

public static void Main(string[] args)
{
    F.ParseCommandLineArguments();
    F.ReadConfiguration(F.CommandLineArguments.ConfigurationFile);
    F.ValidateConfiguration();
    F.InitLogger(F.CommandLineArguments.NlogConfigurationFile);
    PrintGreeting();
    HealthChecks();
    F.ReadStateFile(F.CommandLineArguments.StateFile);
    F.StartBackgroundWorker(MyBackgroundWorker, F.Config.IntervalInSeconds);


    DomainLogic();

        
    F.Logger.Debug($"Press any key to end the application.");
    Console.ReadKey();
    F.StopBackgroundJob();
    F.SaveStateFile(F.CommandLineArguments.StateFile);
}

DEMO APPLICATION

My demo will

  • read options from command line

  • read a state file containing a counter fale and save the current value when the app ends

  • log output to a log file which is rotated every monday at midnight. Watch the log file FrameworkDemo.log in your bin folder. Logging is widely configurable, see NLog documentation for details

  • install a background job that increments the counter by one every second (just as a demo)

  • watch the counter continue when you start the app the second time.

HOW TO INSTALL A NUGET PACKAGE

This is very simple:

  • Start Visual Studio (with NuGet installed)
  • Right-click on your project's References and choose "Manage NuGet Packages..."
  • Choose Online category from the left
  • Enter the name of the nuget package to the top right search and hit enter
  • Choose your package from search results and hit install
  • Done!

or from NuGet Command-Line:

Install-Package Abraham.HomenetFramework

AUTHOR

Oliver Abraham, mail@oliver-abraham.de, https://www.oliver-abraham.de

Please feel free to comment and suggest improvements!

SOURCE CODE

The source code is hosted at:

https://github.com/OliverAbraham/Abraham.HomenetFramework

The Nuget Package is hosted at:

https://www.nuget.org/packages/Abraham.HomenetFramework

SCREENSHOTS

MAKE A DONATION !

If you find this application useful, buy me a coffee! I would appreciate a small donation on https://www.buymeacoffee.com/oliverabraham

<a href="https://www.buymeacoffee.com/app/oliverabraham" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.5 116 1/24/2026
1.0.4 109 1/24/2026
1.0.3 114 1/11/2026
1.0.1 174 12/30/2024
1.0.0 167 12/21/2024

Updated to MQTT client 1.0.13