WCF 5 for .NET Core 5

WCF is Microsoft’s unified programming model for building service-oriented applications. It support multiple transport protocols (HTTP, TCP, UDP, and custom transports) and allows switching between them (ASP.NET Web API for http/https/websockets only). Supports building services with WS-* standards like Reliable Messaging, Transactions, Message Security.

In Enterprise Apps WCF remains very popular.

Please impliment new WCF version for .NET Core and continue support old WCF (4.6) like ASP.NET 4.6 supports for Full .NET and ASP.NET 5 only for .NET Core.

Cross-platform WCF would be very cool.

uservoice idea: https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/9430695-wcf-5-for-net-core

Thanks for the feedback Anatoliy. We appreciate your comments about WCF in general and suggestions for the future. To answer your first question (support the full WCF in .NET Core), we’re evolving our .NET Core roadmap based on user demand, and because the full WCF is so large, we’re taking it feature by feature. If there are specific features of the full WCF that are important to you, feel free to open new issues on GitHub (https://github.com/dotnet/wcf/issues/new ) and we’ll factor it into our planning. The more specific and granular the request, the easier it will be for us to plan.

To answer your 2nd suggestion (cross-platform), we are actively working with other .NET Core library contributors to make this happen. No promises or ETA just yet, but we’re actively starting cross-platform testing now.

Parts of Wcf are in Core

Client side only. And without System.Transactions support.

Servichost is critical .

No chance for transactions that would require bringing in a whole lot of legacy dtc code etc.

1 Like

I would just like to say that I am glad to see WCF being continued. I am not a huge fan of the whole REST movement. I mean, I get it, but I do not think it’s as cool/powerful as WCF. WCF is tops. :smiley: Its configuration was pretty involved, and actually pretty terrible when you account for .NET configuration in general, but overall, you had RPC-style operations and resulting great cross-application boundary design because of it.

My vote would be to improve/remove DataContract opt-in attribute design. This made things messy and burdensome. I also believe a greater focus should be placed on interfaces and not proxy-generation. The REST crowd knocks web services for its code generation. Which I don’t exactly agree with (you don’t have to deal with that code), but the fact that it is there bothers them. Meanwhile, they don’t have any proxies and their code looks like a** full of parsed strings and URIs. :stuck_out_tongue:

In any case, proper/preferred WCF design gets around this by using contracts/interfaces/channel factories. I think this should be the focus going forward.

Finally, speaking of configuration and attributes, a better, alternative design is to provide WCF configuration with POCO elements that describe how WCF should be configured within an application boundary. These POCO elements should be serializable and be able to load in from local disk or even a remote source. Basically a “WCF Application Profile” of sorts. And PLEASE account for different serialization formats, not just JSON, and XML (both having poor tooling support), but Xaml as well. Yes, Xaml. For editing server-side objects. .NET Xaml was made to define any POCO object. In fact, here is an example of Xaml POCO editing that I put together over this past weekend for Tile Notifications:

It would be nice to have this on the server-side for server-side components and yes(!) WCF. <3

Of course, in order to do this, Core .NET team will have to provide Xaml as a first-class citizen of its new package suite. :smile: Related thread here: Nature of Core.NET / System.Xaml

@roncain, at this moment WCF Team has plans and roadmap for WCF (.NET Core version) development and impl new features?
Or .NET Core WCF version will be only small subset of Full WCF and will not receive such development like asp.net 5?

Please provide WCF Server (ServiceHost’ing capability) to .NET Core. Many enterpises uses WCF for SOA integration with partners (WS-* standards) so it would be extremely useful to jump on latest framework, enable hosting on another platforms.

ServiceHost, BasicHttpBinding, WebHttpBinding classes.

Can we have option to create WCF service with .NET Core and host in both Windows and Mac?

Can we please get some updates on WCF for .Net Core?

I’m salivating over the idea of porting our WCF back end to .Net Core.

In terms of specific features, I don’t think it’s a big deal to implement the complexities of WCF. We just need basic HTTP/HTTPS binding and behavior.

If you asked me a few months ago, I would have said that we need the full authentication model, including username/password authentication and so on. But, Microsoft has basically ditched this stuff anyway. UWP doesn’t support username/password authentication, and Silverlight either never did, or it came in after the ship had sailed. I could never get username/password authentication work on Xamarin based technologies either. The only technology I’ve ever been able to use username/password authentication on was .Net! Even this is hellishly complex to get working.

To make our framework compatible with REST, we have now implemented an auth token based system of authentication. This was actually a very good choice for us because it takes authentication out of the hands of things like ASP, and allows us to be compatible with pretty much any UI technology that supports basic binding. Also, auth token authentication is about a million times easier to configure than username/password authentication. Auth token authentication in WCF essentially allowed us to implement a service with the bare minimum WCF requirements, and this means maximum support from WCF clients. Big win!

So, focus on the basics! Basic binding! Get it going!

1 Like

see github dotnet/wcf repository if it could solve your problem.

Ok, I have an application running on Windows, designed to scan the dozens of AWS accounts our team manages and return useful data from all the accounts about the AWS components we use. Current generation program uses a self-hosted WCF service in the application, with a WPF UI that talks to it to boss it around and display the data. This works great for me, but the rest of my team are stinkin Mac users and cannot run my Windows Application.

Phase two will probably be to host the engine on IE, and connect with a remote client. The original was designed to be standalone. Can I just add a new Core application and connect it to my Web Service and expect it to compile and work?

The project is currently online at trycorder.stiv.com if anybody wants to muck with it. Ideally I would have like to just compile the whole project for Mac, but guessing that aint gonna happen.

This is wcf client https://github.com/dotnet/wcf . and it works on Linux , i don’t know if it would work on mac or not but it should.

The WCF feature team is actively working on roadmap plans for WCF functionality in future .NET Core releases. For next steps, we need your feedback in terms of top scenarios, feature usage and target profiles.

We would appreciate it if you can complete our survey.

.NET Core - WCF Support Survey

.NET Foundation Website | Blog | Projects | Code of Conduct