Woof.Internals 6.2.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Woof.Internals --version 6.2.0                
NuGet\Install-Package Woof.Internals -Version 6.2.0                
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="Woof.Internals" Version="6.2.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Woof.Internals --version 6.2.0                
#r "nuget: Woof.Internals, 6.2.0"                
#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.
// Install Woof.Internals as a Cake Addin
#addin nuget:?package=Woof.Internals&version=6.2.0

// Install Woof.Internals as a Cake Tool
#tool nuget:?package=Woof.Internals&version=6.2.0                

Woof.Internals

A part of the Woof Tookit by CodeDog.

Distributed under MIT License. (c)2022 by CodeDog, All rights reserved.


About

Contains some basic tools shared by many Woof Toolkit packages.

  1. ApiResolver A static class used to load implementations from other referenced modules that are optional for the package.
  2. Executable A static class providing information about the current executable file, including its location and file name.

This dependency is made not to repeat the same blocks of code in packages that often are used together.

Typical usage scenario: The Woof.DataProtection can be used with Woof.DataProtection.Linux but the Linux package is not a dependency of Woof.DataProtection. However, when both packages are included in the project, the Woof.DataProtection DP module will properly initialize the Linux module.

In order to do so it uses the ApiResolver class.

Many packages use access to file paths relative to the main executable file. They also use application executable name, with or without extension. In order to make it simple, the Executable class exists.

It is important that the Assembly.Location property does not work with builds published as a single file. The Executable class solves this problem.

It doesn't do much, but it replaces really next to impossible to remember invocations with simple, obvious names that doesn't require refering to documentation each time the property is needed.

Woof Toolkit is focussed on compact IoT apps inteneded to be built as single files. On Linux their configuratons are placed in the same directory, just with specific extensions. So the main executable term is occuring in the Toolkit quite often.

Configuration files in the same directory as the main executable is a very basic and default concept. Of course the location can be changed, but the default, the simplest option is this.

BTW, main executable directory and the current directory are not the same things. They are usually equal to each other, but it is not always the case.

Usage

See the XML documentation provided in sources.


Disclaimer

Woof Toolkit is a work in progress in constant development, however it's carefully maintained with production code quality.

PLEASE report all issues on GitHub!

Describe how to reproduce an issue. Also feel free to suggest new features or improvements.

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Woof.Internals:

Package Downloads
Woof.LinuxAdmin

Provides Linux administration tools using native libc platform invoke.

Woof.TestTerminal

Displays a Windows Terminal window with optional split panels.

Woof.DataProtection

Provides native Windows DataProtection API in a cross-platform abstraction. Use Woof.DataProtection.Linux for Linux DataProtection support.

Woof.Settings

Provides application settings in JSON file.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
7.0.0 349 8/6/2023
6.2.0 1,063 2/20/2022

Woof Toolkit 6.2 first release.