X10D.Hosting 4.0.0

Prefix Reserved
dotnet add package X10D.Hosting --version 4.0.0
                    
NuGet\Install-Package X10D.Hosting -Version 4.0.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="X10D.Hosting" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="X10D.Hosting" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="X10D.Hosting" />
                    
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 X10D.Hosting --version 4.0.0
                    
#r "nuget: X10D.Hosting, 4.0.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.
#:package X10D.Hosting@4.0.0
                    
#: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=X10D.Hosting&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=X10D.Hosting&version=4.0.0
                    
Install as a Cake Tool

<h1 align="center"><img src="branding_Banner.png"></h1> <p align="center"> <a href="https://github.com/oliverbooth/X10D/actions/workflows/dotnet.yml"><img src="https://img.shields.io/github/actions/workflow/status/oliverbooth/X10D/dotnet.yml?style=flat-square" alt="GitHub Workflow Status" title="GitHub Workflow Status"></a> <a href="https://github.com/oliverbooth/X10D/issues"><img src="https://img.shields.io/github/issues/oliverbooth/X10D?style=flat-square" alt="GitHub Issues" title="GitHub Issues"></a> <a href="https://app.codecov.io/gh/oliverbooth/X10D/"><img src="https://img.shields.io/codecov/c/github/oliverbooth/X10D?style=flat-square" alt="Coverage"></a> <a href="https://www.nuget.org/packages/X10D/"><img src="https://img.shields.io/nuget/dt/X10D?style=flat-square" alt="NuGet Downloads" title="NuGet Downloads"></a> <a href="https://www.nuget.org/packages/X10D/"><img src="https://img.shields.io/nuget/v/X10D?label=stable&style=flat-square" alt="Stable Version" title="Stable Version"></a> <a href="https://www.nuget.org/packages/X10D/"><img src="https://img.shields.io/nuget/vpre/X10D?label=nightly&style=flat-square" alt="Nightly Version" title="Nightly Version"></a> <a href="https://github.com/oliverbooth/X10D/blob/master/LICENSE.md"><img src="https://img.shields.io/github/license/oliverbooth/X10D?style=flat-square" alt="MIT License" title="MIT License"></a> </p>

About

X10D (pronounced extend), is a .NET package that provides extension methods for numerous types. The purpose of this library is to simplify a codebase by reducing the need for repeated code when performing common operations. Simplify your codebase. Take advantage of .NET. Use extension methods.

(I'm also dogfooding this library, so there's that.)

What are extension methods?

Extension methods are a clever .NET feature that augment existing types with new functionality. They are defined as static methods in a static class, and are called as if they were instance methods on the type they are extending. Take, for example, the following code:

public static class Program
{
    public static void Main()
    {
        string str = "Hello, world!";
        Console.WriteLine(str.Reverse());
    }
}

public static class StringExtensions
{
    public static string Reverse(this string str)
    {
        char[] chars = str.ToCharArray();
        Array.Reverse(chars);
        return new string(chars);
    }
}

This will print !dlrow ,olleH to the console. The Reverse method is defined in the StringExtensions class, yet is called as if it were an instance method on the str variable, even though it's not.

Why use extension methods?

Extension methods were introduced when LINQ was added to .NET. LINQ is a set of extension methods that provide a way to query, filter, and transform data. If you were to access LINQ's methods statically, you would have to write code like this:

public static class Program
{
    public static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        IEnumerable<int> evenNumbers = Enumerable.Where(numbers, x => x % 2 == 0);
        IEnumerable<int> doubledNumbers = Enumerable.Select(evenNumbers, x => x * 2);
        int sum = Enumerable.Sum(doubledNumbers);
        Console.WriteLine(sum);
    }
}

And if you wanted to one-line this, you'd have to write this:

public static class Program
{
    public static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        Console.WriteLine(Enumerable.Sum(Enumerable.Select(Enumerable.Where(numbers, x => x % 2 == 0), x => x * 2)));
    }
}

This is a lot of code to write, and it's not very readable. The nested method calls make it incredibly difficult to follow. However, because LINQ is implemented as extension methods, you can write the following code instead:

public static class Program
{
    public static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        Console.WriteLine(numbers.Where(x => x % 2 == 0).Select(x => x * 2).Sum());
    }
}

Because the methods are called as if they were instance methods on IEnumerable<T>, they can be chained together, making the code much more readable.

X10D aims to provide these same benefits as LINQ, but for dozens of other types and for countless other use cases. See the documentation for a complete breakdown of what's available.

Installation

NuGet installation

Install-Package X10D -Version 4.0.0

Manual installation

Download the latest release from this repository and adding a direct assembly reference for your chosen platform.

Documentation

Documentation and the API reference is available at https://oliverbooth.github.io/X10D/index.html. I'm sorry this took so long to get up and running. DocFX will be the death of me.

Contributing

Contributions are welcome. See CONTRIBUTING.md.

License

