Horseshoe.NET 4.0.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Horseshoe.NET --version 4.0.0.1
                    
NuGet\Install-Package Horseshoe.NET -Version 4.0.0.1
                    
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="Horseshoe.NET" Version="4.0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Horseshoe.NET" Version="4.0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Horseshoe.NET" />
                    
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 Horseshoe.NET --version 4.0.0.1
                    
#r "nuget: Horseshoe.NET, 4.0.0.1"
                    
#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 Horseshoe.NET@4.0.0.1
                    
#: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=Horseshoe.NET&version=4.0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Horseshoe.NET&version=4.0.0.1
                    
Install as a Cake Tool

Horseshoe.NET icon

Horseshoe.NET

A suite of .NET utilities with a dual purpose: simplify coding tasks and offer a variety of unique capabilities for developers. What this represents is a career's worth of collecting useful code snippets packaged as a NuGet library that any .NET developer can utilize.

A large portion of this code base is dedicated to replacing verbose and repetetive boilerplate code for such things as configuration, ADO.NET / ODP.NET database queries and web API calls with highly customizable single line code replacements.

Packages and namespaces

  • (NuGet package)
    • (more namespaces)
  • Horseshoe.NET
    • Horseshoe.NET.Bootstrap
    • Horseshoe.NET.Collections
    • Horseshoe.NET.Compare
    • Horseshoe.NET.ConsoleX
      • Horseshoe.NET.ConsoleX.Plugins
    • Horseshoe.NET.Crypto
    • Horseshoe.NET.DataImport
    • Horseshoe.NET.DateAndTime
    • Horseshoe.NET.Db
    • Horseshoe.NET.Dotnet
    • Horseshoe.NET.Email
      • Horseshoe.NET.Email.Sms
    • Horseshoe.NET.Ftp
    • Horseshoe.NET.IO
      • Horseshoe.NET.IO.FileFilter
      • Horseshoe.NET.IO.FileTraversal
    • Horseshoe.NET.ObjectsTypesAndValues
    • Horseshoe.NET.OleDb (.NET Framework only)
    • Horseshoe.NET.Primitives
    • Horseshoe.NET.RelayMessages
    • Horseshoe.NET.RelayProgress
    • Horseshoe.NET.Text
      • Horseshoe.NET.Text.TextClean
      • Horseshoe.NET.Text.TextGrid
    • Horseshoe.NET.Xml
      • Horseshoe.NET.Xml.Doc
  • Horseshoe.NET.ActiveDirectory
  • Horseshoe.NET.Caching
  • Horseshoe.NET.Caching.Abstractions (namespace Horseshoe.NET.Caching)
  • Horseshoe.NET.Configuration
  • Horseshoe.NET.Excel
  • Horseshoe.NET.Finance
  • Horseshoe.NET.Http
    • Horseshoe.NET.Http.Mvc
    • Horseshoe.NET.Http.ReportingServices
    • Horseshoe.NET.Http.WebForms (.NET Framework only)
  • Horseshoe.NET.Jwt
  • Horseshoe.NET.Jwt.Abstractions (namespace Horseshoe.NET.Jwt)
  • Horseshoe.NET.Odbc
  • Horseshoe.NET.OracleDb
  • Horseshoe.NET.SecureIO
  • Horseshoe.NET.SqlDb

Code examples

Horseshoe.NET.Configuration
<appSettings>
  <add key="myInt" value="90" />
  <add key="myHexInt" value="5a" />
  <add key="myInt_Annotation" value="5a[hex]" />
  <add key="myInt_Format" value="0x5a" />
</appSettings>

// Getting an int...
Config.Get<int>("myInt");              // value="90" -> 90

// Getting a hex formatted int...
Config.Get<int>("myHexInt",            // value="5a" -> 90
    numberStyle: NumberStyles.HexNumber);

// Getting a hex formatted int w/ key annotation...
Config.Get<int>("myHexInt[hex]");      // value="5a" -> 90

// Getting a hex formatted int w/ data annotation or data format...
Config.Get<int>("myInt_Annotation");   // value="5a[hex]" -> 90
Config.Get<int>("myInt_Format");       // value="0x5a" -> 90

