dotnet / wcf

This repo contains the client-oriented WCF libraries that enable applications built on .NET Core to communicate with WCF services.
MIT License
1.72k stars 558 forks source link

Server side WCF #1200

Closed jan-johansson-mr closed 6 years ago

jan-johansson-mr commented 8 years ago

Hi,

I'd like to start a thread to have a dialog about server side WCF on .NET Core. For me the WCF stack is quite impressive, and support for server side WCF on .NET Core would be fantastic. Please feel free to add your opinions to the thread.

Here is a list of some of the WCF features (that comes to my mind):

These features and more are for me very desirable, but some might be harder to support (e.g. WCF transactions relies on MS DTC (as fas as I know), but transactions enabled communication on a server side is a very important feature).

I hope you're as excited as I am about WCF, and even more so for a server side WCF on .NET Core.

abatishchev commented 8 years ago

Interoperability should be implemented using open standards and lightweight technologies such as RESTfull web, micro services. XML is supported if you'd like.

Stop invest in dead technologies such as WCF and VB.NET, spending tremendous amounts of resources to nowhere, instead of spending for something good.

popcatalin81 commented 8 years ago

Leave security, transactions, pub/sub up to the implementer...

This is the worst piece of advice anyone can give. Security should never be left to the implementer, it's the source of most atrocious security bugs ever .... There are really few security experts or developers capable of implementing security details properly, this is a job for less than 1% of the programmers out there.

aws-na-ss-usplu commented 8 years ago

Would love to see WCF play nicely with emerging Web Service projects that are attempting to be RMM RESTful service in addition to SOAP.

Such as, but not limited to,

Would love to see MEX style endpoint that can publish these emerging technologies so we will not have to choose or implement both WebAPI and WCF.

Would love to more reliability consume this new RESTful web service that are ate least RMM Level 3 so that our team can spend more time focus on creating new process and solving problems without focusing time on the plumbing.

Looking to bridge interoperability and integration,some systems and services are now moving these emerging technology. I would love to see a clearer path to the future.

Is it possible to incorporate WebAPI in WCF in a self-hosting, Azure or docker style deployment, and have the services published as many useful technologies as an endpoint to be consumed by other services and systems?

imatitya commented 8 years ago

Check out this project. it is not WCF, but might be useful to achieve some of backend abilities.

ewinnington commented 8 years ago

There is another start at a WCF-like ServiceCore for .net core: https://github.com/MhAllan/TcpServiceCore

YulerB commented 7 years ago

My .NET Solutions rely on configuration service behavior's for certificate authentication. I need MEX support to generate the W.S.D.L. for smart contract binding at run-time. We also generate service proxies at run-time from W.S.D.L. and then use reflection to load and invoke. Also our logging via W.C.F. doesn't perform well enough unless its running using T.C.P. binding.

jnappi commented 7 years ago

WCF on .NET core will be critical for out migration and adoption of .NET core. We're leveraging many of the capabilities of WCF and without a clear migration path core won't be as compelling. These are requirements.

  1. Transactions
  2. A transactional queuing programming model
  3. Extensibility model
ByronAP commented 7 years ago

Another vote for WC on .net core. I have an entire infrastructure that is being converted to netstandard and core however we are currently deliberating what to do about not having WCF available. WCF for us means that developers can easily consume a complex api with almost no knowledge of it. Without WCF we will either have to abandon a lot of the plans or suffer a decrease in productivity. :-(

phillip-haydon commented 7 years ago

WCF for us means that developers can easily consume a complex api with almost no knowledge of it.

This couldn't be any better of a reason to NOT support WCF.

scotthurlbert commented 7 years ago

Phillip,

It's possible you misunderstood the comment. I believe the reason that Allen made that comment (and I'd love to hear his actual reason) is that using WCF gives you two specific things in terms of an API. First, it's gives the true separation of dependencies and implementation (ala - the actor model and service orientation). Second, it supports an interface based programming model https://en.wikipedia.org/wiki/Programming_model. By only having access to the proxy, those using the API only need to know the proxy to use it. [Granted, that can still require a great deal of knowledge, but not of the implementation.]

Scott

On Thu, Jan 12, 2017 at 12:22 AM, Phillip Haydon notifications@github.com wrote:

WCF for us means that developers can easily consume a complex api with almost no knowledge of it.

This couldn't be any better of a reason to NOT support WCF.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272102246, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_EjJM2goqjrTyHEWC94HgDv1XDMUhks5rReLggaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

ByronAP commented 7 years ago

What I mean by that is, I don't have to write a thousand page how to and hand it over for someone else to use the API. So, if I say to another dev hey the API you need for that is at this address I can basically end the conversation at that when using WCF.

Phillip, are you saying you don't like productivity? Do you not like the idea of inexperienced devs? Are you a "I am the greatest dev alive" guy? because if you even pause for a second to contemplate yes to any of those things you have a very rude awakening coming. It would also have been nice if you gave some actual reasoning behind your comment, not just flaming.

