Skip to content

CoreWCF v1.5.1

Compare
Choose a tag to compare
@mconnew mconnew released this 09 Nov 19:01
· 27 commits to main since this release

Release Notes

Package Info

CoreWCF.ConfigurationManager 1.5.1
CoreWCF.Http 1.5.1
CoreWCF.Kafka 1.5.1
CoreWCF.Kafka.Client 1.5.1
CoreWCF.NetFramingBase 1.5.1
CoreWCF.NetTcp 1.5.1
CoreWCF.Primitives 1.5.1
CoreWCF.Queue 1.5.1
CoreWCF.RabbitMQ 1.5.1
CoreWCF.RabbitMQ.Client 1.5.1
CoreWCF.Templates 1.5.1
CoreWCF.UnixDomainSocket 1.5.1
CoreWCF.WebHttp 1.5.1

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, .NET 7, and .NET8. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 8.0. The CoreWCF.RabbitMQ.Client, CoreWCF.Kafka.Client, and CoreWCF.UnixDomainSocket packages only support .NET 6 or later.

New Features

Unix Domain Socket support

With this release, the CoreWCF.UnixDomainSocket package has come out of preview. This package enables you to use unix domain sockets for same host communication with CoreWCF. This provides an alternative to NetNamedPipe and works on all supported platforms. This was contributed by @birojnayak from AWS. The WCF Client project is simultaneously releasing the package System.ServiceModel.UnixDomainSocket to provide the client for this transport.

New implementation of default IOperationInvoker

In previous versions, the IOperationInvoker called MethodInfo.Invoke to call the service method. This is a relatively expensive way to call a method. In this release, we have a new implementation using LINQ Expressions which compiles a strongly typed lambda function to call the service method. This will provide a small performance improvement when dispatching a service call. If you experience any compatibility issues, you can set the AppContext switch CoreWCF.Dispatcher.UseLegacyInvokeDelegate to true to fallback to the previous implementation. If you need to do this, please open an issue explaining the problem you had. This feature was implemented by @g7ed6e
 

What's Changed

Bug Fixes

  • Fix ambiguous UseServiceModel when using WebApplication by source including CoreWCF extension method for net6.0+ by @g7ed6e in #1235
  • Fix PathTooLongException in OperationParameterInjectorGenerator by @g7ed6e in #1240
  • For the Kafka binding, enhance offset commit handling when using AtLeastOnce semantic by @g7ed6e #1260
  • Renamed UnixDomainSocketClientCredentialType.IdentityOnly to PosixIdentity and added enum type UnixDomainSocketSecurityMode to create UDS security mode TransportCredentialOnly to correctly reflect that PosixIdentity doesn't provide any transport encryption or integrity by @birojnayak in #1262
  • Updated package dependencies to latest minor version by @mconnew in #1272
  • Prevent code analyzers from analyzing CoreWCF extension method source included by package by @bjornen77 in #1278
  • Prevent CoreWCF extension method source being included when targeting netstandard2.0 by @mconnew in #1196
  • Prevent CoreWCF extension source file being compiled when project doesn't reference asp.net core by @mconnew in #1282

Feedback

Your feedback is important and appreciated. Please use the discussion #1288 for your questions and comments.

Full Changelog: v1.5.0-preview1...v1.5.1