// Before Horseshoe.NET... 
var stringValue = ConfigurationManager.AppSettings["myInt"];
if (stringValue != null)
    return int.Parse(stringValue);
Horseshoe.NET.ConsoleX
Console.WriteLine("Select your preferred day(s) for playing pickleball.");
var daysOfWeek = new [] { "Sunday", "Monday", ... , "Friday", "Saturday" };
result = PromptX.**List**(daysOfWeek, selectionMode: ListSelectionMode.ZeroOrMore);
result.selectedIndices   // [ 2, 3, 4 ]
result.selectedItems     // [ "Monday", "Tuesday", "Wednesday" ]

// console input/output        
[1] Sunday
[2] Monday
[3] Tuesday
[4] Wednesday
[5] Thursday
[6] Friday
[7] Saturday
> 0               // ** 0 is outside the allowed range: 1 to 7 **
                  // Press any key to try again…
> 2               // [ "Monday" ]
> 2-4,6           // [ "Monday", "Tuesday", "Wednesday", "Friday" ]
> all except 1,7  // [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ]
> none (or blank) // [ ]
Horseshoe.NET.Crypto
var plaintext = "H1ghW@y2Hev3n";
var options = new CryptoOptions { IsCiphertextBase64Encoded = true };
ciphertext = Encrypt.String(plaintext, options);   // "2puPR6R9//bo/D3hK+bONQ=="
plaintext = Decrypt.String(ciphertext, options);   // "H1ghW@y2Hev3n"
Horseshoe.NET.Finance
FinanceEngine.GenerateCreditPayoffProjection(accounts, snowballing: true, extraSnowballAmount: 100m).RenderToTextGrid();

Date     │ Line of Credit                   │ Credit Card                       │ Totals                 
         │ APR: 6.24% ($20.80)              │ Acct #: *7890                     │                        
         │ Balance: $4,000.00               │ APR: 12.99% ($108.25)             │                        
         │ Min Payment: $150.00             │ Balance: $10,000.00               │                        
         │                                  │ Min Payment: $200.00              │                        
----     │ --------------------             │ ---------------------             │ ------                 
         │ Pmt     Pri     Int    Bal       │ Pmt     Pri     Int     Bal       │ Pmt     Pri     Int    