I personally have taken on the task of creating a compatible library which handles the basic WCF functionality and written the service interfaces into a shared library. While not as flexible as WCF, it is in fact a lot faster than a full implementation. My internal time to return a call is now less than 1ms (net rx to tx of simple message), which WCF can't compete with. This is all nice and dandy, however I still yearn for WCF.

phillip-haydon commented 7 years ago

Do I like being productive, absolutely. That means, never using WCF.

I think I would rather become a rice farmer than ever touch WCF again.

phillip-haydon commented 7 years ago

I have dreamed for years of having WCF across their entire network so that I can finally (!) have reliable transactions and durable services spanning their various generations of Linux and Windows.

This is another good reason to not support WCF. Years of people implementing designs using WCF based on false assumptions or mythical functionality.

nathan-alden-sr commented 7 years ago

I understand that WCF provides value to many, many people, but does that mean .NET Core should support it? WCF seems to be at least partially tightly-coupled to Windows--the antithesis of .NET Core. How many shops relying on WCF actually need to deploy on Linux? I think that would be a bad architectural decision. If things are running so smoothly now considering the tight-coupling, why change it? Is running on Linux a net positive?

scotthurlbert commented 7 years ago

Nathan

Which parts are you talking about? There are some protocols that WCF supports that are Windows specific but I'm not aware of WCF being windows specific.

And yes, there is a ton of code that it would be advantageous to deploy on Linux for the same reasons that any .NET core code should be run on Linux.

I'm surprised at the anti-WCF bias here. Where is this coming from? It seems...in appropriate. Not all services are best built as web services without a proxy.

Scott

On Fri, Jan 13, 2017 at 8:02 AM, Nathan Alden, Sr. <notifications@github.com

wrote:

I understand that WCF provides value to many, many people, but does that mean .NET Core should support it? WCF seems to be at least partially tightly-coupled to Windows--the antithesis of .NET Core. How many shops relying on WCF actually need to deploy on Linux? I think that would be a bad architectural decision. If things are running so smoothly now considering the tight-coupling, why change it? Is running on Linux a net positive?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272479021, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_Ekz28hvIFATcjNsyv8xUh00h32U0ks5rR6AjgaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

websitewill commented 7 years ago

Seems as though, still, many folks look at WCF as "just web services" as opposed to seeing it for what it actually is, and what lots of people use it for: a modern communication stack and framework for building systems. WCF isn't just about web services - in fact, it is very little about web services.

On Fri, Jan 13, 2017 at 4:01 PM, Scott Hurlbert notifications@github.com wrote:

Nathan

Which parts are you talking about? There are some protocols that WCF supports that are Windows specific but I'm not aware of WCF being windows specific.

And yes, there is a ton of code that it would be advantageous to deploy on Linux for the same reasons that any .NET core code should be run on Linux.

I'm surprised at the anti-WCF bias here. Where is this coming from? It seems...in appropriate. Not all services are best built as web services without a proxy.

Scott

On Fri, Jan 13, 2017 at 8:02 AM, Nathan Alden, Sr. < notifications@github.com

wrote:

I understand that WCF provides value to many, many people, but does that mean .NET Core should support it? WCF seems to be at least partially tightly-coupled to Windows--the antithesis of .NET Core. How many shops relying on WCF actually need to deploy on Linux? I think that would be a bad architectural decision. If things are running so smoothly now considering the tight-coupling, why change it? Is running on Linux a net positive?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272479021, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_ Ekz28hvIFATcjNsyv8xUh00h32U0ks5rR6AjgaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 <(415)%20378-9908> scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272546841, or mute the thread https://github.com/notifications/unsubscribe-auth/ASs0gQBGc7h3H6ioD-JCh5lVB9c-tAyuks5rR-YUgaJpZM4Ikmmx .

-- Will Comeaux websitewill@gmail.com LinkedIn http://www.linkedin.com/pub/wilmer-comeaux/43/14/404?trk=shareTw Twitter https://twitter.com/wilmercomeaux Facebook http://www.facebook.com/WilmerComeaux

alfred-c commented 7 years ago

Nathan: If the premise of .NET Core is to be everywhere, there ought to be a universal mechanism (WCF, or an improved successor to WCF) that connects everything together, don't you think? Why should it matter to your apps what platform your devices are running? Likewise, why should it matter how to get a message from point A to B reliably and securely, handling the serialization/deserialization, over a buffered/streamed/queued transport, supporting transactional rollback of a call chain, with fault exception propagation, etc? WCF came close to offering a universal connection mechanism with an extensible pipeline. Frameworks that do web services with REST over HTTP don't even come close.

Scott: The Windows specific part that comes to mind is distributed transaction support that relies on MSDTC. I'll leave it to the Microsofties to figure out how to NuGet and port that to non-Windows platforms.

Alfred

On Fri, Jan 13, 2017 at 1:11 PM websitewill notifications@github.com<mailto:notifications@github.com> wrote: Seems as though, still, many folks look at WCF as "just web services" as

opposed to seeing it for what it actually is, and what lots of people use

it for: a modern communication stack and framework for building systems.

WCF isn't just about web services - in fact, it is very little about web

services.

On Fri, Jan 13, 2017 at 4:01 PM, Scott Hurlbert notifications@github.com<mailto:notifications@github.com>

