dangl - Dangl.Common 1.6.1-beta0001

Common functionality

PM> Install-Package Dangl.Common -Version 1.6.1-beta0001 -Source https://www.myget.org/F/dangl/api/v3/index.json

Copy to clipboard

> nuget.exe install Dangl.Common -Version 1.6.1-beta0001 -Source https://www.myget.org/F/dangl/api/v3/index.json

Copy to clipboard

> dotnet add package Dangl.Common --version 1.6.1-beta0001 --source https://www.myget.org/F/dangl/api/v3/index.json

Copy to clipboard
<PackageReference Include="Dangl.Common" Version="1.6.1-beta0001" />
Copy to clipboard
source https://www.myget.org/F/dangl/api/v3/index.json

nuget Dangl.Common  ~> 1.6.1-beta0001
Copy to clipboard

> choco install Dangl.Common --version 1.6.1-beta0001 --source https://www.myget.org/F/dangl/api/v2

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "dangl" -SourceLocation "https://www.myget.org/F/dangl/api/v2"
Install-Module -Name "Dangl.Common" -RequiredVersion "1.6.1-beta0001" -Repository "dangl" -AllowPreRelease
Copy to clipboard

Dangl.Common

Build Status
NuGet MyGet

This library contains common, shared functionality.

Link to documentation
Changelog

CI Builds

CI builds are available via MyGet

https://www.myget.org/F/dangl/api/v3/index.json

Compatibility

This project targets netstandard2.0, netstandard1.3 and net45. Due to .Net 4.5.2 being the currently latest supported version by Microsoft and the xUnit test suite, no tests are run for net45 and net451.

Classes

BindableBase

Base class for property binding with INotifyPropertyChanged.

ObjectExtensions

The ObjectExtensions.DeepClone() method may be used to create copies or clones of objects that are value but not reference equal.

StringEncryptionExtensions

Encryption and decryption methods using AES and PBKDF2.

StringExtensions

  • Sanitize() method to normalize line endings to current environments default and to also trim whitespaces at each line end
  • ToBase64() and FromBase64() methods
  • Compress() / Decompress methods using GZip and returning Base64 output
  • WithMaxLength(int maxLength) to limit the length of a string by dropping everything above a max length
  • WithoutLinebreaks to remove all linebreaks in a string
  • WithoutUnprintableCharacters to remove unprintable characters

StringHashExtensions

Extensions to produce MD5 and SHA256 values for strings.

DecimalExtensions

  • WithMaxAbsoluteValue(int maxValueAbsolute) to limit a decimal to a maximum value. This works for both negative and positive decimals, e.g. -3m.WithMaxAbsoluteValue(2) returns -2

TrulyObservableCollection

Collection that notifies of item changes (add, delete) as well as whenever a child item that implements INotifyPropertyChanged is changed.

ObservableDictionary<TKey, TValue>

This is internally using a Dictionary<TKey, TValue> and raises events when elements are changed.

Supported Frameworks

The library supports netstandard1.3, netstandard2.0 as well as net45 and net40. Binaries for the full framework are separately generated for older build tools that do not properly integrate with .NET Standard. The .NET 4.0 target is for compatibility reasons, it is not tested and requires .NET compilers for version 4.5 or newer to properly function. If supported by the tooling (Visual Studio 2017 or the dotnet CLI should be fine), it's advised to use the netstandard1.3 target. When using .NET Standard, all features should be available on Windows, Linux and Mac OS, but unit and integration tests are only performed for the following frameworks on Windows:

  • net6.0
  • net5.0
  • netcoreapp3.1
  • net461
  • net46
  • net47
  • net452

And on these frameworks in Linux:

  • net6.0

There are no known issues with other configurations, but neither is their functionality tested.

Assembly Strong Naming & Usage in Signed Applications

This module produces strong named assemblies when compiled. When consumers of this package require strongly named assemblies, for example when they themselves are signed, the outputs should work as-is. The key file to create the strong name is adjacent to the csproj file in the root of the source project. Please note that this does not increase security or provide tamper-proof binaries, as the key is available in the source code per Microsoft guidelines


MIT License

v1.6.1:

  • Add net40 as target framework

v1.6.0:

  • Add ObservableDictionary<TKey, TValue> class