Feb 2025 │ $250.00 $229.20 $20.80 $3,770.80 │ $200.00 $ 91.75 $108.25 $9,908.25 │ $450.00 $320.95 $129.05
Mar 2025 │ $250.00 $230.39 $19.61 $3,540.41 │ $200.00 $ 92.74 $107.26 $9,815.51 │ $450.00 $323.13 $126.87
Apr 2025 │ $250.00 $231.59 $18.41 $3,308.82 │ $200.00 $ 93.75 $106.25 $9,721.76 │ $450.00 $325.34 $124.66
May 2025 │ $250.00 $232.79 $17.21 $3,076.03 │ $200.00 $ 94.76 $105.24 $9,627.00 │ $450.00 $327.55 $122.45
Jun 2025 │ $250.00 $234.00 $16.00 $2,842.03 │ $200.00 $ 95.79 $104.21 $9,531.21 │ $450.00 $329.79 $120.21
Jul 2025 │ $250.00 $235.22 $14.78 $2,606.81 │ $200.00 $ 96.82 $103.18 $9,434.39 │ $450.00 $332.04 $117.96
Aug 2025 │ $250.00 $236.44 $13.56 $2,370.37 │ $200.00 $ 97.87 $102.13 $9,336.52 │ $450.00 $334.31 $115.69
Sep 2025 │ $250.00 $237.67 $12.33 $2,132.70 │ $200.00 $ 98.93 $101.07 $9,237.59 │ $450.00 $336.60 $113.40
Oct 2025 │ $250.00 $238.91 $11.09 $1,893.79 │ $200.00 $100.00 $100.00 $9,137.59 │ $450.00 $338.91 $111.09
Nov 2025 │ $250.00 $240.15 $ 9.85 $1,653.64 │ $200.00 $101.09 $ 98.91 $9,036.50 │ $450.00 $341.24 $108.76
Dec 2025 │ $250.00 $241.40 $ 8.60 $1,412.24 │ $200.00 $102.18 $ 97.82 $8,934.32 │ $450.00 $343.58 $106.42
Jan 2026 │ $250.00 $242.66 $ 7.34 $1,169.58 │ $200.00 $103.29 $ 96.71 $8,831.03 │ $450.00 $345.95 $104.05
Feb 2026 │ $250.00 $243.92 $ 6.08 $  925.66 │ $200.00 $104.40 $ 95.60 $8,726.63 │ $450.00 $348.32 $101.68
Mar 2026 │ $250.00 $245.19 $ 4.81 $  680.47 │ $200.00 $105.53 $ 94.47 $8,621.10 │ $450.00 $350.72 $ 99.28
Apr 2026 │ $250.00 $246.46 $ 3.54 $  434.01 │ $200.00 $106.68 $ 93.32 $8,514.42 │ $450.00 $353.14 $ 96.86
May 2026 │ $250.00 $247.74 $ 2.26 $  186.27 │ $200.00 $107.83 $ 92.17 $8,406.59 │ $450.00 $355.57 $ 94.43
Jun 2026 │ $187.24 $186.27 $ 0.97 $    0.00 │ $262.76 $171.76 $ 91.00 $8,234.83 │ $450.00 $358.03 $ 91.97
Jul 2026 │                                  │ $450.00 $360.86 $ 89.14 $7,873.97 │ $450.00 $360.86 $ 89.14
Aug 2026 │                                  │ $450.00 $364.76 $ 85.24 $7,509.21 │ $450.00 $364.76 $ 85.24
Sep 2026 │                                  │ $450.00 $368.71 $ 81.29 $7,140.50 │ $450.00 $368.71 $ 81.29
Oct 2026 │                                  │ $450.00 $372.70 $ 77.30 $6,767.80 │ $450.00 $372.70 $ 77.30
Nov 2026 │                                  │ $450.00 $376.74 $ 73.26 $6,391.06 │ $450.00 $376.74 $ 73.26
Dec 2026 │                                  │ $450.00 $380.82 $ 69.18 $6,010.24 │ $450.00 $380.82 $ 69.18
Jan 2027 │                                  │ $450.00 $384.94 $ 65.06 $5,625.30 │ $450.00 $384.94 $ 65.06
Feb 2027 │                                  │ $450.00 $389.11 $ 60.89 $5,236.19 │ $450.00 $389.11 $ 60.89
Mar 2027 │                                  │ $450.00 $393.32 $ 56.68 $4,842.87 │ $450.00 $393.32 $ 56.68
Apr 2027 │                                  │ $450.00 $397.58 $ 52.42 $4,445.29 │ $450.00 $397.58 $ 52.42
May 2027 │                                  │ $450.00 $401.88 $ 48.12 $4,043.41 │ $450.00 $401.88 $ 48.12
Jun 2027 │                                  │ $450.00 $406.23 $ 43.77 $3,637.18 │ $450.00 $406.23 $ 43.77
Jul 2027 │                                  │ $450.00 $410.63 $ 39.37 $3,226.55 │ $450.00 $410.63 $ 39.37
Aug 2027 │                                  │ $450.00 $415.07 $ 34.93 $2,811.48 │ $450.00 $415.07 $ 34.93
Sep 2027 │                                  │ $450.00 $419.57 $ 30.43 $2,391.91 │ $450.00 $419.57 $ 30.43
Oct 2027 │                                  │ $450.00 $424.11 $ 25.89 $1,967.80 │ $450.00 $424.11 $ 25.89
Nov 2027 │                                  │ $450.00 $428.70 $ 21.30 $1,539.10 │ $450.00 $428.70 $ 21.30
Dec 2027 │                                  │ $450.00 $433.34 $ 16.66 $1,105.76 │ $450.00 $433.34 $ 16.66
Jan 2028 │                                  │ $450.00 $438.03 $ 11.97 $  667.73 │ $450.00 $438.03 $ 11.97
Feb 2028 │                                  │ $450.00 $442.77 $  7.23 $  224.96 │ $450.00 $442.77 $  7.23
Mar 2028 │                                  │ $227.40 $224.96 $  2.44 $    0.00 │ $227.40 $224.96 $  2.44
Horseshoe.NET.Text
var phrase = "Å¢t Øñę\u0000”;                    // Unicode > ASCII & drop ctrls
TextClean.ToAsciiPrintable(phrase);              // "Act One"  
TextUtil.Reveal(phrase, options: RevealOptions.All);
// "Å¢t Øñę" -> ['Å'-197]['¢'-162]['t'-116][space]['Ø'-216]['ñ'-241]['ę'-281][NUL]
// "Act One" -> [‘A’-65 ][‘c’-99 ][’t’-116][space]['O'-79 ][’n'-110]['e'-101]
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (9)

