FubarDev.BeanIO 5.0.0

Prefix Reserved
dotnet add package FubarDev.BeanIO --version 5.0.0                
NuGet\Install-Package FubarDev.BeanIO -Version 5.0.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="FubarDev.BeanIO" Version="5.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FubarDev.BeanIO --version 5.0.0                
#r "nuget: FubarDev.BeanIO, 5.0.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 FubarDev.BeanIO as a Cake Addin
#addin nuget:?package=FubarDev.BeanIO&version=5.0.0

// Install FubarDev.BeanIO as a Cake Tool
#tool nuget:?package=FubarDev.BeanIO&version=5.0.0                

BeanIO .NET A .NET port of the BeanIO java library

Build-Status

Latest changes

5.0.0

  • Using Nullable Reference Types
  • NuGet updates
    • NodaTime 3.1.10
  • Minimum target framework is
    • .NET Framework 4.7.2
    • .NET Standard 2.0
    • .NET 6.0
  • C++/CLI is only supported when using PackageReference instead of packages.config

4.1.0

  • Supports a new experimental property accessor factory asm which uses compiled expression trees instead of reflection
  • Update of all dependencies

4.0.0

  • Now supports .NET Core 1.0 (through .NET Standard 1.1)
  • BREAKING CHANGE: Removed JSON support, because Newtonsoft.Json is available for all platforms and provides its own (de-)serialization mechanisms
  • BREAKING CHANGE: Support for .NET Standard 1.1, .NET 4.5, and C++/CLI (.NET 4.5); Visual Studio 2015 Update 3 with NuGet 3.5.0 beta 2 or latest Xamarin Studio (maybe even from the beta channel) are required.

3.1.3

  • Support for adding derived types to collections

3.1.2

  • Fixed parseDefault==false when serializing non-null value

Advantages over IKVM converted java BeanIO

  • Also usable in mobile (Windows Phone, Android, iOS) and Windows Store applications
  • No need to handle with the java types (like ArrayList).
  • No need to provide all the IKVM assemblies.
  • Contains support for customer provided scheme handlers to be able to get the imported mappings from every place you need to load it from (Internet, isolated storage, etc.)

Compatibility

This port is in most parts compatbile with 2.1.0 of BeanIO, except the JSON functionality, as Newtonsoft.Json already supports very flexible (de-)serialization.

Differences

New features

  • Supports .NET Standard 1.1 (.NET Core 1.0, .NET Framework 4.5+, Windows 8+, Windows Phone 8.1+, Mono 4.4+, Xamarin.iOS, Xamarin.MonoTouch, and Xamarin.Android).
  • Contains support for generics.
  • Contains support for customer provided scheme handlers (to be able to provide direct file access).
  • New mapping file to enable field validation while marshalling (2015-06)
  • Added mapping files to NuGet package
  • Support for ICollection<> interfaces
  • New At() function for StreamBuilder
  • Added the ability to use templates from the RecordBuilder and SegmentBuilder
  • New parseDefault configuration to allow default values that don't match the unterlying fields type (e.g. 00000000 as LocalDate with format yyyyMMdd)

Changed

  • The namespace is now BeanIO instead of org.beanio.
  • Type names must contain the assembly name, because there is no ClassLoader in .NET.
  • The date type handler uses NodaTime.LocalDate.
  • The time type handler uses NodaTime.LocalTime.
  • When you want to use a date with time zone, you have to use the datetimeoffset type handler.
  • There's a resource: scheme instead of a classpath: scheme that references an assembly ressource. The assembly name must be specified.
  • Use of ressource files (*.resx) for error message ressources instead of *.properties files.
  • There's no FieldsAttribute which may contain FieldAttributes. Just use multiple UnboundFieldAttributes.

Missing

  • BeanIO.NET exists as portable (.NET Standard 1.1) library and therefore doesn't provide any file access.
  • Patterns like X###0.0X aren't supported by .NET, because there is no ParseExact for numeric types.
  • JSON isn't a supported file format, because Newtonsoft.Json already supports very flexible (de-)serialization.
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 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 is compatible.  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 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 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FubarDev.BeanIO:

Package Downloads
Dataline.SocialInsurance.Germany.Messages.Mappings

Bibliothek, die alle BeanIO-Mappings für die SV-Meldungen enthält

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.0.0 1,092 1/3/2024
4.1.2 8,732 11/28/2017
4.1.1 1,002 11/28/2017
4.1.0-beta1-0023 1,355 12/18/2016
4.1.0-beta1-0022 841 12/18/2016
4.0.0-beta2-0020 827 12/15/2016
4.0.0-beta2-0019 1,273 8/2/2016
4.0.0-beta2-0018 1,909 7/29/2016
4.0.0-beta2-0016 1,030 7/29/2016
4.0.0-beta1-0010 953 7/25/2016
3.1.3 1,452 6/30/2016
3.1.2 6,628 12/3/2015
3.1.1 1,667 11/3/2015
3.0.2 1,320 10/27/2015
3.0.1 1,122 10/27/2015
2.2.2 4,830 7/13/2015
2.2.1 3,184 7/10/2015
2.2.0 1,749 6/22/2015
2.1.2 1,075 6/20/2015

- Upgrade to NodaTime 3
- Explicit support for .NET 6 and .NET 8
- Minimum .NET Framework version is 4.7.2
- Dropped support for .NET Standard below 2.0
- Dropped support für C++/CLI when not using PackageReference