Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build/build.proj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net462;net48;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>net462;net48;net8.0;net9.0;net10.0</TargetFrameworks>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>

Expand Down
4 changes: 4 additions & 0 deletions doc/dev/doc/extensions/linq.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# LINQ Provider

> __Note:__ If you are running `Hazelcast.Net.Linq.Async` on .NET10, then you should put aliases
> to your project file to avoid reference ambiguity between `System.Linq, V=6.0.0` and `System.Linq, V=10.0.0`.
> For more details, please visit [this issue](https://github.com/hazelcast/hazelcast-csharp-client/pull/999).
Hazelcast .Net Client provides a LINQ provider over `IHMap`. Provider is currently in BETA version.
You can use programmatic LINQ functions instead string SQL statements to query over your distributed map.
To benefit from LINQ support, `Hazelcast.Net.Linq.Async` package should be added your dependency. The package is an
Expand Down
2 changes: 2 additions & 0 deletions hz.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1069,7 +1069,9 @@ function require-dotnet ( $full ) {
# note:
# - net8.0 end of support is nov 10, 2026
# - net9.0 end of support is oct 10, 2026
# - net10.0 end of support is nov 14, 2028

require-dotnet-version $result $sdks "10.0" $frameworks "net10.0" "10.0.x" $true $allowPrerelease
require-dotnet-version $result $sdks "9.0" $frameworks "net9.0" "9.0.x" $true $allowPrerelease
require-dotnet-version $result $sdks "8.0" $frameworks "net8.0" "8.0.x" $true $allowPrerelease

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
</PropertyGroup>

<PropertyGroup>
Expand All @@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="DocFx.Build" Version="2.77.0" />
<PackageReference Include="DocFx.Build.ManagedReference" Version="2.77.0" />
<PackageReference Include="System.Composition" Version="8.0.0" />
<PackageReference Include="System.Composition" Version="10.0.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions src/Hazelcast.Net.Benchmarks/Hazelcast.Net.Benchmarks.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>Hazelcast.Benchmarks</RootNamespace>
<AssemblyName>hb</AssemblyName>
</PropertyGroup>
Expand All @@ -13,7 +13,7 @@

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.13.12" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions src/Hazelcast.Net.Caching/Hazelcast.Net.Caching.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0</TargetFrameworks>
<RootNamespace>Hazelcast.Caching</RootNamespace>
<!--<ImplicitUsings>enable</ImplicitUsings>-->
<Nullable>enable</Nullable>
Expand Down Expand Up @@ -44,9 +44,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.3.0" />
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.1" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>Hazelcast.CodeGenerator</RootNamespace>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0</TargetFrameworks>
<RootNamespace>Hazelcast.DependencyInjection</RootNamespace>
</PropertyGroup>

Expand Down
25 changes: 20 additions & 5 deletions src/Hazelcast.Net.Examples/Hazelcast.Net.Examples.csproj
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>net462;net48;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>net462;net48;net8.0;net9.0;net10.0</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' != 'Windows_NT' ">
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
</PropertyGroup>

<PropertyGroup>
Expand All @@ -26,15 +26,30 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net462" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

<!-- START - This section is required to resolve reference ambigutity raised in NET10
https://github.com/dotnet/docs/issues/44886
-->
<ItemGroup Condition="'$(TargetFramework)' != 'net10.0' and '$(TargetFramework)' != 'net462' and '$(TargetFramework)' != 'net48'">
<PackageReference Include="System.Linq.AsyncEnumerable" Version="10.0.0" Aliases="SystemLinqAsyncEnumerable" />
</ItemGroup>

<Target Name="_SetAliasOnBuiltInSystemLinqAsyncEnumerable" BeforeTargets="ResolveAssemblyReferences">
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<Reference Condition="'%(Reference.AssemblyName)' == 'System.Linq.AsyncEnumerable'">
<Aliases>SystemLinqAsyncEnumerable</Aliases>
</Reference>
</ItemGroup>
</Target>
<!-- END - This section is required to resolve refence ambigutity raised in NET10 -->

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageReference Include="JetBrains.Annotations" Version="2025.2.2" />
</ItemGroup>

</Project>
18 changes: 11 additions & 7 deletions src/Hazelcast.Net.Linq.Async/Hazelcast.Net.Linq.Async.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;netstandard2.1;</TargetFrameworks>
<RootNamespace>Hazelcast.Linq</RootNamespace>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -48,12 +48,16 @@
<None Include="..\nuget-logo.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>

<ItemGroup>
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
<PackageReference Include="System.Linq.Async.Queryable" Version="6.0.1" />
</None>
</ItemGroup>

<!-- Note: async linq interfaces are moved to NET after net10.0. So, users must arrange references accordingly.
https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/10.0/asyncenumerable -->
<ItemGroup>
<PackageReference Include="System.Linq.Async" Version="6.0.3">
</PackageReference>
<PackageReference Include="System.Linq.Async.Queryable" Version="6.0.3">
</PackageReference>
</ItemGroup>

</Project>
8 changes: 4 additions & 4 deletions src/Hazelcast.Net.Testing/Hazelcast.Net.Testing.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@
<PackageReference Include="ApacheThrift" Version="0.15.0" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
<PackageReference Include="NSubstitute" Version="5.1.0" />
<PackageReference Include="NSubstitute.Analyzers.CSharp" Version="1.0.16">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NuGet.Versioning" Version="6.8.0" />
<PackageReference Include="NuGet.Versioning" Version="6.14.0" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="System.IO.Pipelines" Version="8.0.0" />
<PackageReference Include="System.Linq.Async.Queryable" Version="6.0.1" />
<PackageReference Include="System.IO.Pipelines" Version="10.0.0" />
<PackageReference Include="System.Linq.Async.Queryable" Version="6.0.3" />
</ItemGroup>

<ItemGroup>
Expand Down
37 changes: 26 additions & 11 deletions src/Hazelcast.Net.Tests/Hazelcast.Net.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>net462;net48;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>net462;net48;net8.0;net9.0;net10.0</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' != 'Windows_NT' ">
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
</PropertyGroup>

<PropertyGroup>
Expand All @@ -23,13 +23,13 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.0" Condition="'$(TargetFramework)' == 'netstandard2.0'"/>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.10" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.10" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.10" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net462" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand All @@ -39,17 +39,32 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NuGet.Versioning" Version="6.8.0" />
<PackageReference Include="NuGet.Versioning" Version="6.14.0" />
<PackageReference Include="nunit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="System.IO.Pipelines" Version="8.0.0" />
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
<PackageReference Include="System.IO.Pipelines" Version="10.0.0" />
</ItemGroup>

<!-- START - This section is required to resolve reference ambigutity raised in NET10
https://github.com/dotnet/docs/issues/44886
-->
<ItemGroup Condition="'$(TargetFramework)' != 'net10.0' and '$(TargetFramework)' != 'net462' and '$(TargetFramework)' != 'net48'">
<PackageReference Include="System.Linq.AsyncEnumerable" Version="10.0.0" Aliases="SystemLinqAsyncEnumerable" />
</ItemGroup>

<Target Name="_SetAliasOnBuiltInSystemLinqAsyncEnumerable" BeforeTargets="ResolveAssemblyReferences">
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<Reference Condition="'%(Reference.AssemblyName)' == 'System.Linq.AsyncEnumerable'">
<Aliases>SystemLinqAsyncEnumerable</Aliases>
</Reference>
</ItemGroup>
</Target>
<!-- END - This section is required to resolve refence ambigutity raised in NET10 -->

<Choose>
<When Condition="'$(TargetFramework)' != 'net462' or '$(TargetFramework)' != 'net48'">
<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/Hazelcast.Net.Win32/Hazelcast.Net.Win32.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net10.0</TargetFrameworks>
<RootNamespace>Hazelcast</RootNamespace>
</PropertyGroup>

Expand Down Expand Up @@ -44,7 +44,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Memory" Version="4.6.3" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/Hazelcast.Net/Clustering/ClusterConnections.cs
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,7 @@ private IEnumerable<NetworkAddress> GetClusterAddresses()

static IEnumerable<NetworkAddress> Distinct(IEnumerable<NetworkAddress> aa, ISet<NetworkAddress> d, bool s)
{
if (s) aa = aa.Shuffle();
if (s) aa = Hazelcast.Core.EnumerableExtensions.Shuffle(aa);

foreach (var a in aa)
{
Expand Down
16 changes: 9 additions & 7 deletions src/Hazelcast.Net/Hazelcast.Net.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0</TargetFrameworks>
<RootNamespace>Hazelcast</RootNamespace>
</PropertyGroup>

Expand Down Expand Up @@ -61,16 +61,16 @@


<ItemGroup>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
<PackageReference Include="System.IO.Pipelines" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="System.IO.Pipelines" Version="10.0.0" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
<PackageReference Include="ZpqrtBnk.CommentsBuildAnalyzer" Version="1.0.9">
<PrivateAssets>all</PrivateAssets>
Expand All @@ -91,6 +91,8 @@

<ItemGroup>
<!-- note: requires analyzer version 3.3.4+ in order to support merging files -->
<AdditionalFiles Include="PublicAPI/net10.0/PublicAPI.Shipped.txt" Condition=" '$(TargetFramework)' == 'net10.0' " />
<AdditionalFiles Include="PublicAPI/net10.0/PublicAPI.Unshipped.txt" Condition=" '$(TargetFramework)' == 'net10.0' " />
<AdditionalFiles Include="PublicAPI/net9.0/PublicAPI.Shipped.txt" Condition=" '$(TargetFramework)' == 'net9.0' " />
<AdditionalFiles Include="PublicAPI/net9.0/PublicAPI.Unshipped.txt" Condition=" '$(TargetFramework)' == 'net9.0' " />
<AdditionalFiles Include="PublicAPI/net8.0/PublicAPI.Shipped.txt" Condition=" '$(TargetFramework)' == 'net8.0' " />
Expand Down
10 changes: 10 additions & 0 deletions src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#nullable enable
Hazelcast.Models.HLocalDate.HLocalDate(System.DateOnly dateOnly) -> void
Hazelcast.Models.HLocalDate.ToDateOnly() -> System.DateOnly
Hazelcast.Models.HLocalDate.TryToDateOnly(out System.DateOnly dateOnly) -> bool
Hazelcast.Models.HLocalTime.HLocalTime(System.TimeOnly timeOnly) -> void
Hazelcast.Models.HLocalTime.ToTimeOnly() -> System.TimeOnly
static Hazelcast.Models.HLocalDate.explicit operator Hazelcast.Models.HLocalDate(System.DateOnly dateOnly) -> Hazelcast.Models.HLocalDate
static Hazelcast.Models.HLocalDate.explicit operator System.DateOnly(Hazelcast.Models.HLocalDate localDate) -> System.DateOnly
static Hazelcast.Models.HLocalTime.explicit operator Hazelcast.Models.HLocalTime(System.TimeOnly timeOnly) -> Hazelcast.Models.HLocalTime
static Hazelcast.Models.HLocalTime.explicit operator System.TimeOnly(Hazelcast.Models.HLocalTime localTime) -> System.TimeOnly
Loading
Loading