-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Announcement: Call for help: System.Data.SqlClient in .NET Core 2.0 #21803
Comments
We also acknowledge that our test coverage of |
@karelz Furthermore, as I mentioned on may, 2016 in #16650 “*Sql Reference Client - Since virtually all ADO.NET DB Drivers share 80% of the high-level requirements (API Surface, Connection Pooling, retry logic, etc.) It would be wise to invest not only in coding a robust SQL Client for SQLServer but also document and record a code review session so other ADO.NET Driver developers can build upon the existing implementation and focus mainly on the protocol parsing logic.” I strongly recommended you seize this opportunity to invest in a clean separation of Api surface, connection management logic and most important strict encapsulation of protocol definition and parsing code. A design document for others to reference is also a must. IMHO, ADO.NET is the BEST (read: THE BEST) relation data access API out there, mainly due to very smart API design which allows developers a high degree of flexibility for building their own Data Access Layer according to their own requirements and personal taste. It will always be known and remembered as a “Microsoft” designed API which is part of .NET and that’s a good thing! It would be wise to treat this as something of strategic importance that goes beyond “a client for SQL Server”. I have no doubt that making the ADO.NET SqlClient a “reference client” for building other “SQL Clients” will rapidly bring new information stores to the .NET eco-system and accelerate the adoption of the .net core platform in general! (This something every developer working with SQL can appreciate!) |
It is a good idea, but not realistic in 2.0 timeframe. It requires non-trivial investment into infrastructure beside just the test assets. Either way, I let Data team to assess feasibility of this approach in Future. It is definitely outside of scope of 2.0, so let's keep it off this issue.
This is potentially good long-term idea, but it is unrelated to this task as it requires new APIs. In this issue we need Desktop APIs to behave the same on .NET Core 2.0. Let's keep this discussion off this issue please. |
You wrote:
That's why I thought it's worth to reconsider the Azure benchmark test, maybe the infra is already in place at Azure.
Just to clarify, my suggestion is not about adding or changing any "Desktop API" but rather about the structure of the SqlClient implementation.. I let the Data team reading this have their take away... |
I see, now it makes sense. The testing Data teams plans to do is to reuse existing Desktop tests as much as possible. Given we have just 1 week until Escrow, any larger non-tactical investments are great, but not immediately helping. My assumption is that Azure testing infra is multi-man-month if not a man-year investment. Obviously it doesn't fit. If you think there is something simple/easy tactical that can be done on shorter time frame, we are all ears.
Got it now, thanks. I let Data team to comment on that suggestion. However, any refactoring / large changes to the code are off the table for 2.0, unless they are super-must-haves with clear super-high value and low-risk. Thanks for your suggestions! |
I disagree… This is as tactical you can get. P0 bugs, if any will surface after 5min run… but I now understand the time constraint... Anyway, I’m adding to this thread all the people listed in the document: “Azure SQL Database benchmark overview” Maybe one of them can help setup a quick sanity run if the test environment is still there…
Agree. p.s Just to further clarify, my suggestion regarding the "SQL Reference Client" is not about a new ADO.NET Plug-in model or any new public interfaces. The message is simple: “Here is how we did it, take it from there” |
@clrjunkie if there is something simple we can run, I want to know more. My understanding was that we would need to build brand new infra. Can you (or someone) please show us an example what and how to run? |
One more thought about this - ADO.NET should ideally have a provider test suite (or specification suite), which provides can extend and run - this can help promote uniformity across providers, or at least surface API areas where behavior differs (and help document them). I've suggested this in #17004 but unfortunately have little time to contribute on this right now. This is obviously not a short-term task. |
@karelz @roji In regards to the benchmark topic. The actual tests were run by the product team, but we helped to publish it. I have an old email thread on this that I can dig up and send you that might provide some context. (Update: I just looked through my old mails on this, and I don't have the mail that identifies where the tests existed or who owned them for the benchmark overview...sorry). |
@guyhay In regards to "Azure SQL Database benchmark", Do you know if this test still exist and who may be the right contact for implementation details? |
FYI: Feedback from @cincuranet in dotnet/corefx#20309 - thanks! |
I'd love to test this without crazy feeds in play with our main libraries - is there any chance of a newer preview of System.Data.SqlClient can make its way to NuGet? Related: I've never been more supporting of an alpha/beta channel on NuGet itself with support in the |
I think Preview2 should be out soon. That's the best non-myget option now. BTW: 2 weeks ago I kicked off internal technical discussion about having regular-ish monthly preview releases on NuGet or on myget in special feed - I just created dotnet/corefx#20911 to track that discussion. |
Thanks everyone for your help. I don't think we need this announcement issue around anymore. |
We have found quite non-trivial gaps in System.Data.SqlClient based on Preview 1 feedback.
First, thanks everyone helping us discovering them, understand them and fixing them. Also thanks for the patience with the lower-than-desired quality of the area.
Special shout outs to @NickCraver @FransBouma @RickStrahl @cskwg and @cincuranet
We have had several meetings in last few days and we are working closely with the Data.SqlClient team. They kindly heard us out and increased the number of people focusing on .NET Core 2.0 shipping from 1 to 3! So huge thanks to Ken (new manager of the area) for making it happen! And thanks Data team for helping us to get the area in high-quality shape: @saurabh500 @corivera @geleems
Here's update on the remaining work in the space (from @saurabh500):
Query of all SqlClient bugs
We have a PRs planned to address issues in the query above for which we have a definite timelines.
The three issues which can consume time beyond next week are
Apart from these above issues, we will be looking at additional testing of .Net Core. In case they uncover any additional issues, we will open them and bring them to Shiproom.
The text was updated successfully, but these errors were encountered: