3 ms·
Short answer is yes for most workloads. It's fast, scalable and well supported. WCF could operate over pipes which was cool for machine local IPC, but beyond t
by algorithmsRcool 7y ago
Short answer is yes for most workloads. It's fast, scalable and well supported.
WCF could operate over pipes which was cool for machine local IPC, but beyond that I think gRPC is superior.
But I asked your exact question to the dotnet team and architect David Fowler gave me a decent answer.
> "I don't know that we have a definitive answer as yet and the GRPC experience while great isn't nearly as smooth (as of writing) as the WCF experience. I would say that it's definitely going to be one of the main RPC option of choice going forward but it;s a bit early to say that this is THE blessed new way."
https://github.com/dotnet/core/issues/2278 https://github.com/dotnet/core/issues/2278
- pjtr 7y agoAre there options for machine local IPC over pipes in .NET Core?
- avinium 7y agoFairly limited, but anonymous pipes might fit your use case: https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-use-anonymous-pipes-for-local-interprocess-communication https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-u...
- paulio 7y agoI might be the only person who liked WCF.
- algorithmsRcool 7y agoI liked kinda liked it, but trying to unify HTTP, TCP, Pipes and MSMQ into a single framework was probably overly ambitious. WCF always felt very complicated with all sorts of sharp edges to me.
- WorldMaker 7y agoWCF also originally supported peer-to-peer network topologies, discovery methods like PNRP (Microsoft's competitor standard to eventual "winner" Bonjour/mDNS), various versions of the SOAP metadata formats, and WS-* standards, etc. It was definitely ambitious. When it worked it was sometimes magic, and when it didn't it was a giant mess to resolve. [ETA: In one past life I made the mistake of trying to use WCF Peer-to-Peer for a project and I still have scars from that. :O]
- paulio 7y agoIt has a steep learning curve, true. I personally like sharing `interface.cs` rather than what appears very similar `interface.proto` plus a bunch of tooling. Ahh well, things go in circles I guess.
- flukus 7y agoI liked WCF, but .net devs insisting on using it to create pointless separate physical layers for web apps dulled my enthusiasm. Resume driven development in it's highest form.
- efdee 7y agoThis is always their answer - whether it's about .NET vs .NET Core, Winforms vs WPF, ADO.NET vs EF, Webforms vs MVC, or even language features like "var" (remember that originally they would tell you to avoid 'var' unless you're dealing with Linq). "The new thing isn't immediately going to replace the old thing going forward" and then it does. (And it should. I just don't get why they're always tiptoeing around that same point.)
- algorithmsRcool 7y agoWell in this case they have made clear that WCF isn't going to be supported officially in dotnet core. They are just being non-committal about gRPC being the successor. But I have seen Fowler poking around in the RSocket codebase recently, so who knows.