|The WizardWrx .NET API, which has been on GitHub - txwizard/WizardWrx_NET_API for several years, is finally available as a set of NuGet packages. Everything is subject to the same three-clause BSD license.
The WizardWrx .NET API is a set of libraries that expose a rich set of general-purpose helper classes for use in projects that target the Microsoft .NET Framework. Among other things, they offer the following.
1) Syntactic sugar, such as the routines that identify the first, last, and next-to-last iteration of a
FOR loop, convert subscripts to and from ordinals (zero-based versus one-based subscripts), compute a modulus (remainder), and perform decimal shifts
2) Prse dynamically generated format control strings (used with
string.format and such),
3) Reduce computing message digests to a single method call
4) Transparently convert Registry values of all types into native types (strings, integers of various sizes, and byte arrays)
5) Parse command line arguments for any program (command line or graphical),
6) Add numerous extension methods to
7) Simplify working with the match groups returned by the Regular Expression engine
8) Dynamically generate format strings to compactly represent data in tabular format
9) Implement the Singleton design pattern in a way that fully leverages certain guarantees about the behavior of static constructors
10) Format and log exception reports, optionally recording them in a Windows Event Log and efficiently reporting them on the two standard console output streams, taking into account when either or both has been redirected to a file
11) Accurately identify the type of processor on which the code is executing and the Windows subsystem (character mode, graphical, etc.) in which it is executing
12) Walk the dependency tree of any executing assembly
13) Sort collections of FileInfo objects, so that the files they represent can be processed in any order
14) Provide scores of handy symbolic constants to disambiguate and properly document your code
The3re is much more; these are the highlights, most of which I use daily.
You can search the gallery for
WizardWrx, though a more efficient strategy is to follow the directions given near the top of
README.md in the GitHub repository. MSDN-style documentation is published at Introduction to the WizardWrx .NET API, which is a much better reference than anything that is practical to include in a NuGet package.
Though the API comprises ten libraries, you can get everything, including the two external dependencies (
WizardWrx.BitMath) with just three NuGet requests, which are listed in the ReadMe file. This is possible because the packages include complete dependency chains.
Since each package has a companion debug symbols package, you can debug with symbols by adding https://nuget.smbsrc.net/ to your list of symbol servers. See the Debugging node in Visual Studio Options. The symbols packages add only a PDB file; if you want the source, clone the repository.
Though I didn't use test frameworks for most of it, every routine has been carefully tested, and the test program,
DllServices2TestStand.exe, is included in the GitHub repository and the downloadable library packages. (It's not in the NuGet packages, where it would be significant dead weight.)
David A. Gray
Delivering Solutions for the Ages, One Problem at a Time
Interpreting the Fundamental Principle of Tabular Reporting
modified 4-May-19 3:01am.