From d55a2d81a5b2831a7d98209128a317d6760663f9 Mon Sep 17 00:00:00 2001 From: Vlad Taranov Date: Sun, 20 Mar 2016 11:53:17 +0200 Subject: [PATCH] build --- Nuget/aqlaserializer.nuspec | 23 ++++++++++++++++--- precompile/Properties/AssemblyInfo.cs | 4 ++-- .../Properties/AssemblyInfo.cs | 4 ++-- protobuf-net/Meta/MetaType.BuildSerializer.cs | 2 +- protobuf-net/Meta/MetaType.Helpers.cs | 2 +- protobuf-net/Meta/MetaType.Settings.cs | 2 +- protobuf-net/Properties/AssemblyInfo.cs | 4 ++-- 7 files changed, 29 insertions(+), 12 deletions(-) diff --git a/Nuget/aqlaserializer.nuspec b/Nuget/aqlaserializer.nuspec index fd1e5022..c031a426 100644 --- a/Nuget/aqlaserializer.nuspec +++ b/Nuget/aqlaserializer.nuspec @@ -2,7 +2,7 @@ aqlaserializer - 2.0.0.85 + 2.0.0.96 Vladyslav Taranov Vladyslav Taranov 2016, fork source from Marc Gravell 2016 Vladyslav Taranov @@ -11,19 +11,36 @@ What the difference? Data serializers don't care much about language runtime specifics like references, inheritance, etc. In contrast, an object serializer should take such things into account. +AqlaSerializer primary goal is to support important .NET features like nested collections, multi-dimensional arrays, references, etc. And it still supports Google Protocol Buffers format. + Like protobuf-net AqlaSerializer makes possible to store objects as a small in size binary data (far smaller than xml). And it's more CPU effective than BinaryFormatter and other core .NET serializers (which could be unavailable on your target platform). Its format is designed to be: small in size - efficient data storage (far smaller than xml) cheap to process - both at the client and server platform independent - portable between different programming architectures extensible - to add new data to old messages. -AqlaSerializer project goal is not to make a Protocol Buffers compatible implementation but instead support all common .NET features. It is compatible with most of the .NET family, including .NET 2.0/3.0/3.5/4.0, Windows Phone 8, Silverlight, etc. The code is heavily based on Marc Gravell's protobuf-net but there are a lot of improvements and fixes. +The implementation is compatible with most of the .NET family, including .NET 2.0/3.0/3.5/4.0, Windows Phone 8, Silverlight, etc. The code is heavily based on Marc Gravell's protobuf-net but there are a lot of improvements and fixes. The original protobuf-net project contains many "red" unit tests but I managed to fix a lot of them. -Some platforms may be not available through nuget, you can download their binaries manually from github. +Some build configurations may be not available through nuget, you can download their binaries manually from github (use Project Site link). https://github.com/AqlaSolutions/AqlaSerializer https://github.com/AqlaSolutions/AqlaSerializer/blob/master/Licence.txt binary serialization protocol buffers protobuf deserialization aqlaserializer aqla aqlasolutions en-US +* 2.0.0.96: V2 RC +- Google Protocol Buffers format support is back (I've reconsidered this) - (de)serialization. +- Nested collections. +- Multi-dimensional arrays. +- Improved reference tracking (e.g. surrogate fix and referencing arrays from inside themselves). +- Improved versioning (e.g. between reference-nonreference-null-nonnull-dynamic). +- Optimizations for better output size. +- Collection subtypes (will read subtype number to create correct concrete type). +- Array types may be registered as collections and use full set of features (null support, etc) even when passed as root objects. +- Primitive types are allowed to be set to fields marked as dynamic type. +- Reference serialization will avoid using too much recursion #1. +- Possibility to specify different attribute sets for different models (see ModelId property on attributes). +- Attributes to specify behavior on collection and collection elements (and nested) separately. +- Significant peformance improvements. + * 1.0.0.938: - more effficient memory usage - if writing stream CanSeek and CanRead the serializer may use it as a buffer when its own buffer grows too big diff --git a/precompile/Properties/AssemblyInfo.cs b/precompile/Properties/AssemblyInfo.cs index 1e5ca772..f0d7aa89 100644 --- a/precompile/Properties/AssemblyInfo.cs +++ b/precompile/Properties/AssemblyInfo.cs @@ -33,5 +33,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.85")] -[assembly: AssemblyFileVersion("2.0.0.85")] +[assembly: AssemblyVersion("2.0.0.96")] +[assembly: AssemblyFileVersion("2.0.0.96")] diff --git a/protobuf-net.Extensions/Properties/AssemblyInfo.cs b/protobuf-net.Extensions/Properties/AssemblyInfo.cs index b4c24f17..44cb4d54 100644 --- a/protobuf-net.Extensions/Properties/AssemblyInfo.cs +++ b/protobuf-net.Extensions/Properties/AssemblyInfo.cs @@ -33,8 +33,8 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.85")] +[assembly: AssemblyVersion("2.0.0.96")] #if !CF -[assembly: AssemblyFileVersion("2.0.0.85")] +[assembly: AssemblyFileVersion("2.0.0.96")] #endif [assembly: CLSCompliant(true)] \ No newline at end of file diff --git a/protobuf-net/Meta/MetaType.BuildSerializer.cs b/protobuf-net/Meta/MetaType.BuildSerializer.cs index f1e5a43d..56cb5341 100644 --- a/protobuf-net/Meta/MetaType.BuildSerializer.cs +++ b/protobuf-net/Meta/MetaType.BuildSerializer.cs @@ -262,7 +262,7 @@ bool OmitTypeSearchForRootSerialization if (_settingsValueFinalSet) { - Thread.MemoryBarrier(); + Helpers.MemoryBarrier(); if (_settingsValueFinal.Member.Collection.ItemType != null) return true; } else diff --git a/protobuf-net/Meta/MetaType.Helpers.cs b/protobuf-net/Meta/MetaType.Helpers.cs index 9b2318b2..af2b276d 100644 --- a/protobuf-net/Meta/MetaType.Helpers.cs +++ b/protobuf-net/Meta/MetaType.Helpers.cs @@ -58,7 +58,7 @@ internal static MetaType GetTypeForRootSerialization(MetaType source) while (true) { bool set = source._settingsValueFinalSet; - Thread.MemoryBarrier(); + Helpers.MemoryBarrier(); if (!set) break; if (source.BaseType == null) return source; source = source.BaseType; diff --git a/protobuf-net/Meta/MetaType.Settings.cs b/protobuf-net/Meta/MetaType.Settings.cs index d47683d2..e7fbabad 100644 --- a/protobuf-net/Meta/MetaType.Settings.cs +++ b/protobuf-net/Meta/MetaType.Settings.cs @@ -137,7 +137,7 @@ internal void FinalizeSettingsValue() _settingsValueFinal.Member = m; - Thread.MemoryBarrier(); + Helpers.MemoryBarrier(); _settingsValueFinalSet = true; IsFrozen = true; } diff --git a/protobuf-net/Properties/AssemblyInfo.cs b/protobuf-net/Properties/AssemblyInfo.cs index 1a21e60d..a50498d6 100644 --- a/protobuf-net/Properties/AssemblyInfo.cs +++ b/protobuf-net/Properties/AssemblyInfo.cs @@ -35,9 +35,9 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.85")] +[assembly: AssemblyVersion("2.0.0.96")] #if !CF -[assembly: AssemblyFileVersion("2.0.0.85")] +[assembly: AssemblyFileVersion("2.0.0.96")] #endif #if !FX11 [assembly: InternalsVisibleTo("aqlaserializer.unittest, PublicKey=002400000480000094000000060200000024000052534131000400000100010091B11AB23561C227F083424C0162A38DA330B724B6E96C1BE6C5989BFDD5C1BA3E555D8F105DD352C2623FE6AF90F4FA3173C6120DD567283434513DA579728230E1697A156770A81B7FBF5535ECDB96D2737E74181A4D980647AE33CDFB6E0C1FF63065AE8E33BB27374090393685FF265563655DE4829B0E5C996B1CF9A3E3")]