Azure / elastic-db-tools

Elastic database tools client library allows ADO.NET developers to create applications that implement and use the pattern known as database sharding in Azure SQL Database.
MIT License
145 stars 102 forks source link

Support for .NET Core 5/6 #220

Closed tlentine closed 10 months ago

tlentine commented 2 years ago

There has been an Open PR to upgrade the System.Data.SqlClient dependency to Microsoft.Data.SqlClient so that this library can be used going forward with .NET Core 5 and now 6. Are there any plans to merge this PR, or to otherwise incorporate Microsoft.Data.SqlClient in the elastic-db-tools project? As .NET Core 3.1 will EOL later this year, this library supporting .NET 6 is becoming a more pressing issue for us and is presently blocking our migration path to .NET 6. I'm not opposed to forking the project and adding the necessary fixes, but if this is something the team will be doing this year I don't want to necessarily duplicate effort. Any updates on the status of this project would be most welcome. Thanks for your time!

JacobAtchley commented 2 years ago

@jaredmoo do you have any insights for the future of this project and the open PRs?

JonPSmith commented 2 years ago

Can one of the maintainers tell us if this library is going to be supported?

I am considering adding sharding to my AuthPermissions.AspNetCore library which adds multi-tenant features to ASP.NET Core / EF Core applications. Some people have suggested that any sharding approach should support Azure elastic database.

All the documentation on elastic database says we should the use this library with Azure Elastic Databases, but if it isn't going to be supported then I will have to create my own, which isn't ideal.

jeremy-holovacs-sp commented 2 years ago

It doesn't seem as if there are maintainers for this project any more.

JonPSmith commented 2 years ago

Hi @jeremy-holovacs-sp,

Yep, it doesn't look like its supported which means I can't use it.

I have spent some time looking at this library and its very clever and learnt a lot, but there are other ways to handle this. My library uses EF Core uses Global Query Filters to create multi-tenant applications on one database - see this series about building multi-tenant apps.

With this and EF Core SetConnectionString I can create a sharding version. The only complex part is the companion Split-Merge library, but think I can come up with a solution for that.

vigouredelaruse commented 2 years ago

just wanted to point out finbuckle multitenant which has great per tenant strategies for database per tenant and auth per tenant - not great for scenarios where you already have an ef core query filter in use unless your filter can be extended with the one finbuckle uses - also non-trivial to use in scenarios with no httpcontext

jeremy-holovacs-sp commented 1 year ago

Going on 2 years now... no currently support .net core libraries support this code any more. Dead software.

stuartpa commented 1 year ago

2.4.0 preview 2 released with .Net 6.0 support

https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Client/2.4.0-preview2

stuartpa commented 11 months ago

2.4.0 released to nuget.org:

https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Client/2.4.0

Release notes:

https://github.com/Azure/elastic-db-tools/releases/tag/v2.4.0

Let me know if you hit any issues