Support SqlDataSourceEnumerator on Linux
- Dominant language
- C#
- Stars
- 989
- Forks
- 340
- Avg merge
- 4d 19h
- Merged PRs (30d)
- 72
Description
### Is your feature request related to a problem? Please describe.
`SqlClientFactory.Instance.GetDataSources` uses `Microsoft.Data.Sql.SqlDataSourceEnumerator` to get a list of all SQL Server instances which a server's SQL Server Browser service announces on the local network using [SQL Server Resolution Protocol](https://learn.microsoft.com/en-us/openspecs/windows_protocols/mc-sqlr/1ea6e25f-bff9-4364-ba21-5dc449a601b7).
SqlDataSourceEnumerator does this using the native SNI, but doesn't have any fallback in managed code, which means that Linux clients (and anything using the managed SNI) can't use it.
### Describe the solution you'd like
I'd like the managed SNI to support SSRP discovery.
### Describe alternatives you've considered
Users could implement their own SSRP client, such as [this one](https://github.com/mrsquish/SqlBrowserClient).
### Additional context
I'm currently working on support for this, I'm just raising the issue so that I don't submit new functionality with 2-3 large PRs out of the blue.
This is slightly different to comments in #17 (which covered making the API surface available, but didn't extend to Linux compatibility.)
Contributor guide
Assessment
This issue has not been assessed yet.