Horseshoe.NET
4.0.0.2
dotnet add package Horseshoe.NET --version 4.0.0.2
NuGet\Install-Package Horseshoe.NET -Version 4.0.0.2
<PackageReference Include="Horseshoe.NET" Version="4.0.0.2" />
paket add Horseshoe.NET --version 4.0.0.2
#r "nuget: Horseshoe.NET, 4.0.0.2"
// Install Horseshoe.NET as a Cake Addin #addin nuget:?package=Horseshoe.NET&version=4.0.0.2 // Install Horseshoe.NET as a Cake Tool #tool nuget:?package=Horseshoe.NET&version=4.0.0.2
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, repetitive boilerplate code for tasks such 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. |
.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.2)
-
.NETStandard 2.0
- Horseshoe.NET.Configuration (>= 4.0.0.2)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Horseshoe.NET:
Package | Downloads |
---|---|
Horseshoe.NET.Excel
An Excel file import utility for .NET (uses NPOI) |
|
Horseshoe.NET.Finance
A suite of basic financial formulas and a debt payoff projection tool with optional snowballing |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
4.0.0.2 | 0 | 2/5/2025 |
4.0.0.1 | 0 | 2/5/2025 |
4.0.0 | 0 | 2/5/2025 |
3.1.6.5 | 126 | 12/11/2024 |
3.1.6.4 | 92 | 12/9/2024 |
3.1.6.3 | 89 | 12/9/2024 |
3.1.6.2 | 102 | 12/8/2024 |
3.1.6 | 383 | 12/4/2024 |
3.1.5 | 551 | 10/24/2024 |
3.1.4.2 | 133 | 7/18/2024 |
3.1.4.1 | 89 | 7/17/2024 |
3.1.4 | 499 | 7/5/2024 |
3.1.3 | 574 | 6/18/2024 |
3.1.2.2 | 211 | 6/17/2024 |
3.1.2.1 | 184 | 6/17/2024 |
3.1.2 | 446 | 6/8/2024 |
3.1.1 | 441 | 5/20/2024 |
3.1.0 | 1,614 | 1/27/2024 |
3.0.2.1 | 1,767 | 5/12/2023 |
3.0.2 | 3,101 | 5/5/2023 |
3.0.1 | 5,005 | 2/20/2023 |
3.0.0.2 | 3,919 | 2/14/2023 |
3.0.0.1 | 3,818 | 2/13/2023 |
3.0.0 | 3,908 | 2/9/2023 |
2.0.4.1 | 2,154 | 11/5/2022 |
2.0.4 | 4,952 | 11/5/2022 |
2.0.3 | 5,061 | 10/31/2022 |
2.0.2 | 6,264 | 10/14/2022 |
2.0.1 | 5,395 | 10/7/2022 |
2.0.0 | 5,239 | 10/6/2022 |
1.6.2 | 5,805 | 9/12/2022 |
1.6.1 | 5,670 | 9/6/2022 |
1.6.0 | 6,489 | 9/5/2022 |
1.5.9 | 5,570 | 9/5/2022 |
1.5.8 | 5,620 | 8/24/2022 |
1.5.7 | 5,532 | 8/12/2022 |
1.5.6 | 6,078 | 7/28/2022 |
1.5.5 | 6,565 | 6/1/2022 |
1.5.4 | 6,263 | 4/15/2022 |
1.5.3.1 | 2,001 | 4/13/2022 |
1.5.3 | 5,663 | 4/13/2022 |
1.5.2 | 5,828 | 4/1/2022 |
1.5.1 | 6,599 | 3/30/2022 |
1.5.0 | 5,641 | 3/4/2022 |
1.4.4.2 | 5,669 | 2/12/2022 |
1.4.4.1 | 5,294 | 2/5/2022 |
1.4.4 | 5,305 | 2/4/2022 |
1.4.3.1 | 5,261 | 1/17/2022 |
1.4.3 | 5,216 | 1/17/2022 |
1.4.2 | 4,367 | 1/6/2022 |
1.4.1 | 3,899 | 12/30/2021 |
1.4.0.1 | 1,879 | 12/9/2021 |
1.4.0 | 3,824 | 12/8/2021 |
1.3.3.6 | 1,923 | 11/10/2021 |
1.3.3.5 | 1,884 | 11/6/2021 |
1.3.3.4 | 1,985 | 11/1/2021 |
1.3.3.3 | 1,979 | 10/26/2021 |
1.3.3.2 | 1,950 | 10/25/2021 |
1.3.3.1 | 2,011 | 10/25/2021 |
1.3.3 | 3,859 | 10/22/2021 |
1.3.2 | 4,390 | 10/21/2021 |
1.3.1.1 | 1,944 | 10/20/2021 |
1.3.1 | 3,823 | 10/15/2021 |
1.3.0 | 3,836 | 10/13/2021 |
1.2.4.2 | 3,921 | 8/5/2021 |
1.2.4 | 5,034 | 8/5/2021 |
1.2.3.4 | 3,234 | 7/25/2021 |
1.2.3.3 | 3,283 | 7/24/2021 |
1.2.3.2 | 4,073 | 5/21/2021 |
1.2.3.1 | 1,962 | 5/19/2021 |
1.2.3 | 3,796 | 5/19/2021 |
1.2.2 | 3,170 | 5/14/2021 |
1.2.1 | 3,964 | 4/7/2021 |
1.2.0.8 | 1,907 | 4/7/2021 |
1.2.0.7 | 2,041 | 4/7/2021 |
1.2.0.6 | 1,960 | 4/6/2021 |
1.2.0.5 | 1,973 | 4/5/2021 |
1.2.0.4 | 1,960 | 4/5/2021 |
1.2.0.3 | 3,872 | 4/5/2021 |
1.2.0.2 | 1,980 | 4/1/2021 |
1.2.0.1 | 3,970 | 3/27/2021 |
1.2.0 | 3,819 | 3/26/2021 |
1.1.3 | 4,031 | 1/20/2021 |
1.1.2 | 3,483 | 12/17/2020 |
1.1.1.1 | 2,155 | 12/17/2020 |
1.1.1 | 4,125 | 12/1/2020 |
1.1.0.6 | 2,204 | 11/20/2020 |
1.1.0.5 | 2,378 | 11/12/2020 |
1.1.0.4 | 2,203 | 11/10/2020 |
1.1.0.3 | 2,198 | 11/3/2020 |
1.1.0.2 | 2,257 | 10/31/2020 |
1.1.0.1 | 2,204 | 10/12/2020 |
1.1.0 | 4,140 | 9/15/2020 |
1.0.9.9 | 2,338 | 9/15/2020 |
1.0.9.8 | 2,396 | 9/15/2020 |
1.0.9.7 | 2,395 | 9/15/2020 |
1.0.9.6 | 2,431 | 9/15/2020 |
1.0.9.5 | 4,162 | 9/15/2020 |
1.0.9.4 | 4,182 | 9/14/2020 |
1.0.9.3 | 4,162 | 9/9/2020 |
1.0.9.2 | 4,112 | 9/3/2020 |
1.0.9.1 | 4,181 | 8/20/2020 |
1.0.9 | 4,357 | 8/8/2020 |
1.0.8.2 | 2,288 | 6/24/2020 |
1.0.8.1 | 2,246 | 6/24/2020 |
1.0.8 | 4,125 | 3/23/2020 |
1.0.7.1-beta | 2,135 | 3/23/2020 |
1.0.7 | 4,084 | 3/22/2020 |
1.0.6 | 4,064 | 3/18/2020 |
1.0.3 | 5,782 | 3/12/2020 |
1.0.2 | 3,996 | 3/11/2020 |
1.0.1 | 3,985 | 3/7/2020 |
1.0.0 | 4,166 | 3/4/2020 |
0.9.5.2-beta | 2,858 | 3/2/2020 |
0.9.5.1-beta | 3,003 | 3/2/2020 |
0.9.5-beta | 3,140 | 2/28/2020 |
0.9.4.6-beta | 2,059 | 2/27/2020 |
0.9.4.5-beta | 3,184 | 2/26/2020 |
0.9.4.4-beta | 2,105 | 2/26/2020 |
0.9.4.3-beta | 3,282 | 2/25/2020 |
0.9.4.2-beta | 2,040 | 2/24/2020 |
0.9.4.1-beta | 2,050 | 2/24/2020 |
0.9.4-beta | 3,250 | 2/20/2020 |
0.9.3.8-beta | 2,120 | 2/18/2020 |
0.9.3.7-beta | 3,094 | 2/18/2020 |
0.9.3.6-beta | 3,135 | 2/17/2020 |
0.9.3.5-beta | 3,056 | 2/14/2020 |
0.9.3.3-beta | 3,288 | 2/6/2020 |
0.9.3.2-beta | 2,098 | 2/5/2020 |
0.9.3.1-beta | 3,278 | 2/2/2020 |
0.9.3-beta | 3,302 | 2/2/2020 |
0.9.2.8-beta | 2,333 | 1/30/2020 |
0.9.2.7-beta | 2,256 | 1/29/2020 |
0.9.2.6-beta | 2,324 | 1/28/2020 |
0.9.2.5-beta | 2,294 | 1/25/2020 |
0.9.2.4-beta | 2,309 | 1/22/2020 |
0.9.2.3-beta | 2,237 | 1/19/2020 |
0.9.2.1-beta | 2,427 | 1/17/2020 |
0.9.2-beta | 2,184 | 1/16/2020 |
0.9.0-beta | 2,243 | 1/7/2020 |