XyloCode.BusinessData 1.1.0

Prefix Reserved
dotnet add package XyloCode.BusinessData --version 1.1.0                
NuGet\Install-Package XyloCode.BusinessData -Version 1.1.0                
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.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add XyloCode.BusinessData --version 1.1.0                
#r "nuget: XyloCode.BusinessData, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. 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.1.0

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

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 Framework 4.6;
  • .NET Framework 4.7;
  • .NET Framework 4.7.1;
  • .NET Framework 4.7.2;
  • .NET Framework 4.8;
  • .NET Framework 4.8.1;
  • .NET 3.1 Core LTS;
  • .NET 6.0 LTS;
  • .NET 7.0 (experimental).

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 Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  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 is compatible.  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. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net46 is compatible.  net461 was computed.  net462 was computed.  net463 was computed.  net47 is compatible.  net471 is compatible.  net472 is compatible.  net48 is compatible.  net481 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • No dependencies.
  • .NETFramework 4.6

    • No dependencies.
  • .NETFramework 4.7

    • No dependencies.
  • .NETFramework 4.7.1

    • No dependencies.
  • .NETFramework 4.7.2

    • No dependencies.
  • .NETFramework 4.8

    • No dependencies.
  • .NETFramework 4.8.1

    • No dependencies.
  • net6.0

    • No dependencies.
  • net7.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.1.0 308 2/9/2023
1.0.3 423 10/2/2022
1.0.2 397 10/1/2022

Compiled packages for platforms: net46, net47, net471, net472, net48, net481. Added experimental support for net7.0.