Statement of Direction: Oracle Database Support for .NET Runtimes
By: Alex Keh
Tags: Support, Certification, Odpnet, Oracle Database, Microsoft Dot Net

.NET development for Oracle Database

Microsoft previously announced .NET Framework 4.8 is the last major .NET Framework version and .NET (Core) is the future for runtime innovation.

The Oracle .NET team is focusing more and more of its efforts to enhance Oracle Database developer features for .NET 5 and future .NET runtime versions. As a result, Oracle will consolidate its support for .NET Framework starting with the next ODP.NET release, 21c. Below are the changes planned.

.NET Framework 4.8 Support Only

ODP.NET and .NET Framework Support Matrix

ODP.NET 21c will only support the 4.8 version of .NET Framework.

That means it will not support .NET Framework (FW) 3.5. For developers that continue to use this older runtime, Oracle recommends remaining with ODP.NET 19c whose support timeline aligns closely with version 3.5.

.NET FW 4.x users should upgrade to the latest 4.8 version when developing with ODP.NET 21c. Of course, they too can remain with ODP.NET 19c using an earlier 4.x version.

ODP.NET 19c supports data access to Oracle Database 21c and future database versions, in addition to supporting older Oracle database versions back to 11.2.0.4.

Oracle ASP.NET Providers, Oracle .NET Stored Procedures, and .NET Framework Support Matrix

The ODP.NET dependent components, Oracle Providers for ASP.NET 21c and Oracle Database Extensions for .NET 21c (.NET stored procedures), will only be certified with .NET FW 4.8 as well. These dependent component versions use managed ODP.NET exclusively for data access.

Entity Framework 6.4 and Managed ODP.NET Only

Oracle Entity Framework 6 Support Matrix

.NET FW Entity Framework (EF) apps upgrading to ODP.NET 21c will require EF 6.4 and managed ODP.NET. If apps wish to stay on older EF versions or unmanaged ODP.NET, they should continue to use ODP.NET 19c. From an EF6 feature perspective, there is no difference between unmanaged and managed ODP.NET, except the latter is much easier to install and deploy. Developing EF6 apps with either unmanaged or managed ODP.NET is essentially the same. As such, Oracle has consolidated its future EF6 support around the provider type, managed ODP.NET, which developers prefer.

Managed and Unmanaged ODP.NET

While .NET FW support and certification will focus near exclusively on terminal versions, new feature development in managed and unmanaged ODP.NET will continue for the near future. Developers will see support for new Oracle Database 21c features in these providers.

In addition, the Oracle .NET team will complete major feature parity among all three ODP.NET drivers before shifting new feature development focus primarily to ODP.NET Core. Over the course of the next couple of years, managed ODP.NET and ODP.NET Core will have features and APIs that nearly match those in unmanaged ODP.NET. With major features at parity, all apps will have an easier time migrating from unmanaged ODP.NET to managed ODP.NET or managed ODP.NET to ODP.NET Core. Developers can then make the transition to their preferred provider type or runtime with minimal ODP.NET code changes.

After completing major feature parity, fewer new ODP.NET features will be added to the managed and unmanaged drivers in subsequent releases. Most new feature development will focus on ODP.NET Core. ODP.NET Core will then be a superset of ODP.NET managed and unmanaged driver features. Developers will be able to easily migrate to ODP.NET Core at any point in the future.

Oracle will continue to ship new managed and unmanaged ODP.NET versions with every database release for the foreseeable future. This provides a support path for developers that want to remain on .NET FW indefinitely.

.NET (Core) and EF Core

By decreasing Oracle’s investment in .NET Framework, Oracle will enhance its focus on .NET 5 and future runtime releases, including timely certification of new runtime and EF Core versions and features.

Microsoft’s release cadence is yearly with a new .NET version scheduled every November. Oracle plans to match this release cadence. ODP.NET Core 19.10 was released on NuGet Gallery with .NET 5 support this past November, the same month that Microsoft released .NET 5. Oracle plans to add Entity Framework Core 5 support this month.

ODP.NET Support Matrix for .NET (Core) and EF Core

Future ODP.NET Core and Oracle EF Core releases will support at least two .NET versions: the latest .NET version and the Long Term Support (LTS) version before it. For example, ODP.NET Core 21c and Oracle EF Core 21c will support .NET 5 and .NET Core 3.1. The ODP.NET Core and Oracle EF Core versions scheduled for release at the end of 2021 will support .NET 6 and .NET Core 3.1. The ODP.NET version number will be based on the latest database version available at the time of release.

.NET 5 is a “Current” release. Its support is planned to end in early 2022. .NET Core 3.1 support is scheduled to last until the end of 2022 as of this writing.

The ODP.NET Core and Oracle EF Core releases scheduled for the end of 2022 will support .NET 7 (Current) and .NET 6 (LTS).

The further we go out in time, the more difficult to predict with certainty future release support. These plans are Oracle’s intended direction at this time so that developers and administrators can prepare their product upgrade and usage accordingly.

Features Coming in 2021

With ODP.NET 21c, the Oracle .NET team will deliver a number of new features. Here are the major ones to expect in the first half of 2021:

Entity Framework Core 5 (Core only)

User-Defined Types (Core and managed)

Native JSON data type (Core, managed, and unmanaged)

Sharding (Core and managed)

The user-defined types and sharding features will bring ODP.NET managed and Core features closer to feature parity with unmanaged ODP.NET. I’ll blog more about these features when they are delivered.

Summary

Which ODP.NET release to upgrade or migrate to depends on your application end goal. For apps that are continuously innovating, upgrade to ODP.NET 21c (and Oracle Database 21c) and the newest .NET FW and .NET runtimes versions in the short term. You will find the latest innovations in the 21c version of ODP.NET Core, managed, and unmanaged. Longer term, plot a course to .NET runtime and ODP.NET Core.

For maintenance mode apps, especially if they must remain on older .NET FW versions, upgrade to ODP.NET 19c. 19c is a stable Long Term Support release that will be supported for many years to come.

I hope this blog post has informed you about Oracle’s .NET (FW) runtime planned direction. Feel free to comment on this post or reach out to me directly (alex.keh[at]oracle.com) if you have any questions or feedback.