Identifiable 3.0.0
See the version list below for details.
dotnet add package Identifiable --version 3.0.0
NuGet\Install-Package Identifiable -Version 3.0.0
<PackageReference Include="Identifiable" Version="3.0.0" />
paket add Identifiable --version 3.0.0
#r "nuget: Identifiable, 3.0.0"
// Install Identifiable as a Cake Addin
#addin nuget:?package=Identifiable&version=3.0.0
// Install Identifiable as a Cake Tool
#tool nuget:?package=Identifiable&version=3.0.0
Identifiable
Generates GUIDs based on current time (UUIDv1), or based on a unique name using a cryptographic hash (UUIDv3 using MD5 or UUIDv5 using SHA1). Includes a non-standard variant layout of time-based GUIDs for near-sequential sorting in SQL Server.
TimeGuid.Create
Generates time-based GUIDs for use in database clustered indexes. The following algorithms are implemented:
Standard
generates a time-based GUID that conforms to RFC 4122 without exposing a MAC address.SqlServer
generates a similar identifier that is optimally arranged for use with SQL Server clustered indexes and can be transposed to/from a valid Version 1 identifier. In this arrangement, the variant will be zero to avoid mis-identification as an invalid GUID version.
Why not use a random GUID? Random GUIDs have well-known performance issues when used in clustered indexes.
Why not use NEWSEQUENTIALID or UuidCreateSequential?
NEWSEQUENTIALID
is only usable as a default constraint and the values it generates are not a valid GUID version (bytes 6/7 are reversed, causing the version to be in the wrong position).UuidCreateSequential
requires P/Invoke and is only available on Windows.UuidCreateSequential
andNEWSEQUENTIALID
are only sequential when generated from the same system (the time component is in the least-significant bytes for SQL Server sorting).UuidCreateSequential
andNEWSEQUENTIALID
both include the MAC address which may be undesirable or non-unique (a pervasive problem with virtual machines).
Why not use a COMB? The values generated by this method are, in fact, COMBs. RFC 4122 Section 4.5 provides for cryptographically random values to be used as the node instead of the MAC address, as well as using a random value for the clock sequence when the node value changes, effectively allowing up to 61 bits of random entropy per time-slice in each identifier.
NamedGuid.Create
Generates a deterministic name-based GUID as described in RFC 4122 Section 4.3. The following algorithms are implemented:
MD5
generates an MD5 hash of the namespace and the name and yields a version 3 UUID.SHA1
generates a SHA-1 hash of the namespace and the name and yields a version 5 UUID.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 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 | 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 was computed. 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. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Identifiable:
Package | Downloads |
---|---|
VWO.Sdk
VWO .NET SDK for server-side Testing |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.0-preview | 132 | 3/27/2023 |
4.0.0 | 115,988 | 6/26/2018 |
3.0.0 | 1,869 | 12/12/2017 |