DocumentationPlugin 5.7.0

dotnet add package DocumentationPlugin --version 5.7.0                
NuGet\Install-Package DocumentationPlugin -Version 5.7.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="DocumentationPlugin" Version="5.7.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DocumentationPlugin --version 5.7.0                
#r "nuget: DocumentationPlugin, 5.7.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 DocumentationPlugin as a Cake Addin
#addin nuget:?package=DocumentationPlugin&version=5.7.0

// Install DocumentationPlugin as a Cake Tool
#tool nuget:?package=DocumentationPlugin&version=5.7.0                

This package is one of many packages that can be used with Plugin Manager which can be used to extend any c#/.net based application (MVC, Winform, WPF, MAUI etc) by using a Modular Approach.

Documentation Plugin

Documenting your code is the most fun aspect of software development, said no developer ever! But lets face it, you could create the fastest, richest API in the world, but if nobody know how to use it then where will it go? Nowhere is the answer. So documentation is important, not just for maintainability but to ensure that our hard earned endevours are used how they should be.

Since the beginning, the C# compiler has included an important, yet underused feature in the form of XML Documentation, this is a very simple yet powerful feature which allows developers to create inline documentation by adding specific XML tags to their code. This is often overlooked by developers because lets face it, if it was hard to write it should be hard to understand right? Wrong!

This feature not only allows other developers to understand what something is meant to do, with the right compiler directives it is also exported to an XML document that can be parsed and displayed, so all consumers of the code can easily understand how it is meant to be used, what a propery or parameter is used for etc etc. Essentially the generated XML file can be used as the basis for online documentation. An example of this feature can be seen below:


namespace DocumentationPlugin.Classes
{
    /// <summary>
    /// Settings which affect how the Documentation Plugin is configured.
    /// </summary>
    public sealed class DocumentationSettings
    {
        /// <summary>
        /// Default path where documentation files are located.
        /// 
        /// Default value: %AppPath%\\Plugins
        /// </summary>
        /// <value>string</value>
        [SettingDefault("%AppPath%\\Plugins")]
        public string Path { get; set; }
    }
}

There are many tools in and around the internet which can read and use the generated XML files, Documentation.Plugin is one such tool. Quite simply the documentation plugin has several views which allow this level of documentation to be rendered in an easy to read format. This in itself is useful but it doesn't finish the task at hand, to do this we must be able to customise the standard data with extra information that is useful and aids other developers. To achieve this their is an interface that is responsible for parsing the data, cross referencing various assemblies, namespaces, classes and other types which make up the documentaion.

The IDocumentationService interface exposes methods that allow XML documents to be parsed and seperated into a heirerarchical state that is displayed within a website. As well as this, the interface allows for extra data or information to be loaded from files which augment the automatically generated documentation. All additional data is read from files which contain a specific naming convention. If a file exists the data replaces the automatically generated data, meaning developers can expand their documentation easily.

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 is compatible.  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 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. 
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
5.7.0 69 12/20/2024
5.6.1 101 6/12/2024
5.6.0 249 12/1/2023
5.5.2 124 11/25/2023
5.5.1 147 10/12/2023
5.5.0 130 10/9/2023
5.4.0 144 9/2/2023
5.3.0 149 7/30/2023
5.1.0 164 6/11/2023
5.0.3 320 11/24/2022
5.0.0 332 11/13/2022
4.4.0 547 4/22/2022
4.3.0 437 10/27/2021
4.2.0 416 8/3/2021
4.1.0 451 2/7/2021
4.0.0 577 10/6/2020
3.3.0 564 4/10/2020
3.2.0 627 1/9/2020
3.0.1 572 12/1/2019
3.0.0 543 10/13/2019
2.5.0 613 9/7/2019
2.4.0 610 7/25/2019
2.3.0 614 6/27/2019

Supports net 6.0, net8.0 and net9.0