wrote:

Nathan

Which parts are you talking about? There are some protocols that WCF

supports that are Windows specific but I'm not aware of WCF being windows

specific.

And yes, there is a ton of code that it would be advantageous to deploy on

Linux for the same reasons that any .NET core code should be run on Linux.

I'm surprised at the anti-WCF bias here. Where is this coming from? It

seems...in appropriate. Not all services are best built as web services

without a proxy.

Scott

On Fri, Jan 13, 2017 at 8:02 AM, Nathan Alden, Sr. <

notifications@github.commailto:notifications@github.com

wrote:

I understand that WCF provides value to many, many people, but does that

mean .NET Core should support it? WCF seems to be at least partially

tightly-coupled to Windows--the antithesis of .NET Core. How many shops

relying on WCF actually need to deploy on Linux? I think that would be

a bad architectural decision. If things are running so smoothly now

considering the tight-coupling, why change it? Is running on Linux a net

positive?

You are receiving this because you commented.

Reply to this email directly, view it on GitHub

https://github.com/dotnet/wcf/issues/1200#issuecomment-272479021, or

mute

the thread

<https://github.com/notifications/unsubscribe-auth/ABo_

Ekz28hvIFATcjNsyv8xUh00h32U0ks5rR6AjgaJpZM4Ikmmx>

.

--

Scott Hurlbert

Technical Architect

415-378-9908 <(415)%20378-9908>

scotthurlbert@hotmail.commailto:scotthurlbert@hotmail.com

AIM: scottahurlbert

Skype: hurlbert

GTalk: scottahurlbert@gmail.commailto:scottahurlbert@gmail.com

Blogs:

You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub

https://github.com/dotnet/wcf/issues/1200#issuecomment-272546841, or mute

the thread

https://github.com/notifications/unsubscribe-auth/ASs0gQBGc7h3H6ioD-JCh5lVB9c-tAyuks5rR-YUgaJpZM4Ikmmx

.

--

Will Comeaux websitewill@gmail.com<mailto:websitewill@gmail.com>

LinkedIn http://www.linkedin.com/pub/wilmer-comeaux/43/14/404?trk=shareTw

Twitter https://twitter.com/wilmercomeaux

Facebook http://www.facebook.com/WilmerComeaux

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/dotnet/wcf/issues/1200#issuecomment-272548880, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABInQSrgZ2uLSVh403ulQCS0XvKTSyh8ks5rR-htgaJpZM4Ikmmx.

ByronAP commented 7 years ago

@phillip-haydon If you don't like it, don't use it!!! Why try and stop others from using it? and most importantly why do so with absolutely no information just flaming? sorry but show me, tell me why?

I have been using WCF on some major back end infrastructure since 2013 and have never had a problem.

I am currently refactoring/rewriting a lot of WCF code to use on Linux which will use what I have dubbed UCF (Universal Communications Foundation). So far it is working great and while it is not full WCF it does use the same structuring and tags.

So, if this way of doing things is so terrible tell me why, don't just talk smack. Facts, Proof, Scientific Method... I will even take an article written by some random guy who knows nothing but javascript written on Wikipedia, just show me something.

