oracle / dotnet-db-samples

.NET code samples for Oracle database developers #OracleDotNet
http://otn.oracle.com/dotnet
MIT License
408 stars 190 forks source link

Unify Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.Core #246

Closed stephen-swensen closed 2 years ago

stephen-swensen commented 2 years ago

Context: I have a common library project which I'd like to be referenceable by both .NET Framework 4.8 and .NET 6 exe projects. I can do that by making the common library target .NETStandard 2.0, but not .NETStandard 2.1 (which isn't supported by .NET Framework). But I've noticed that the 3.x versions of Oracle.ManagedDataAccess.Core now target .NETStandard 2.1 while the 2.x versions target .NETStandard 2.0. Yet I've also noticed that you have continued to release new 2.x versions as recently as this past month. So my questions are:

Note: if you stuck to targeting .NETStandard 2.0 you wouldn't even need to maintain the Oracle.ManagedDataAccess package anymore. You'd have one package that could be referenced by every supported version of .NET and .NET Framework out there. If you really had some features you wanted to use from .NETStandard 2.1, you could potentially build a separate .NETStandard 2.1 framework target for the same package (using build compilation symbols to cover what I am assuming would be non-essential extended features).

alexkeh commented 2 years ago

ODP.NET 19c will continue to deliver .NET Standard 2.0 support for its supported lifetime. That's Oracle's plan. 19c support last's until at least 2027 since it's a long term release. You can reference that version for your cross-runtime apps.

If there remains considerable demand for a cross-.NET Core/FW assembly as 19c approaches desupport, we'll deliver a .NET Standard 2.0 provider after 19c. As there will be no new features delivered in .NET FW and .NET Standard 2.0 going forward, an open question is how long will customers remain committed to those versions or will the vast majority move onto new .NET versions in a few years.

Oracle 21c is an innovation release, which doesn't fit the profile for use with products that no longer introduce new features.

stephen-swensen commented 2 years ago

That’s generous and fair, thanks for the insight!!