XyloCode.BusinessData 1.0.3

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
.NET 6.0 .NET Core 3.1
dotnet add package XyloCode.BusinessData --version 1.0.3
NuGet\Install-Package XyloCode.BusinessData -Version 1.0.3
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="XyloCode.BusinessData" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add XyloCode.BusinessData --version 1.0.3
#r "nuget: XyloCode.BusinessData, 1.0.3"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install XyloCode.BusinessData as a Cake Addin
#addin nuget:?package=XyloCode.BusinessData&version=1.0.3

// Install XyloCode.BusinessData as a Cake Tool
#tool nuget:?package=XyloCode.BusinessData&version=1.0.3

BusinessData

BusinessData is a computer format for representing data structures in binary form. It is developed for duplication data of printed forms (questionnaires, contracts, accounting documents, permits, visa requests, etc.) into a machine-readable format, as a rule, into linear and two-dimensional barcodes with support for binary encoding (DataMatrix, PDF417, QR-code), and / or further saving this data in a separate column of the relational table database management system DBMS (NoSQL-approach).

Main differences

  • no predefined data structure is required for deserialization;
  • the ability to describe custom classes (business objects) using data annotation (attributes) and / or Fluent API;
  • support for historical data (chronology of changes in public fields of a custom class — a business object);
  • support for multidimensional and jagged arrays;
  • the ability to select a specialized encoding for each string field of a custom class — a business object;
  • predefined 4-bit encoding for storing identification data in various formats, for example: 46 91 012345, 910-001, 77:01:0001001:1025;
  • predefined 6-bit encodings for Russian, Kazakh and Ukrainian languages;
  • no dependence on third-party libraries (except system ones).

Data Encoding Structure

The format is based on a widely used method for writing binary data — type-length-value (TLV).

Supported Platforms

  • .NET 3.1 Core LTS;
  • .NET 6.0 LTS.

Supported data types

Simple (system) types

  • System.Boolean;
  • System.Byte;
  • System.Char;
  • System.DateOnly (for .NET 6.0 or greater);
  • System.DateTime;
  • System.DateTimeOffset;
  • System.Decimal;
  • System.Double;
  • System.Guid;
  • System.Int16;
  • System.Int32;
  • System.Int64;
  • System.UInt16;
  • System.UInt32;
  • System.UInt64;
  • System.SByte;
  • System.Single;
  • System.String;
  • System.TimeOnly (for .NET 6.0 or greater);
  • System.TimeSpan;

Enumeration

  • enum.

There is the possibility to select the mode of serializing the value of a field with an enumeration type as a number or as a string.

Arrays and lists

  • System.Collections.Generic.List<TValue> — lists.
  • System.Array — arrays (including multidimensional and jagged).

The value TValue can be of any supported data types.

Dictionaries

  • System.Collections.Generic.Dictionary<TKey, TValue> — collection “key-value”;
  • System.Collections.Generic.KeyValuePair<TKey, TValue> — pare “key-value”.

The TKey key can be one of the following data types:

  • System.Byte;
  • System.Char;
  • System.Guid;
  • System.Int16;
  • System.Int32;
  • System.Int64;
  • System.SByte;
  • System.String;
  • System.UInt16;
  • System.UInt32;
  • System.UInt64.

The value TValue can be of any supported data types.

User defined data types

  • Business objects are custom classes containing a public constructor without parameters and public properties.

Planned support

  • System.Net.IPAddress;
  • Microsoft.SqlServer.Types.SqlGeography;
  • Microsoft.SqlServer.Types.SqlGeometry;
  • Microsoft.SqlServer.Types.HierarchyId.

Not supported

Anonymous data types are not supported.

Full documentation

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp3.1
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • No dependencies.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.3 123 10/2/2022
1.0.2 119 10/1/2022

Removed System.IO.Ports dependencies