Many companies, both large and small, use WCF! The ability to run .NET Core on Linux is huge and is being widely adopted. The idea of write once run anywhere that took off with Java is now moving to .NET. This is in part because of the language offerings of .NET (F#, C#, VB, C++...). Another big factor is the way Oracle treats the open source community (very poorly as of late) and the fact that Microsoft is doing the exact opposite by opening code not closing it off. C# is also a huge draw as it is very popular with both novice and expert programmers which allows many companies to hire lower level developers.

I personally and I am sure many others agree, that having higher developers create consumable nearly foolproof services and feeding lower level developers the basics of how it works is both a time and money saver. The only real reason I can see anyone truly hating WCF and want to see it gone is that the either; don't have much experience with it, they are a senior developer that feels like creating positions for lower levels may cause job insecurity.

I ask kindly post something informative and factual or just stop trolling.

scotthurlbert commented 7 years ago

Websitewill,

Thanks for the comment and not just because I'm part of the choir. If they don't move WCF to .NET Core then there are a host of other things that can't be built. Yet, if they do build it there will be little to no impact on the dissenters. So on one hand, it's a big deal to those of us that want it and can use it and it's of no importance to those that don't so I don't care at all for the negative attitude.

Hopefully reason will prevail.

Scott

On Fri, Jan 13, 2017 at 1:11 PM, websitewill notifications@github.com wrote:

Seems as though, still, many folks look at WCF as "just web services" as opposed to seeing it for what it actually is, and what lots of people use it for: a modern communication stack and framework for building systems. WCF isn't just about web services - in fact, it is very little about web services.

On Fri, Jan 13, 2017 at 4:01 PM, Scott Hurlbert notifications@github.com wrote:

Nathan

Which parts are you talking about? There are some protocols that WCF supports that are Windows specific but I'm not aware of WCF being windows specific.

And yes, there is a ton of code that it would be advantageous to deploy on Linux for the same reasons that any .NET core code should be run on Linux.

I'm surprised at the anti-WCF bias here. Where is this coming from? It seems...in appropriate. Not all services are best built as web services without a proxy.

Scott

On Fri, Jan 13, 2017 at 8:02 AM, Nathan Alden, Sr. < notifications@github.com

wrote:

I understand that WCF provides value to many, many people, but does that mean .NET Core should support it? WCF seems to be at least partially tightly-coupled to Windows--the antithesis of .NET Core. How many shops relying on WCF actually need to deploy on Linux? I think that would be a bad architectural decision. If things are running so smoothly now considering the tight-coupling, why change it? Is running on Linux a net positive?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272479021, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_ Ekz28hvIFATcjNsyv8xUh00h32U0ks5rR6AjgaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 <(415)%20378-9908> <(415)%20378-9908> scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272546841, or mute the thread https://github.com/notifications/unsubscribe-auth/ASs0gQBGc7h3H6ioD- JCh5lVB9c-tAyuks5rR-YUgaJpZM4Ikmmx .

-- Will Comeaux websitewill@gmail.com LinkedIn <http://www.linkedin.com/pub/wilmer-comeaux/43/14/404?trk=shareTw

Twitter https://twitter.com/wilmercomeaux Facebook http://www.facebook.com/WilmerComeaux

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272548880, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_Eks0WPGHU7o5qDotIyLylHxd4BrJks5rR-hugaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

scotthurlbert commented 7 years ago

Hey Alfred,

Thanks for the response. I figured it was transactions you were talking about. You got me curious so I pulled out PWCF and scanned the Transactions chapter.

I'm 100% sure you right about MSDTC in practice since everything until now has been run on Windows, but my scan of the chapter suggested that WCF does this by supporting several "transaction protocols," the distributed one being WS-Atomic Transaction protocol (WSAT).

I take that to mean that MSDTC is behind the WSAT and that when they port it to other platforms like .NET Core they will probably just provide the protocol and if there are available distributed transaction mechanisms in place to support the protocol you'll be able to use distributed transactions, if not, it'll fall back to call&pray like normal.

Thanks for causing me to crack a book. Ha. Scott

On Fri, Jan 13, 2017 at 3:03 PM, alfred-c notifications@github.com wrote:

Nathan: If the premise of .NET Core is to be everywhere, there ought to be a universal mechanism (WCF, or an improved successor to WCF) that connects everything together, don't you think? Why should it matter to your apps what platform your devices are running? Likewise, why should it matter how to get a message from point A to B reliably and securely, handling the serialization/deserialization, over a buffered/streamed/queued transport, supporting transactional rollback of a call chain, with fault exception propagation, etc? WCF came close to offering a universal connection mechanism with an extensible pipeline. Frameworks that do web services with REST over HTTP don't even come close.

Scott: The Windows specific part that comes to mind is distributed transaction support that relies on MSDTC. I'll leave it to the Microsofties to figure out how to NuGet and port that to non-Windows platforms.

Alfred

On Fri, Jan 13, 2017 at 1:11 PM websitewill <notifications@github.com< mailto:notifications@github.com>> wrote: Seems as though, still, many folks look at WCF as "just web services" as

opposed to seeing it for what it actually is, and what lots of people use

it for: a modern communication stack and framework for building systems.

WCF isn't just about web services - in fact, it is very little about web

services.

On Fri, Jan 13, 2017 at 4:01 PM, Scott Hurlbert <notifications@github.com< mailto:notifications@github.com>>

wrote:

Nathan

Which parts are you talking about? There are some protocols that WCF

supports that are Windows specific but I'm not aware of WCF being windows

specific.

And yes, there is a ton of code that it would be advantageous to deploy on

Linux for the same reasons that any .NET core code should be run on Linux.

I'm surprised at the anti-WCF bias here. Where is this coming from? It

seems...in appropriate. Not all services are best built as web services

without a proxy.

Scott

On Fri, Jan 13, 2017 at 8:02 AM, Nathan Alden, Sr. <

notifications@github.commailto:notifications@github.com

wrote:

I understand that WCF provides value to many, many people, but does that

mean .NET Core should support it? WCF seems to be at least partially

tightly-coupled to Windows--the antithesis of .NET Core. How many shops

relying on WCF actually need to deploy on Linux? I think that would be

a bad architectural decision. If things are running so smoothly now

considering the tight-coupling, why change it? Is running on Linux a net

positive?

You are receiving this because you commented.

Reply to this email directly, view it on GitHub

https://github.com/dotnet/wcf/issues/1200#issuecomment-272479021, or

mute

the thread

<https://github.com/notifications/unsubscribe-auth/ABo_

Ekz28hvIFATcjNsyv8xUh00h32U0ks5rR6AjgaJpZM4Ikmmx>

.

--

Scott Hurlbert

Technical Architect

415-378-9908 <(415)%20378-9908> <(415)%20378-9908>

scotthurlbert@hotmail.commailto:scotthurlbert@hotmail.com

AIM: scottahurlbert

Skype: hurlbert

GTalk: scottahurlbert@gmail.commailto:scottahurlbert@gmail.com

Blogs:

You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub

https://github.com/dotnet/wcf/issues/1200#issuecomment-272546841, or mute

the thread

https://github.com/notifications/unsubscribe-auth/ASs0gQBGc7h3H6ioD- JCh5lVB9c-tAyuks5rR-YUgaJpZM4Ikmmx

.

--

Will Comeaux websitewill@gmail.com<mailto:websitewill@gmail.com>

LinkedIn http://www.linkedin.com/pub/wilmer-comeaux/43/14/404?trk=shareTw

Twitter https://twitter.com/wilmercomeaux

Facebook http://www.facebook.com/WilmerComeaux

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ dotnet/wcf/issues/1200#issuecomment-272548880, or mute the thread< https://github.com/notifications/unsubscribe-auth/ ABInQSrgZ2uLSVh403ulQCS0XvKTSyh8ks5rR-htgaJpZM4Ikmmx>.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-272571703, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_EqSYnQK3m-JM2BC-i0UTXfU3XL77ks5rSAKqgaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

cederlof commented 7 years ago

We have a customer that require a portable backend/service-solution (Linux-host) based on open source software, serving SOAP. As a .NET-shop, we see a future .NET Core WCF-service as an alternative, as we need to consider Java at this point.

ByronAP commented 7 years ago

@cederlof I was working on my own but then I came across ServiceWire which with a very minor teak worked out well for me.

scotthurlbert commented 7 years ago

Does ServiceWire work on .NET Core? I am not seeing anything about that on their website, but I'm not sure where to look for it. In the history it says standard .net library.

Scott

On Wed, Jan 25, 2017 at 12:33 PM, Allen Byron Penner < notifications@github.com> wrote:

@cederlof https://github.com/cederlof I was working on my own but then I came across ServiceWire which with a very minor teak worked out well for me.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-275224895, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_Ej72WR650OIXQPWfmkyVKxNv3HfDks5rV7GvgaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

ByronAP commented 7 years ago

@scotthurlbert yes https://github.com/tylerjensen/ServiceWire/tree/master/src/ServiceWire.Core it is under servicewire.core pull the src, update the packages and apply my pull request and you should be up and running

ByronAP commented 7 years ago

or simply use my repo https://github.com/ByronAP/ServiceWire

cederlof commented 7 years ago

@ByronAP thanks! However it doesn't seem like ServiceWire can serve SOAP? We get WSDL-files from the customer to implement, for other clients to make calls to us using SOAP.

All the best! Cederlof

psimoneau22 commented 7 years ago

The main usage scenario for our company would be using ChannelFactory to generate clients that use a SHARED(server/client) contract For communication between a web-layer (client facing) WebApi and a Backend service layer WebApi (exposed on the internal network only). There is no easy way to make a client that uses the same contracts on the server and client without a lot of boilerplate. We have tried using swagger clients, and hand coding http proxies to hit a WebApi, but there is way to much boilerplate. If you could make ChannelFactory simply work with an existing WebApi (properly using get/put/post etc) and share the contracts, I would be happy. If anyone has any other ways to do this with minimal boilerplate, I would be happy to hear how you are doing it.

xprzemekw commented 7 years ago

Saying that windows based features are a blocker in moving wcf to .net core proves one saying that has little or no experience with it. In fact the only sole windows feature I can think of is automatic integration with DTC which I think is not widely used.

what else can I read there? for example some biased sayings by phillip-haydon. should we ditch swagger? it allows automatic client generation for complex web apis? just an example. looks like a troll account ;)

