Implement WCF Data Portal Channel#4851
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new Csla.Channels.Wcf data portal channel to enable CSLA data portal communication over WCF (System.ServiceModel on .NET Framework and CoreWCF on modern .NET), aligning with the long-term goal in issue #1183.
Changes:
- Introduces a new
Csla.Channels.Wcfproject multi-targeting .NET Framework and modern .NET, with CoreWCF support on modern runtimes. - Implements server-side WCF/CoreWCF portal hosting and request dispatch (
WcfPortal, server DI extensions/options). - Implements client-side proxy configuration and invocation (
WcfProxy, client DI extensions/options), plus shared request/response DTOs and README guidance.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| Source/csla.build.sln | Adds the new Csla.Channels.Wcf project to the build solution. |
| Source/Csla.Channels.Wcf/Csla.Channels.Wcf.csproj | New multi-targeted channel project with framework-specific WCF/CoreWCF dependencies. |
| Source/Csla.Channels.Wcf/readme.md | Documentation for hosting and client configuration for WCF/CoreWCF. |
| Source/Csla.Channels.Wcf/WcfRequest.cs | Defines the WCF request DTO carrying operation name and serialized payload. |
| Source/Csla.Channels.Wcf/WcfResponse.cs | Defines the WCF response DTO carrying serialized response payload. |
| Source/Csla.Channels.Wcf/Client/WcfProxyOptions.cs | Client-side options (binding + URL). |
| Source/Csla.Channels.Wcf/Client/WcfProxy.cs | Client proxy implementation that calls the WCF service. |
| Source/Csla.Channels.Wcf/Client/WcfClientExtensions.cs | DI extensions to wire up the WCF proxy. |
| Source/Csla.Channels.Wcf/Client/IWcfPortal.cs | Client-side WCF service contract used by ChannelFactory. |
| Source/Csla.Channels.Wcf/Server/IWcfPortalServer.cs | Server-side WCF/CoreWCF service contract. |
| Source/Csla.Channels.Wcf/Server/WcfPortal.cs | Server implementation that deserializes requests and invokes CSLA server data portal operations. |
| Source/Csla.Channels.Wcf/Server/WcfPortalOptions.cs | Server-side options (binding + base/path address). |
| Source/Csla.Channels.Wcf/Server/WcfServerExtensions.cs | Server DI extensions to register options and hosting/service types. |
| Source/Csla.Channels.Wcf/Server/WcfPortalHost.cs | .NET Framework ServiceHost subclass to integrate DI-based activation. |
| Source/Csla.Channels.Wcf/Server/WcfPortalInstanceProvider.cs | .NET Framework WCF instance provider/contract behavior to construct WcfPortal via DI inputs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
respose -> response Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
poral -> portal Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…nto wcf-portal
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…nto wcf-portal
…nto wcf-portal
|
@rockfordlhotka I think we have everything resolved from the Copilot review at this point. |
This PR provides an implementation of a Data Portal Channel to support #1183.
Some design decisions that probably need to be discussed before merging the PR are:
#if NETFRAMEWORKpreprocessor directive when behavior needed to be different between .NET Framework and modern .net because it seemed to be the simplest condition to check. If there is a better way to do this (particularly if it would help with a .netstandard target framework) please let me know.