v1.5.1:

  • Drop tests for netcoreapp2.2 and add tests for netcoreapp3.1
  • Add StringExtensions.WithoutUnprintableCharacters()

v1.5.0:

  • The generated assemblies now have a strong name. This is a breaking change of the binary API and will require recompilation on all systems that consume this package. The strong name of the generated assembly allows compatibility with other, signed tools. Please note that this does not increase security or provide tamper-proof binaries, as the key is available in the source code per Microsoft guidelines

v1.4.7:

  • Tests are now also run in Linux
  • Drop tests for netcoreapp2.0, add tests for netcoreapp2.2

v1.4.6:

  • Add WithoutLinebreaks to StringExtensions

v1.4.5

  • Add StringHashExtensions with ToMd5() and ToSha256()

v1.4.4

  • Add WithMaxLength() to StringExtensions
  • Add WithMaxAbsoluteValue() on new DecimalExtensions

v1.4.3

  • Add netstandard2.0 target
  • Switch build system to NUKE

v1.4.2

  • Fix NullReferenceException when adding or removing null items to TrulyObservableCollection

v1.4.1

  • Downgrade to netstandard1.3 and net45 for broader compatibility

v1.4.0

  • PBKDF2 Iterations in the StringEncryptionExtensions are now configurable

v1.3.2

  • Target NETStandard 1.3
  • .NETFramework 4.0
  • .NETFramework 4.5
  • .NETStandard 1.3
    • NETStandard.Library (>= 1.6.1)
  • .NETStandard 2.0
  • .NETFramework 4.0: 4.0.0.0
  • .NETFramework 4.5: 4.5.0.0
  • .NETStandard 1.3: 1.3.0.0
  • .NETStandard 2.0: 2.0.0.0

Owners

Georg Dangl

Authors

Georg Dangl

Project URL

https://github.com/GeorgDangl/Dangl.Common

License

MIT

Info

5488 total downloads
71 downloads for version 1.6.1-beta0001
Download (46.23 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored?
1.7.2-beta0005 56.69 KB Wed, 22 Feb 2023 11:54:10 GMT 92
1.7.1 56.61 KB Thu, 16 Jun 2022 13:09:25 GMT 85
1.7.1-beta0006 56.64 KB Thu, 16 Jun 2022 13:07:35 GMT 81
1.7.1-beta0002 56.64 KB Thu, 16 Jun 2022 09:11:05 GMT 83
1.7.0 56.6 KB Wed, 04 May 2022 20:36:29 GMT 88
1.7.0-beta0004 56.66 KB Wed, 04 May 2022 20:24:22 GMT 90
1.6.3 49.63 KB Wed, 20 Apr 2022 10:37:52 GMT 87
1.6.3-beta0003 49.65 KB Wed, 20 Apr 2022 10:35:08 GMT 87
1.6.3-beta0001 49.66 KB Tue, 19 Apr 2022 22:38:16 GMT 80
1.6.2 49.3 KB Sat, 09 Apr 2022 09:20:03 GMT 86
1.6.2-beta0013 49.37 KB Fri, 08 Apr 2022 10:35:03 GMT 77
1.6.1 46.18 KB Sat, 26 Dec 2020 22:40:49 GMT 87
1.6.1-beta0001 46.23 KB Sat, 26 Dec 2020 20:31:08 GMT 71
1.6.0 35.09 KB Tue, 08 Dec 2020 10:54:46 GMT 90
1.6.0-beta0003 35.11 KB Mon, 07 Dec 2020 23:22:39 GMT 81
1.6.0-beta0002 34.98 KB Mon, 07 Dec 2020 23:17:47 GMT 89
1.6.0-beta0001 34.97 KB Mon, 07 Dec 2020 23:15:52 GMT 93
1.5.1 30.63 KB Fri, 27 Nov 2020 20:25:17 GMT 86
1.5.1-beta0006 30.65 KB Fri, 27 Nov 2020 20:23:24 GMT 96
1.5.1-beta0005 30.66 KB Fri, 27 Nov 2020 20:19:33 GMT 87
1.5.1-beta0004 30.28 KB Fri, 27 Nov 2020 20:10:02 GMT 83
1.5.0 30.17 KB Mon, 05 Aug 2019 17:20:20 GMT 96
1.5.0-beta0013 30.23 KB Mon, 05 Aug 2019 17:16:27 GMT 71
1.4.7-beta0010 29.01 KB Mon, 29 Jul 2019 19:14:08 GMT 92
1.4.7-beta0009 29.01 KB Mon, 29 Jul 2019 19:07:37 GMT 92
1.4.7-beta0008 29.01 KB Wed, 24 Jul 2019 10:49:18 GMT 102
1.4.7-beta0007 29.01 KB Wed, 24 Jul 2019 10:46:57 GMT 94
1.4.7-beta0002 28.93 KB Sat, 02 Mar 2019 11:50:33 GMT 78
1.4.6 28.93 KB Sat, 23 Feb 2019 20:35:21 GMT 87
1.4.6-beta0006 28.96 KB Sat, 23 Feb 2019 20:31:23 GMT 82
1.4.6-beta0005 28.96 KB Sat, 23 Feb 2019 20:28:19 GMT 84
1.4.6-beta0001 28.73 KB Thu, 03 Jan 2019 15:11:48 GMT 87
1.4.5 28.69 KB Tue, 23 Oct 2018 15:14:42 GMT 86
1.4.5-beta0003 28.72 KB Tue, 23 Oct 2018 15:11:39 GMT 89
1.4.4 27.88 KB Sat, 15 Sep 2018 13:57:37 GMT 77
1.4.4-beta0017 27.89 KB Sat, 15 Sep 2018 13:54:21 GMT 81
1.4.4-beta0016 27.9 KB Sat, 15 Sep 2018 13:46:27 GMT 85
1.4.4-beta0011 26.37 KB Sat, 15 Sep 2018 13:18:54 GMT 72
1.4.3 26.26 KB Mon, 19 Mar 2018 21:41:29 GMT 77
1.4.3-build-39 18 KB Thu, 01 Feb 2018 18:13:24 GMT 93
1.4.3-build-37 17.99 KB Thu, 11 Jan 2018 19:37:50 GMT 93
1.4.3-beta0011 26.28 KB Mon, 19 Mar 2018 21:28:55 GMT 88
1.4.3-beta0009 26.3 KB Mon, 19 Mar 2018 20:39:16 GMT 78
1.4.3-beta0007 26.29 KB Mon, 19 Mar 2018 20:02:38 GMT 96
1.4.2 17.93 KB Thu, 11 Jan 2018 19:36:34 GMT 81
1.4.2-build-35 17.99 KB Thu, 11 Jan 2018 19:35:01 GMT 74
1.4.2-build-34 17.9 KB Thu, 04 Jan 2018 20:09:41 GMT 58
1.4.2-build-33 17.9 KB Fri, 22 Dec 2017 13:40:30 GMT 83
1.4.2-build-32 17.89 KB Sun, 17 Dec 2017 11:33:41 GMT 86
1.4.2-build-31 17.9 KB Fri, 15 Dec 2017 16:04:30 GMT 88
1.4.1 17.83 KB Thu, 01 Feb 2018 18:07:05 GMT 90
1.4.1-build-29 17.89 KB Fri, 15 Dec 2017 16:01:01 GMT 87
1.4.1-build-28 17.86 KB Sun, 12 Nov 2017 20:58:11 GMT 89
1.4.1-build-27 17.86 KB Sun, 12 Nov 2017 20:55:32 GMT 95
1.4.1-build-26 17.86 KB Sun, 12 Nov 2017 20:20:24 GMT 82
1.4.1-build-25 17.86 KB Sun, 01 Oct 2017 20:55:53 GMT 84
1.4.1-build-24 17.86 KB Fri, 29 Sep 2017 16:15:25 GMT 96
1.4.1-build-23 17.86 KB Fri, 29 Sep 2017 16:11:14 GMT 84
1.4.1-build-22 17.86 KB Thu, 28 Sep 2017 19:10:58 GMT 80
1.4.1-build-21 17.86 KB Thu, 28 Sep 2017 17:41:53 GMT 90
1.4.1-build-20 17.86 KB Fri, 01 Sep 2017 17:59:20 GMT 78
1.4.1-build-19 17.86 KB Fri, 01 Sep 2017 17:33:18 GMT 97
0.3.2-beta0012 49.32 KB Fri, 08 Apr 2022 09:30:58 GMT 85
0.3.2-beta0009 46.23 KB Thu, 07 Apr 2022 21:13:10 GMT 102