jarcher commented 7 years ago

Is there an official roadmap from MS on porting and supporting WCF Service or Server-side applications to dotnet core?

ByronAP commented 7 years ago

No

johnvndnbrk commented 7 years ago

I am in a situation in which I am architecting a new solution, a major aspect of which will include SOA. I cannot find anything that offers what WCF does as noted above. Also, I have read articles that WCF is dead and hear comes WebAPI (???). I didn't know they were in competition with one another. I use WebAPI on the web, client-side but behind our firewall I need a robust solution composed of services developed on our Windows application servers. Where WCF exceeds my needs, I cannot find anything to recommend to my higher ups as an alternative. I am having to persuade management that WCF is not dead, won't be a maintenance nightmare in the future when there will only be a scant few who know WCF anymore, that WebApi AND .NET Core are not replacements, etc. I wish that Microsoft would be more committed to WCF and emphasize that it will be ported or moved along with .NET Core, or a commitment to some roadmap. How they are lacking a roadmap for such a comprehensive and core technology stack, leaving room for bloggers to post "WCF is dead ... love live MVC 6" is unfortunate. I am so glad I found this thread and see so many others who find WCF invaluable. It seems that where there is mention that WCF is dead comments, you will also find comments of how hard WCF is compared to WebApi, etc. If I may, see pluralsight.com's courses on WCF by Miguel Castro, his most recent being in 2016. Cheers!

miguelcastro67 commented 7 years ago

Good to see some love for this very alive-and-well technology. My Pluralsight courses have been very successful on this topic. My prediction is a resurgence as true micro service architectures get more mainstream. Many of the things you need to consider in properly architecting micro service systems are built into WCF. You guys all rock!

xprzemekw commented 7 years ago