Showing the top 5 NuGet packages that depend on Horseshoe.NET:

Package Downloads
Horseshoe.NET.OracleDb

ODP.NET-based native Oracle data access wrappers

Horseshoe.NET.Odbc

ADO.NET-based ODBC data access wrappers

Horseshoe.NET.Excel

An Excel file import utility for .NET (uses NPOI)

Horseshoe.NET.ActiveDirectory

Services for Active Directory authentication and LDAP querying.

Horseshoe.NET.SqlDb

ADO.NET-based SQL Server data access wrappers

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.4 301 6/26/2025
4.0.3 331 5/20/2025
4.0.1 396 2/8/2025
4.0.0.2 355 2/5/2025
4.0.0.1 119 2/5/2025
4.0.0 127 2/5/2025
3.1.6.5 179 12/11/2024
3.1.6.4 121 12/9/2024
3.1.6.3 114 12/9/2024
3.1.6.2 121 12/8/2024
3.1.6 900 12/4/2024
3.1.5 571 10/24/2024
3.1.4.2 150 7/18/2024
3.1.4.1 110 7/17/2024
3.1.4 527 7/5/2024
3.1.3 597 6/18/2024
3.1.2.2 229 6/17/2024
3.1.2.1 209 6/17/2024
3.1.2 498 6/8/2024
3.1.1 492 5/20/2024
3.1.0 1,700 1/27/2024
3.0.2.1 1,799 5/12/2023
3.0.2 3,180 5/5/2023
3.0.1 5,071 2/20/2023
3.0.0.2 3,980 2/14/2023
3.0.0.1 3,875 2/13/2023
3.0.0 3,944 2/9/2023
2.0.4.1 2,216 11/5/2022
2.0.4 5,007 11/5/2022
2.0.3 5,115 10/31/2022
2.0.2 6,345 10/14/2022
2.0.1 5,465 10/7/2022
2.0.0 5,290 10/6/2022
1.6.2 5,853 9/12/2022
1.6.1 5,721 9/6/2022
1.6.0 6,526 9/5/2022
1.5.9 5,603 9/5/2022
1.5.8 5,681 8/24/2022
1.5.7 5,584 8/12/2022
1.5.6 6,159 7/28/2022
1.5.5 6,619 6/1/2022
1.5.4 6,312 4/15/2022
1.5.3.1 2,047 4/13/2022
1.5.3 5,749 4/13/2022
1.5.2 5,897 4/1/2022
1.5.1 6,659 3/30/2022
1.5.0 5,704 3/4/2022
1.4.4.2 5,726 2/12/2022
1.4.4.1 5,362 2/5/2022
1.4.4 5,358 2/4/2022
1.4.3.1 5,311 1/17/2022
1.4.3 5,269 1/17/2022
1.4.2 4,416 1/6/2022
1.4.1 3,962 12/30/2021
1.4.0.1 1,930 12/9/2021
1.4.0 3,887 12/8/2021
1.3.3.6 1,986 11/10/2021
1.3.3.5 1,948 11/6/2021
1.3.3.4 2,040 11/1/2021
1.3.3.3 2,031 10/26/2021
1.3.3.2 2,047 10/25/2021
1.3.3.1 2,065 10/25/2021
1.3.3 3,909 10/22/2021
1.3.2 4,507 10/21/2021
1.3.1.1 2,004 10/20/2021
1.3.1 3,877 10/15/2021
1.3.0 3,893 10/13/2021
1.2.4.2 3,986 8/5/2021
1.2.4 5,094 8/5/2021
1.2.3.4 3,294 7/25/2021
1.2.3.3 3,375 7/24/2021
1.2.3.2 4,127 5/21/2021
1.2.3.1 2,033 5/19/2021
1.2.3 3,849 5/19/2021
1.2.2 3,227 5/14/2021
1.2.1 4,019 4/7/2021
1.2.0.8 1,963 4/7/2021
1.2.0.7 2,118 4/7/2021
1.2.0.6 2,044 4/6/2021
1.2.0.5 2,055 4/5/2021
1.2.0.4 2,031 4/5/2021
1.2.0.3 3,952 4/5/2021
1.2.0.2 2,057 4/1/2021
1.2.0.1 4,026 3/27/2021
1.2.0 3,880 3/26/2021
1.1.3 4,109 1/20/2021
1.1.2 3,628 12/17/2020
1.1.1.1 2,217 12/17/2020
1.1.1 4,192 12/1/2020
1.1.0.6 2,276 11/20/2020
1.1.0.5 2,444 11/12/2020
1.1.0.4 2,271 11/10/2020
1.1.0.3 2,271 11/3/2020
1.1.0.2 2,321 10/31/2020
1.1.0.1 2,276 10/12/2020
1.1.0 4,237 9/15/2020
1.0.9.9 2,406 9/15/2020
1.0.9.8 2,465 9/15/2020
1.0.9.7 2,470 9/15/2020
1.0.9.6 2,499 9/15/2020
1.0.9.5 4,227 9/15/2020
1.0.9.4 4,262 9/14/2020
1.0.9.3 4,223 9/9/2020
1.0.9.2 4,180 9/3/2020
1.0.9.1 4,290 8/20/2020
1.0.9 4,418 8/8/2020
1.0.8.2 2,376 6/24/2020
1.0.8.1 2,321 6/24/2020
1.0.8 4,213 3/23/2020
1.0.7.1-beta 2,219 3/23/2020
1.0.7 4,155 3/22/2020
1.0.6 4,175 3/18/2020
1.0.3 5,860 3/12/2020
1.0.2 4,066 3/11/2020
1.0.1 4,077 3/7/2020
1.0.0 4,248 3/4/2020
0.9.5.2-beta 2,931 3/2/2020
0.9.5.1-beta 3,093 3/2/2020
0.9.5-beta 3,211 2/28/2020
0.9.4.6-beta 2,127 2/27/2020
0.9.4.5-beta 3,262 2/26/2020
0.9.4.4-beta 2,176 2/26/2020
0.9.4.3-beta 3,360 2/25/2020
0.9.4.2-beta 2,128 2/24/2020
0.9.4.1-beta 2,124 2/24/2020
0.9.4-beta 3,323 2/20/2020
0.9.3.8-beta 2,193 2/18/2020
0.9.3.7-beta 3,164 2/18/2020
0.9.3.6-beta 3,209 2/17/2020
0.9.3.5-beta 3,130 2/14/2020
0.9.3.3-beta 3,387 2/6/2020
0.9.3.2-beta 2,169 2/5/2020
0.9.3.1-beta 3,350 2/2/2020
0.9.3-beta 3,375 2/2/2020
0.9.2.8-beta 2,405 1/30/2020
0.9.2.7-beta 2,326 1/29/2020
0.9.2.6-beta 2,404 1/28/2020
0.9.2.5-beta 2,367 1/25/2020
0.9.2.4-beta 2,404 1/22/2020
0.9.2.3-beta 2,305 1/19/2020
0.9.2.1-beta 2,498 1/17/2020
0.9.2-beta 2,258 1/16/2020
0.9.0-beta 2,338 1/7/2020