Data Standardizer provides implementations of various internationally recognised standards in data processing, covering topics ranging from languages to currencies and geographical entities. With strongly-typed enumerations for each standard (where applicable) or other targeted data types, you can represent these elements in your code such that errors with invalid values are minimised.
Supported target platforms include (modern) .Net and .Net Standard. Data Standardizer can be used in modern application software, but is also available as an option for older codebases that are being upgraded more gradually or may remain on older frameworks indefinitely.
Full documentation β user guides, concepts, and API reference for every package β is published at matthew25187.github.io/DataStandardizer.
If you derive a commercial benefit from use of Data Standardizer or feel it otherwise adds value to your project, you are asked to please consider supporting the project. You can do this by becoming a GitHub sponsor to make a financial contribution. Data Standardizer is maintained and enhanced by @matthew25187 in his personal time and made available for free for all to use.
Data Standardizer is available as a series of packages from NuGet.org that can be linked to your existing projects. Available packages include:
| Package | Description |
|---|---|
| DataStandardizer.Chronology | Supports the following standards:
|
| DataStandardizer.Communication | Supports the following standards:
|
| DataStandardizer.Core | Common types used to implement standards in the other packages. You should not need to link to this package directly. |
| DataStandardizer.File.CSV | Supports the following standards:
|
| DataStandardizer.Geography | Supports the following standards:
|
| DataStandardizer.Language | Supports the following standards:
|
| DataStandardizer.LanguageTag | Supports the following standards:
|
| DataStandardizer.Money | Supports the following standards:
|
To use a particular standard in your application, find the corresponding package from the above list and add it as a dependency to your project. Instructions for doing so will depend on what development tooling you are using.
- Visual Studio: see Install and manage packages in Visual Studio using the NuGet Package Manager
- .Net CLI: see Install and manage NuGet packages with the dotnet CLI
- Visual Studio Code: see NuGet in Visual Studio Code
See the Get started guide for step-by-step installation and a quickstart.
Depending on which .Net platform you are targeting, the above packages will also depend on various other system- and third-party packages. They will be included as static dependencies where required and should be automatically resolved, but if you are using a proxy for your package server you may need to make sure these other packages are also available.
The most recently produced release version (shown above) does not necessarily correspond with the latest package version published to NuGet or any other publically available source.
Data Standardizer is open source so you can read, build, and adapt it for your own use. The project does not currently accept third-party code contributions; the instructions below are provided as a convenience for working with your own copy or fork of the repository.
After cloning the repository, you can compile the entire solution from the repository root:
dotnet build DataStandardizer.sln
and run the XUnit-based tests with:
dotnet test DataStandardizer.sln
Per-package solution filter (*.slnf) files let you build or test a single package in isolation. For the full branching strategy, per-package builds, IDE testing, and the PowerShell scripts that regenerate the standard enums, see Build from source in the documentation.
Though each package contains many types, typically there are only a few you will use directly in your application. See the project documentation for user guides, concepts, and API reference covering each package β including built-in CSV reading, writing, and normalization in DataStandardizer.File.CSV.