@johnvndnbrk WCF is solid rock and mature, you won't be disappointed. However this good old Microsoft, create something and abandon.

tpkurilla commented 7 years ago

WCF has been abandoned in exactly the same way that the socket library has been abandoned...

It has been so thoroughly tested and tuned that further development is not needed.

What's there just works.

So, no, they don't have a WCF team anymore. But it is because it isn't needed, not because WCF is being abandoned.

On Wed, May 10, 2017 at 3:47 AM, xprzemekw notifications@github.com wrote:

@johnvndnbrk https://github.com/johnvndnbrk WCF is solid rock and mature, you won't be disappointed. However this good old Microsoft, create something and abandon.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-300445625, or mute the thread https://github.com/notifications/unsubscribe-auth/ADigMOy7EHX7f4fFMS6HOCMzKgtC81euks5r4ZXWgaJpZM4Ikmmx .

-- Thomas Kurilla tpkurilla at gmail dot com

cleytonb commented 7 years ago

Thinking about a service like LogMeIn: I need to maintain a persistent connection from clients to servers so I know they are online and can initiate a remote access from server instantly if they are online, even behind firewalls. And what about big file transfers (big, like, what FASP from Aspera can do)?

ghost commented 7 years ago

My company is also waiting for WCF implementation in .NET Core to start moving into .NET Core. Is there any chance that we will be informed of this feature's status?

scotthurlbert commented 7 years ago

Mine too. Thank you

On Jun 20, 2017 1:13 AM, "lolo267" notifications@github.com wrote:

My company is also waiting for WCF implementation in .NET Core to start moving into .NET Core. Is there any chance that we will be informed of this feature's status?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-309678478, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_EnPLRuqEba2YuE4fdEFAHgs0etYjks5sF38ogaJpZM4Ikmmx .

csharpfritz commented 7 years ago

There very much is a WCF team, and we are working on features to ensure compatibility with Windows 10, Windows Server, and Windows Containers.

We had a very successful presentation at Build where we showed the first of our Windows Containers. Work is continuing in that space, and we plan to continue in these investments.

WCF for .NET Core is very much on our radar, and we are working with the ASP.NET Core to prioritize this work. We will share more details when they are available to broadcast publicly.

phillip-haydon commented 7 years ago

Sad times.

peder commented 7 years ago

What does working with ASP.NET Core mean? Working on at least a subset of WCF server-side features that runs on .NET Core?

csharpfritz commented 7 years ago

@phillip-haydon Why sad times?

Suriman commented 7 years ago

@csharpfritz I imagine Phillip says "sad times" because he would like WCF to be already migrated to .NET Core. This view is shared by many development companies, but I must admit that the message is hopeful. :-)

ewinnington commented 7 years ago

This insecurity we feel in our continued investment in developing with WCF is compounded by https://github.com/dotnet/designs/issues/9 which does not even mention WCF in a design document for networking in dotnet.

I know that server side WCF on core won't be here for a while due to resource allocations.

Sorry, this sounded a bit too negative.

I am looking forward to your communications about the future of WCF and dotnet's networking stack.

ctolkien commented 7 years ago

WCF Server is pretty much legacy at this point. I don't really see why new services would be built on top of it. However having a fairly full fidelity client is important. There are lots of existing services (I'm looking at you, Aussie Government) which are built on WCF and will not be changing any time soon. We can't build systems interfacing with these currently running on .NET Core.

scotthurlbert commented 7 years ago

Chad

I agree with your point about clients but have to take some issue with WCF being legacy. It's legacy the way ToString() or Int32 is legacy as in it's a part of the framework. There is no other way in the framework (and in very few other add-in frameworks) to create transactionable, scaleable, secureable, interface based services.

In understand that there are a lot of js / light-client consumers out there, but there are also a lot of security violations and "leaks" because if you put it in the client it's not secure.

This is an ENTIRE Wcf service:

[ServiceBehavior] public class MySimplestService : IMySimplestService { public string Echo( string pInput ) { return $"I heard you say: {pInput}"; } }

Here is the interface:

[ServiceContract] public interface IMySimplestService { [OperationContract] string Echo( string pInput ); }

Well, maybe hosting the service is hard. Nope. Here is the service hosted and called. This is the code in it's entirety:

var myServ = InProcFactory.CreateInstance<MySimplestService, IMySimplestService>(); Console.WriteLine( myServ.Echo("Hello World") );

There's just nothing that is enterprise quality and as simple.

I think WCF has gotten a strangely bad rap because people implemented it in unbelievably complicated ways. Believe it or not, for .net on both sides of the wire, this is all that's needed. With the ServiceModelEx framework from iDesign you can even build a proxy on the fly:

Binding binding = new BasicHttpBinding(); IMySimplestService proxy = ChannelFactory.CreateChannel( binding, new EndpointAddress( "http://localhost:8008/" ) ); proxy.Echo("Hello");

Seriously, that's 4 lines of code (out of a total 17 with the structural) to create an enterprise service, it's proxy and make the service call. That's not lecagy, that's productivity.

Scott

On Sun, Jun 25, 2017 at 4:22 PM, Chad T notifications@github.com wrote:

