.NET Standard Compatibility
In This Topic
dotConnect for Oracle has four sets of assemblies:
- for full .NET Framework
- .NET Standard 1.3 compatible assemblies (compatible with .NET Core 1.0 and higher and .NET Framework 4.6 and higher)
- .NET Standard 2.0 compatible assemblies (compatible with .NET Core 2.0 and higher and .NET Framework 4.6.1 and higher)
- .NET Standard 2.1 compatible assemblies (compatible with .NET Core 3.0 and higher only, .NET Framework is not supported)
.NET Standard compatible assemblies are only available as NuGet packages, except for the Entity Framework Core 2 related assembly, installed by the installer.
The dotConnect for Oracle installer does not install .NET Standard compatible assemblies, except for the Entity Framework Core 2 related assembly. You can get them only by installing dotConnect for Oracle NuGet packages to your project. For trial version of dotConnect for Oracle you will still need to install the dotConnect for Oracle installer in order to obtain the license key files.
The dotConnect for Oracle NuGet packages include .NET Standard 1.3, 2.0, and 2.1 compatible assemblies. The corresponding assemblies are automatically selected, depending on the platform your project targets, when you install NuGet packages to your projects.
Limitations
Since .NET Core is limited in comparison to full .NET Framework, dotConnect for Oracle .NET Standard compatible assemblies offer less classes and features than the assemblies for full .NET Framework, and dotConnect for Oracle does not support certain technologies for other .NET platforms that are supported for the full .NET Framework. .NET Standard 1.3 compatible assemblies are significantly more limited than .NET Standard 2.0 compatible assemblies.
Here is the list of features, not supported in .NET Standard assemblies:
-
DataLink, ParentDataRelation, and related features are not available in .NET Standard compatible assemblies.
- DataSet Wizard, DataSet Editor, and DataSet Manager also are not available for projects, targeting other .NET platforms than full .NET Framework.
-
OCI connection mode is supported only on Windows, on x86 and x64 Intel (AMD) architecture. For .NET Standard 1.3/2.0 compatible assemblies, dotConnect for Oracle uses the first home found, and you cannot specify another home via OracleHome, OracleHomeCollection classes or OracleConnection.Home, OracleConnectionStringBuilder.Home properties. You can use the Direct mode on .NET Core.
-
Sync Framework support. There are no .NET Standard compatible Devart.Data.Synchronization.dll and Devart.Data.Oracle.Synchronization.dll assemblies.
-
Workflow Foundation support.
-
Asynchronous query execution.
-
Enterprise Library support.
The following features are supported in .NET Standard 2.0/2.1 compatible assemblies, but are not supported in .NET Standard 1.3 compatible assemblies:
-
Oracle 12c and higher authentication protocol in the Direct connection mode. There is a workaround, described below.
- SSL in the Direct connection mode.
-
Database object metadata. Since there are no DataTable class, there are no GetSchema method to retrieve the Oracle metadata as a DataTable.
-
Query column metadata. Since there are no DataTable class, there are no OracleDataReader.GetSchemaTable method to retrieve the Oracle metadata as a DataTable. However, you can retrieve these metadata in other way. The OracleDataReader class implements the IDbColumnSchemaGenerator interface, and has the GetColumnSchema method that retrieves typed metadata about colums of the query.
-
OracleDataSet, OracleDataTable, OracleCommandBuilder, OracleDataAdapter and related classes.
-
Performance Counters support (they are supported only on Windows).
- Component classes of the dotConnect for Oracle in .NET Standard 1.3 compatible assemblies are no longer inherited from the System.ComponentModel.Component class, because this class is not present in .NET Core. However, they still implement the System.ComponentModel.IComponent interface, because there is such interface in .NET Core 1.0.
- Classes that implement the ICloneable interface in assemblies for Full .NET Framework don't implement this interface in .NET Standard 1.3 compatible assemblies, because there is no such interface in .NET Core 1.0. However, they still have their public Clone() methods.
The following features are supported in .NET Standard 2.1 compatible assemblies, but are not supported in .NET Standard 1.3/2.0 compatible assemblies:
- For .NET Standard 2.1 compatible assemblies you can specify the Oracle home to use for an OCI mode connection.
Connecting to Oracle 12c and Higher in Direct Mode on .NET Core 1.x
dotConnect for Oracle .NET Standard 1.3 compatible assemblies don't support Oracle 12c authentication protocol in the Direct mode. However, it is possible to connect to Oracle 12c and higher using algorithm of Oracle 7 and 8 for password encryption. For this you need to set DirectUtils.OldAuthMode to true.
Additionally you need to allow connections, using the old password encryption algorithm, on the Oracle 12c server. For this you need to set the SQLNET.ALLOWED_LOGON_VERSION_SERVER parameter to 8 in the sqlnet.ora file of your Oracle server. The parameter may be not present in this file. In this case you need to add the following record to it (without quotes): "SQLNET.ALLOWED_LOGON_VERSION_SERVER=8". You can see more details about this parameter in the Oracle documentation.
Other Differences
- The Unicode connection string parameter is set to true by default for .NET Core. For Full .NET Framework it is set to false by default.
See Also
Compatibility
| Direct Mode