X10D is released under the MIT License. See here for more details.

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 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
4.0.0 685 6/12/2024
4.0.0-nightly.250 83 6/12/2024
4.0.0-nightly.246 146 8/28/2023
4.0.0-nightly.236 194 5/14/2023
4.0.0-nightly.234 147 4/14/2023
4.0.0-nightly.233 151 4/14/2023
4.0.0-nightly.232 137 4/13/2023
4.0.0-nightly.231 146 4/13/2023
4.0.0-nightly.230 140 4/13/2023
4.0.0-nightly.229 143 4/12/2023
4.0.0-nightly.228 149 4/10/2023
4.0.0-nightly.227 179 4/6/2023
4.0.0-nightly.226 147 4/6/2023
4.0.0-nightly.225 155 4/5/2023
3.3.1 639 8/21/2023
3.3.1-nightly.249 95 2/17/2024
3.3.1-nightly.248 82 2/17/2024
3.3.1-nightly.247 99 2/12/2024
3.3.1-nightly.242 135 8/21/2023
3.3.0 209 8/21/2023
3.3.0-nightly.241 139 8/21/2023
3.2.2 737 6/5/2023
3.2.2-nightly.240 139 8/9/2023
3.2.2-nightly.239 143 6/5/2023
3.2.0 388 4/3/2023
3.2.0-nightly.224 152 4/3/2023
3.2.0-nightly.223 138 4/3/2023
3.2.0-nightly.222 163 4/3/2023
3.2.0-nightly.221 153 4/3/2023
3.2.0-nightly.220 146 4/3/2023
3.2.0-nightly.219 149 4/3/2023
3.2.0-nightly.218 155 4/3/2023
3.2.0-nightly.217 148 4/3/2023
3.2.0-nightly.216 142 4/3/2023
3.2.0-nightly.215 148 4/3/2023
3.2.0-nightly.214 143 4/3/2023
3.2.0-nightly.213 149 4/3/2023
3.2.0-nightly.212 139 4/3/2023
3.2.0-nightly.211 152 4/2/2023
3.2.0-nightly.210 148 4/2/2023
3.2.0-nightly.208 148 4/2/2023
3.2.0-nightly.207 165 4/2/2023
3.2.0-nightly.206 148 4/2/2023
3.2.0-nightly.205 153 4/2/2023
3.2.0-nightly.204 151 4/2/2023
3.2.0-nightly.203 149 4/2/2023
3.2.0-nightly.202 167 4/2/2023
3.2.0-nightly.201 150 4/2/2023
3.2.0-nightly.200 153 4/2/2023
3.2.0-nightly.199 156 4/2/2023
3.2.0-nightly.198 163 4/2/2023
3.2.0-nightly.197 158 4/2/2023
3.2.0-nightly.196 150 4/2/2023
3.2.0-nightly.195 155 4/2/2023
3.2.0-nightly.193 150 4/2/2023
3.2.0-nightly.192 139 4/1/2023
3.2.0-nightly.191 147 4/1/2023
3.2.0-nightly.190 148 4/1/2023
3.2.0-nightly.189 157 4/1/2023
3.2.0-nightly.188 157 4/1/2023
3.2.0-nightly.186 161 3/31/2023
3.2.0-nightly.185 154 3/31/2023
3.2.0-nightly.184 144 3/31/2023
3.2.0-nightly.183 145 3/31/2023
3.2.0-nightly.182 143 3/31/2023
3.2.0-nightly.181 158 3/31/2023
3.2.0-nightly.180 149 3/31/2023
3.2.0-nightly.179 154 3/31/2023
3.2.0-nightly.178 128 3/30/2023
3.2.0-nightly.177 146 3/30/2023
3.2.0-nightly.176 135 3/30/2023
3.2.0-nightly.175 137 3/30/2023
3.2.0-nightly.174 151 3/29/2023
3.2.0-nightly.173 157 3/29/2023
3.2.0-nightly.172 157 3/29/2023
3.2.0-nightly.171 165 3/28/2023
3.2.0-nightly.170 151 3/28/2023
3.2.0-nightly.169 149 3/28/2023
3.2.0-nightly.168 146 3/28/2023
3.2.0-nightly.165 174 3/26/2023
3.2.0-nightly.164 162 3/23/2023
3.2.0-nightly.163 259 2/28/2023
3.2.0-nightly.162 155 2/27/2023
3.2.0-nightly.161 162 2/27/2023
3.2.0-nightly.160 155 2/27/2023
3.2.0-nightly.159 150 2/27/2023
3.2.0-nightly.158 155 2/26/2023
3.2.0-nightly.157 161 2/26/2023
3.2.0-nightly.156 163 2/26/2023
3.2.0-nightly.155 158 2/26/2023
3.2.0-nightly.154 157 2/26/2023
3.2.0-nightly.153 156 2/26/2023
3.2.0-nightly.152 293 2/19/2023
3.2.0-nightly.151 180 2/5/2023
3.2.0-nightly.150 181 12/31/2022
3.2.0-nightly.149 206 12/22/2022
3.2.0-nightly.148 164 12/22/2022
3.2.0-nightly.147 251 12/21/2022
3.2.0-nightly.145 184 12/6/2022
3.2.0-nightly.144 185 12/1/2022
3.2.0-nightly.143 166 12/1/2022
3.2.0-nightly.142 167 11/29/2022
3.2.0-nightly.141 178 11/29/2022
3.2.0-nightly.140 178 11/29/2022
3.2.0-nightly.139 175 11/29/2022
3.2.0-nightly.136 155 11/29/2022
3.2.0-nightly.135 169 11/28/2022
3.2.0-nightly.134 185 11/26/2022
3.2.0-nightly.133 461 7/30/2022
3.2.0-nightly.132 284 7/23/2022
3.2.0-nightly.131 179 7/23/2022
3.2.0-nightly.130 184 7/21/2022
3.2.0-nightly.129 195 7/21/2022
3.2.0-nightly.128 211 7/21/2022
3.2.0-nightly.127 199 7/20/2022

See CHANGELOG.md for a full list of changes.