WCF Server is pretty much legacy at this point. I don't really see why new services would be built on top of it. However having a fairly full fidelity client is important. There are lots of existing services (I'm looking at you, Aussie Government) which are built on WCF and will not be changing any time soon. We can't build systems interfacing with these currently running on .NET Core.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310935371, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_EluIAn5JrAkun2NQtURAvN9WeOraks5sHuu5gaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

csharpfritz commented 7 years ago

Yes, more investments are being made into a WCF client for .NET Core.

Why do you need a WCF server on .NET Core? Investments continue to be made in NetFx, and with every version of Windows a new version of .NET Framework is released that continues to deliver more support for WCF with bug fixes and enhancements.

If we could snap our fingers and have WCF server capabilities in .NET Core immediately, how would those capabilities change your development projects over the next 12 months?

Jeff

On Sun, Jun 25, 2017 at 8:14 PM, Scott Hurlbert notifications@github.com wrote:

Chad

I agree with your point about clients but have to take some issue with WCF being legacy. It's legacy the way ToString() or Int32 is legacy as in it's a part of the framework. There is no other way in the framework (and in very few other add-in frameworks) to create transactionable, scaleable, secureable, interface based services.

In understand that there are a lot of js / light-client consumers out there, but there are also a lot of security violations and "leaks" because if you put it in the client it's not secure.

This is an ENTIRE Wcf service:

[ServiceBehavior] public class MySimplestService : IMySimplestService { public string Echo( string pInput ) { return $"I heard you say: {pInput}"; } }

Here is the interface:

[ServiceContract] public interface IMySimplestService { [OperationContract] string Echo( string pInput ); }

Well, maybe hosting the service is hard. Nope. Here is the service hosted and called. This is the code in it's entirety:

var myServ = InProcFactory.CreateInstance<MySimplestService, IMySimplestService>(); Console.WriteLine( myServ.Echo("Hello World") );

There's just nothing that is enterprise quality and as simple.

I think WCF has gotten a strangely bad rap because people implemented it in unbelievably complicated ways. Believe it or not, for .net on both sides of the wire, this is all that's needed. With the ServiceModelEx framework from iDesign you can even build a proxy on the fly:

Binding binding = new BasicHttpBinding(); IMySimplestService proxy = ChannelFactory.CreateChannel( binding, new EndpointAddress( "http://localhost:8008/" ) ); proxy.Echo("Hello");

Seriously, that's 4 lines of code (out of a total 17 with the structural) to create an enterprise service, it's proxy and make the service call. That's not lecagy, that's productivity.

Scott

On Sun, Jun 25, 2017 at 4:22 PM, Chad T notifications@github.com wrote:

WCF Server is pretty much legacy at this point. I don't really see why new services would be built on top of it. However having a fairly full fidelity client is important. There are lots of existing services (I'm looking at you, Aussie Government) which are built on WCF and will not be changing any time soon. We can't build systems interfacing with these currently running on .NET Core.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310935371, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_ EluIAn5JrAkun2NQtURAvN9WeOraks5sHuu5gaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 <(415)%20378-9908> scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310937927, or mute the thread https://github.com/notifications/unsubscribe-auth/AAEy8Z-UELvo-zTHSAHRdRBId7RPafU4ks5sHvffgaJpZM4Ikmmx .

scotthurlbert commented 7 years ago

Good question.

Personally I do a lot of IoT projects and what I'd really like is to be able to run server(ish) code on something small, low-power, and cheap like a PI. In the meantime being able to run on a small linux or windows 10 stick/box would be great. Right now I have to setup a full PC (which a full electrical penalty) to run IoT server stuff. If I had such a thing I can guarantee I would have several private subnets around scott-hq, where as now everything is on one because that's where the Server PC is.

That's just one example (with hundreds of different uses). I think the notion of what's a server and what's a client went out the window with NodeJS. I'd much rather use a .NET Core implementation everywhere that people are putting NodeJS.

Scott

On Sun, Jun 25, 2017 at 5:32 PM, Jeffrey T. Fritz notifications@github.com wrote:

Yes, more investments are being made into a WCF client for .NET Core.

Why do you need a WCF server on .NET Core? Investments continue to be made in NetFx, and with every version of Windows a new version of .NET Framework is released that continues to deliver more support for WCF with bug fixes and enhancements.

If we could snap our fingers and have WCF server capabilities in .NET Core immediately, how would those capabilities change your development projects over the next 12 months?

Jeff

On Sun, Jun 25, 2017 at 8:14 PM, Scott Hurlbert notifications@github.com wrote:

Chad

I agree with your point about clients but have to take some issue with WCF being legacy. It's legacy the way ToString() or Int32 is legacy as in it's a part of the framework. There is no other way in the framework (and in very few other add-in frameworks) to create transactionable, scaleable, secureable, interface based services.

In understand that there are a lot of js / light-client consumers out there, but there are also a lot of security violations and "leaks" because if you put it in the client it's not secure.

This is an ENTIRE Wcf service:

[ServiceBehavior] public class MySimplestService : IMySimplestService { public string Echo( string pInput ) { return $"I heard you say: {pInput}"; } }

