Horseshoe.NET
4.0.0.1
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
<PackageReference Include="Horseshoe.NET" Version="4.0.0.1" />
<PackageVersion Include="Horseshoe.NET" Version="4.0.0.1" />
<PackageReference Include="Horseshoe.NET" />
paket add Horseshoe.NET --version 4.0.0.1
#r "nuget: Horseshoe.NET, 4.0.0.1"
#:package Horseshoe.NET@4.0.0.1
#addin nuget:?package=Horseshoe.NET&version=4.0.0.1
#tool nuget:?package=Horseshoe.NET&version=4.0.0.1
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 | Versions 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. |
-
.NETFramework 4.6.2
- Horseshoe.NET.Configuration (>= 4.0.0)
-
.NETStandard 2.0
- Horseshoe.NET.Configuration (>= 4.0.0)
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 |