4.0.0 Preview 8 (19369.1)
Pre-releaseFixes
This release contains all of the fixes in 3.0 up to this point. The complete list of fixes will be provided in the official 4.0 release.
Roadmap
This release provides support for ASP.NET Core 3.0. In order to build against this preview release, you need build 3.0.0-preview8.19358.6
or higher. You will likely need to use the daily build as the latest preview build is Preview 6.
Since the latest preview build does not contain all of the required changes for API Versioning, there is no easy way to build the project for the official NuGet feed. As an official Microsoft open source project, all libraries and the NuGet package must be signed in order to publish to the public feed. This project does not have any monetary funding or budget so alternative options such as MyGet.org are not currently available. For now, the NuGet packages will be available directly from the release, which you can add to your own private feeds. The easiest way to achieve that is to simply create a folder, put the packages in it, and then add that folder as a package feed source. I expect this to be alleviated in the next ASP.NET Core 3.0 preview release, which I presume will be Preview 7 or Preview 8 sometime in the near future.
As most should already know, ASP.NET Core 3.0 will only support .NET Core 3.0. This means that support for the full .NET Framework has been dropped. I suspect it will still be a while before all developers cut completely over to .NET Core - for various reasons. The differences for API Versioning are minimal between 2.2 and 3.0. Managing separate branches between the two with fixes and features would be difficult for me to maintain.
API Versioning will multi-target between the ASP.NET Core versions to keep things in lock-step. The package will now support ASP NET.Core 3.0 on .NET Core 3.0 and continue supporting ASP.NET Core 2.x on .NET Standard 2.0. This will allow developers staying on ASP.NET Core 2.x the benefits of the latest updates and provide a smoother transition when they eventually move to ASP.NET Core 3.0. This will also continue to serve other supported scenarios such as OData, which does not yet have ASP.NET Core 3.0 support.
The long-term roadmap is not yet set, but expect that multi-target support, and ultimately support for the full .NET Framework, will be dropped around the ASP.NET Core 4.0 time frame.
Quality
In general, you can expect this release to be of high quality. With the exception of ASP.NET Core 3.0 support, all other libraries and packages are roll-ups of existing fixes and features. The Preview label will remain in-place until ASP.NET Core 3.0 stabilizes. Please continue to report any bugs you find, but expect slower turnaround times to this preview build versus the official API Versioning 3.x release.
Breaking Changes
The following are breaking changes from 3.0:
All Platforms
- The Conventions API has been refactored to enable end-to-end customization of conventions. In previous versions, you could use the built-in conventions or define a custom controller-level convention; however, the design did not appropriately extend into custom conventions for their actions. The newest revision will now allow you to define custom conventions at all levels. The change mostly involves renaming, shifting members, and adding new interfaces. In the majority of cases, your code will have source code compatibility with the new API and requires nothing more than a rebuild against the latest package.
OData (Web API and ASP.NET Core)
- The UseQualifiedOperationNames property has been removed from the ODataApiExplorerOptions and is supplanted by the UseQualifiedNames property. UseQualifiedOperationNames was marked obsolete in 3.x.