Here is the interface:

[ServiceContract] public interface IMySimplestService { [OperationContract] string Echo( string pInput ); }

Well, maybe hosting the service is hard. Nope. Here is the service hosted and called. This is the code in it's entirety:

var myServ = InProcFactory.CreateInstance<MySimplestService, IMySimplestService>(); Console.WriteLine( myServ.Echo("Hello World") );

There's just nothing that is enterprise quality and as simple.

I think WCF has gotten a strangely bad rap because people implemented it in unbelievably complicated ways. Believe it or not, for .net on both sides of the wire, this is all that's needed. With the ServiceModelEx framework from iDesign you can even build a proxy on the fly:

Binding binding = new BasicHttpBinding(); IMySimplestService proxy = ChannelFactory.CreateChannel( binding, new EndpointAddress( "http://localhost:8008/" ) ); proxy.Echo("Hello");

Seriously, that's 4 lines of code (out of a total 17 with the structural) to create an enterprise service, it's proxy and make the service call. That's not lecagy, that's productivity.

Scott

On Sun, Jun 25, 2017 at 4:22 PM, Chad T notifications@github.com wrote:

WCF Server is pretty much legacy at this point. I don't really see why new services would be built on top of it. However having a fairly full fidelity client is important. There are lots of existing services (I'm looking at you, Aussie Government) which are built on WCF and will not be changing any time soon. We can't build systems interfacing with these currently running on .NET Core.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310935371, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_ EluIAn5JrAkun2NQtURAvN9WeOraks5sHuu5gaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 <(415)%20378-9908> <(415)%20378-9908> scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310937927, or mute the thread https://github.com/notifications/unsubscribe-auth/AAEy8Z-UELvo- zTHSAHRdRBId7RPafU4ks5sHvffgaJpZM4Ikmmx

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310938956, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_Ep9opRwoyjWrVsrcx--gegeDDYFDks5sHvw0gaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

popcatalin81 commented 7 years ago

@csharpfritz WCF should have been what gRPC is now.

A framework for remote procedure calls, that is: session and contract based, extremely fast, and easy to use, with support for duplex and streaming. The exact opposite and complement of HTTP/Rest.

If WCF is going to be another way to create/consume HTTP/Rest like services, then it is a waste.

scotthurlbert commented 7 years ago

Catalin Pop

I agree that gRPC seems like a fine framework. And a necessary one for most of it's implementations because there is nothing in the basic language framework itself. .NET on the other hand already has WCF.

These two lines of code are just a sample but what's interesting here is that the Binding and the Endpoint schema are components:

Binding binding = new BasicHttpBinding(); IMySimplestService proxy = ChannelFactory.CreateChannel( binding, new EndpointAddress( "http://localhost:8008/" ) ); proxy.Echo("Hello");

This is interesting because it means that by swapping those out WCF can communicate over Http/https, UDP, TCP-IP, MSMQ, NetPipes and a bunch of other protocols and endpoint schemes.

I understand that in the recent web many have forgotten about anything other than HTTP, but if your app grows you may find yourself wishing you had the ability to use the exact same code, but pointing to a queue'd endpoint. Sadly, most other frameworks will leave you re-implementing your system for queueing rather than just repointing it.

Not to mention transactions (also fallen out of favor - UNTIL they are essential) and various forms of authentication and encryption and on and on.

Nothing is wrong with gRPC. If you're happy with it use it.

All the folks on this list want is the framework functionality of WCF in .net core so that we can build solid apps with the code similar to that built into the .net standard. In other words, in a service oriented http/web enabled world, we see those parts of the framework as "essential."

It's not gRPC vs WCF, it's .net core with WCF.

On Mon, Jun 26, 2017 at 1:26 AM, Catalin Pop notifications@github.com wrote:

@csharpfritz https://github.com/csharpfritz WCF should have been what gRPC http://www.grpc.io/ is now.

A framework for remote procedure calls, that is: session and contract based, extremely fast, and easy to use, with support for duplex and streaming. The exact opposite and complement of HTTP/Rest.

If WCF is going to be another way to create/consume HTTP/Rest like services, then it is a waste.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/wcf/issues/1200#issuecomment-310995123, or mute the thread https://github.com/notifications/unsubscribe-auth/ABo_En4oeXBNXX5Jkbo8A-XHySePa5raks5sH2sqgaJpZM4Ikmmx .

-- Scott Hurlbert Technical Architect 415-378-9908 scotthurlbert@hotmail.com AIM: scottahurlbert Skype: hurlbert GTalk: scottahurlbert@gmail.com Blogs:

t4rn commented 7 years ago

@csharpfritz Answering your questions:

  1. Why do you need a WCF server on .NET Core?

At my current company there's a lot of legacy, PHP-based, UNIX-hosted SOAP web services which need to by rewritten. WCF would be the best solution but the lack of it in ASP.NET Core will probably cause migration to JAVA instead.

  1. If we could snap our fingers and have WCF server capabilities in .NET Core immediately, how would those capabilities change your development projects over the next 12 months?

We would choose .NET stack instead of JAVA...